next Mac OS X upgrade - Quartz2?
This is pure speculation. I don't claim to have any sources; I just believe these changes would all be reasonable.
Mac OS X brought us Quartz, the basis of it introduced in Developer Preview 3. And Aqua, its up-to-now only actual GUI. Jaguar brought us Quartz Extreme, enhancing the Quartz concept through various OpenGL extensions that load compositing work off to graphics chips that allow arbitrarily-sized textures. Panther again updated Quartz, this time with a much newer PDF version it is based on, bringing much better rendering performance due to better compression, and some new features exposed to Preview and others.
But there's three more things that Quartz could do. Firstly, Quartz Extreme could be extended to move even more work to the graphics card. Quartz Extreme was introduced when 32 Megs graphics chips were mid-end - 128 Megs are now normal and 256 Megs aren't that expensive either, so surely they can do a lot more. Compositing is just one part, what about layering of the widgets? Marketing would call that Quartz Extreme 2.
Second is Quartz Remote. I don't know to what extent, but NeXTSTEP's graphics layer supposedly was network-transparent in the fashion X11 is. I believe this could be a nice added feature. Think of it, rootlessly having remote Aqua windows on your desktop. They could even write a client for Windows for that; there is little they would lose. Just keep the protocol closed. Heck, what about an X11 client? An Aqua app controlled on a Linux box? Now, don't say Apple isn't into selling headless computers - there is the Xserve, and the server market (or more generally, anything that goes into networking) is a main selling point here. You already can remote-control Windows boxes on Linux; KDE for instance has an RDP client for that. Why not Mac boxes? Obviously Microsoft doesn't think they have anything to lose, they *do* officially offer an albeit mediocre-at-best RDP client for Mac OS X. Do the same, Apple - it needn't be something like Remote Desktop where you can install software easily; just a remotely-controlled GUI with a well-designed protocol atop Quartz.
Thirdly, Quartz Vectoring. Obviously, vector graphics are slow. Quartz already is slow because it's so extremely complex compared to simple graphics layers like QuickDraw or GDI, but computers are becoming faster all the time, and I think vector graphics have started becoming feasible. GNOME does it, why can't Mac OS X? I don't like GNOME much, but they do tinker around with ideas every once in a while (anyone looked at the GNOME Storage screenshots? hardly any updates on that, but there obviously is something in the works - http://www.gnome.org/~seth/storage/ ). GNOME optionally has vector graphics icons in the SVG format. That'd be a start. A much larger step is making widgets resize more cleanly - making the widgets (the three traffic lights, scrollbars, buttons, etc.) scalable isn't hard work; you just have to do it at some point. Then you could start offering laptops and desktops with higher resolutions (they can't be *that* expensive, as DELL, for instance, *does* offer higher resolutions on their laptop displays), and in System Preferences, the resolution part shouldn't be pixels-based, but dpi numbers instead. Some browser have it where you get a ruler and can thusly judge what the dpi number should be - the OS should go the other way round and scale everything as it fits, instead.
Mac OS X brought us Quartz, the basis of it introduced in Developer Preview 3. And Aqua, its up-to-now only actual GUI. Jaguar brought us Quartz Extreme, enhancing the Quartz concept through various OpenGL extensions that load compositing work off to graphics chips that allow arbitrarily-sized textures. Panther again updated Quartz, this time with a much newer PDF version it is based on, bringing much better rendering performance due to better compression, and some new features exposed to Preview and others.
But there's three more things that Quartz could do. Firstly, Quartz Extreme could be extended to move even more work to the graphics card. Quartz Extreme was introduced when 32 Megs graphics chips were mid-end - 128 Megs are now normal and 256 Megs aren't that expensive either, so surely they can do a lot more. Compositing is just one part, what about layering of the widgets? Marketing would call that Quartz Extreme 2.
Second is Quartz Remote. I don't know to what extent, but NeXTSTEP's graphics layer supposedly was network-transparent in the fashion X11 is. I believe this could be a nice added feature. Think of it, rootlessly having remote Aqua windows on your desktop. They could even write a client for Windows for that; there is little they would lose. Just keep the protocol closed. Heck, what about an X11 client? An Aqua app controlled on a Linux box? Now, don't say Apple isn't into selling headless computers - there is the Xserve, and the server market (or more generally, anything that goes into networking) is a main selling point here. You already can remote-control Windows boxes on Linux; KDE for instance has an RDP client for that. Why not Mac boxes? Obviously Microsoft doesn't think they have anything to lose, they *do* officially offer an albeit mediocre-at-best RDP client for Mac OS X. Do the same, Apple - it needn't be something like Remote Desktop where you can install software easily; just a remotely-controlled GUI with a well-designed protocol atop Quartz.
Thirdly, Quartz Vectoring. Obviously, vector graphics are slow. Quartz already is slow because it's so extremely complex compared to simple graphics layers like QuickDraw or GDI, but computers are becoming faster all the time, and I think vector graphics have started becoming feasible. GNOME does it, why can't Mac OS X? I don't like GNOME much, but they do tinker around with ideas every once in a while (anyone looked at the GNOME Storage screenshots? hardly any updates on that, but there obviously is something in the works - http://www.gnome.org/~seth/storage/ ). GNOME optionally has vector graphics icons in the SVG format. That'd be a start. A much larger step is making widgets resize more cleanly - making the widgets (the three traffic lights, scrollbars, buttons, etc.) scalable isn't hard work; you just have to do it at some point. Then you could start offering laptops and desktops with higher resolutions (they can't be *that* expensive, as DELL, for instance, *does* offer higher resolutions on their laptop displays), and in System Preferences, the resolution part shouldn't be pixels-based, but dpi numbers instead. Some browser have it where you get a ruler and can thusly judge what the dpi number should be - the OS should go the other way round and scale everything as it fits, instead.
Comments
Originally posted by chych
For point 2, wouldn't Apple Remote Desktop fit the bill? Wish it was free though.
Nope.
ARD is more like VNC - "send the entire screen across the network"... it takes over the other computer, and it's screen is shown on yours lock, stock and barrel. What you see is what's being shown on the monitor directly connected to the machine.
Display PostScript (what NeXT had) and X11 both have a vastly different method, in that individual drawing commands are sent. You can run an app on a remote machine, but have the windows *ONLY* show up on yours. Your machine isn't running the app, it's just displaying it. The other machine isn't displaying the app, it's just running it. What gets sent across the network is much much smaller, all GUI interaction happens on one machine, not two, and it's just simpler.
Cocoa is basically ready to go for this. Carbon, not quite so much, but getting better. Quartz has some rough edges that keep it from being a good solution right now, but this *IS* on the docket, and we *will* see it at some point.
cybermonkey, what Kickaha said.
Kickaha: I must say that I'm surprised or confused that Carbon applications aren't abstract enough not to care whether they're running locally or not... care to elaborate on that?
Also, I'd like to know what kind of effect it has when an application still interfaces with QuickDraw instead of Quartz. Thanks
Originally posted by Chucker
Kickaha: I must say that I'm surprised or confused that Carbon applications aren't abstract enough not to care whether they're running locally or not... care to elaborate on that?
Also, I'd like to know what kind of effect it has when an application still interfaces with QuickDraw instead of Quartz. Thanks
Basically, QuickDraw assumes that it's either writing directly to the screen, or that it's writing to something that will be blitted (copied) directly to the screen. There's no concept of a "window server" at all, and the concept of a widget is higher level than QD is. Actually, the concept of multiple applications was higher level than QD is in OS 9 (I'm not sure about OS X). QuickDraw, in a nutshell, is a bunch of functions that allocate, draw into and blit screen buffers. It doesn't know from widgets or objects. It's basically a system-level paint program that assumes that the destination displays are mapped to local RAM.
It's not something that's amenable to networking. At all. It's hard enough to reroute a QuickDraw buffer to a local printer, never mind a remote device. I assume that Apple abstracted it somewhat to run on OS X, but that probably began and ended with support for preemptive multitasking and window buffering. But it still paints whatever it's told to into a given array of pixels when it's told to, without keeping any memory of, or attaching any significance to, what it's painting, and then it shunts the buffer off to what it thinks is the "screen" (where, I figure, OS X takes over and composites it with Quartz' output before really sending the result to the screen).
Apple releases Quartz Remote.
Somebody reverse-engineers the protocol and writes a Linux client.
People start buying $300 Linux thin clients instead of second Macs.
Steve's head explodes.
Originally posted by wmf
I can see it now:
Apple releases Quartz Remote.
Somebody reverse-engineers the protocol and writes a Linux client.
People start buying $300 Linux thin clients instead of second Macs.
Steve's head explodes.
That still wouldn't enable them to run Carbon or Cocoa applications.
Now, of course, you could build a server farm of Xserves where you would run the applications, and then run Quartz Remote clients on Linux machines, but I'm not even so sure if Steve would mind that. He is obviously not interested in the thin client market.
Originally posted by Chucker
He is obviously not interested in the thin client market.
Just because Apple hasn't released 'Quartz Remote' doesn't mean that they aren't working on it.
Originally posted by JLL
Just because Apple hasn't released 'Quartz Remote' doesn't mean that they aren't working on it.
I was referring to hardware.
As to software, I was the one who *started* this thread, even...
As for future Quartz, the key is offloading onto the GPU. At the moment all quartz _rendering_ is handle by the cpu, and on a suitable machine, the _compositing_ is done by the GPU. Compositing doesnt require a lot of sophistication, hence all Macs currently sold can do it ( and its a good thing too ).
Rendering is out of the reach of most of the GPU's that have been sold with Macs recently. I think you'd need a directX 9 level GPU to offload rendering onto. That catches recent iMacs ( 17"+ ) and up, and the new powerbook 15 and 17. Im surprised that more advanced Quartz acceleration didnt come out with Panther, perhaps even the dx 9 gpus arent up to it yet.
I rather expect that we will see a major performance boost for text and UI orientated computing.
PCI Express has gobs of bandwidth going both ways. To the extent that the GPUs support the needed functionality, Quartz rendering can finally be offloaded to the GPU with PCI Express. Right now only Quartz compositing is offloaded to the GPU because a) it's much simpler than rendering and b) once you've composited the screen, it doesn't have to be written back. It can go straight out to the display, as AGP intended.
This also means that if your assumption is correct, and Quartz Remote would require that all of Quartz ran on the GPU, that every current Mac model will be left out in the cold. That's not to say that Apple won't do it anyway, but it's something to think about.
I'm too sleepy to ponder whether a putative Quartz Remote would require that level of support from the GPU, so I'll just punt that question.
Originally posted by Chucker
128 Megs are now normal and 256 Megs aren't that expensive either
*Shivers* What is this dude on?