Hacking Quartz
Exposed writes "Meaty interview with Rich Wareham who is known to Linux users for his libdvdnav library which is used by Xine and other linux players. On OS X he created Desktop Manager, the GPL solution for VirtualDesktops on the Mac. Highlights are secret APIs in OS X for VirtualDesktops, who steals GPL source and why beginner programmers are at a disadvantage now."
Perhaps Apple's HCI team didn't consider it to be "intuitive" or comprehensible/necessary for the average user. After all, the majority of Macs are shipped with high(ish) resolution screens these days, and the Dock and Exposé take care of managing your screen real estate fairly well.
Good
Does that mean that it's good code? Absolutely. But not startlingly good code, since most of the heavy lifting was done by the OS itself (Apple uses similar transitions for switching between multiple users, for example - which would lead me to belive that had Apple done this they would have used something visually distinctive for the desktop switch, come to think of it).
You're special forces then? That's great! I just love your olympics!
With the old home computers one could get instant gratification by writing a program which drew a space-ship on the screen in 10 lines of BASIC. Nowadays you'd have to learn COM + Win32 + DirectX just to get a black rectangle.
Amen.
It required at least 300+ lines of Visual C++ to get a black screen and almost 150 lines of C++ to get SDL to throw up a black screen.
What the hell is going on here?!?! I know a lot of things need to be set up, resolution, sound, etc. But most people were happy with the default options they were given on those old computers. They made Elitle out of it for christs sake.
So how come I can't start a gaming project with a simple
Setup_SDL(SDL_STANDARD_OPTIONS);
Is it too much to ask?
May the Maths Be with you!
...the distance between a beginning programmer and what you see commercially available is eons apart, compared with before.
I programmed my C64 with "state-of-the-art" GFX (320x240x16 color, woot), SFX/music (think PC squeaker-like), most else was limited by memory/CPU constraints. In retrospect maybe my AI and gameplay wasn't quite up to par, but I was very close at least.
One thing is to get a person started - which is hard enough, true, but it's also takes a lot more before you feel you're doing something that feels "cool". Something you could compare to everything that's out there and in some small, limited way be better than. Because once you've done that, you begin to believe you can do it in every other way as well.
Kjella
Live today, because you never know what tomorrow brings
There's a weird Apple mentality at work here. I'm not Apple bashing, it's just that the reasons are ones that most on /. won't really identify with.
Apple likes to control their product; they don't want the interface very customizable. They'll allow little tweaks, and they'll allow people to make 3rd party products that can do... whatever. But this is the issue from the point of view of Apple: look around at linux desktops. Heck, just find some screenshots online somewhere- they all look different. Both KDE and Gnome are very customizable. Great. But a lot of users are going to find it confusing. Here's an example:
If I tell you I'm running Linux with a gui, and I want to reboot, can you tell me, without looking over my shoulder, where, spacially, on my interface, I need to go? Even if I tell you "I'm using Gnome" or "I'm using KDE", can you then tell me where the 'Log-out' or 'Reboot' button is? No- because it's very customizable, any button could be anywhere.
This means that the user's understanding of where things are and how the interface operates is not necessarily portable from one installation of Linux to another, even if you're using the same window manager on the same distribution. So what you need to understand about Apple's design philosophy is this: they don't like that. They want it so, if you're using their software, with no complicated tweaks or 3rd party hacks, everything will look pretty much the same, act pretty much the same, and be in pretty much the same place.
Virtual desktops would be fine with Apple, if they liked virtual desktops enough to use it with the standard interface, but they don't. It's not that they mind virtual desktops, but Apple doesn't want to add in extra options that will change the interface and confuse many users, unless it's necessary. They'd rather, instead, come up with another interface design feature that, they believe, will be as powerful as virtual desktops, but less confusing to users (like Expose). And if you want virtual desktops, their are 3rd party implimentations available.
So, there's your difference between the Terminal and Virtual desktops. One is an application (of sorts) than can be run within the current standard Apple interface (Terminal), and the other actually changes the behavior of and the user interaction with the interface.
I don't know, it may be that the market for "programmers" is poor, but that doesn't mean there isn't a need for a higher level of computer literacy in the general population. If you're someone in another specialty (e.g., you're mainly a biologist) and have some programming skills, then there's probably a lot of people that will be very happy to have you around.
That's all true, it's amazing that these days you can get such high-powered hardware so cheaply, and run entire operating systems entirely from code that you can tinker with.
On the other hand, even the lowest-end machine has so many other distractions on it now--games, email, etc. The basic interpreter was sometimes the only fun thing that came with the cheap home computers of the 80's--the only way to get a game might be to spend money on a cartridge or type one in from a magazine--whereas now you have to dig a little and look up documentation elsewhere to find a programming environment for your new PC.
--Bruce Fields
I'm still waiting for Expose to have a way to move windows around with the mouse. At least as an option. I like the feature, but often I find myself wanting to reorder the windows after it does so (put all the important stuff on one side, web stuff on the other, etc. If I could do that, AND Expose could remember it, the feature would be an absolute godsend. It would literally be like having a physical desk organized by work.
Lots of people are mentioning PHP and so forth.
You are perfectly right that Basic was really a scripting language. But try to imagine you are ten years old.
PHP is very easy to download. But how do you hear of it? How do you even know what it is to download? Even as a professional programmer I would have said to use PHP for web apps but not to learn programming with.
Also, what were you trying to program for? When I was a kid I did not really program just for the sake of programming. I perhaps wrote a small utlity that did some calculation I was interested in. My cousin did fractal generation. I might type in a game from a magazine and decide I wanted to improve on it.
So now you have a kid not knowing here to start, because there is not central starting place. Then you have the will of the kid to even figure out where to start, the barrier of having enough interest to create something he cannot just download.
Perhaps things like Mindstorms are taking the place of traditional programming. I'm not really sure. But it does seem like a kid could not be led into programming as much by accident anymore, he would definatley have to seek it out. And that will always eliminate some people from the path, that might otherwise have liked programming quite a bit. Obviously people do still learn programming now, where are the sixteen-year olds and how did they pick up programming? That's what I'd like to know.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Now, in general, we tend to think of choice as a Good Thing(tm). But it's not always so -- e.g. when choice means incompatibility, confusion, fragmentation, duplicated effort.
For example, here in the UK we have (basically) just one mobile phone system: GSM. That terrible restriction on our liberties means that mobile phones can work on all networks, and there's coverage almost everywhere. Result: mobiles are cheap, and just about everyone has one. In the US, so I gather, there's the wonderful free choice of GSM, CDMA, and goodness knows what else. Result: expensive phones, no coverage, lots of vendor lock-in, and mobiles are less popular. Lack of choice can be a good thing.
The computing world is surprisingly close in terms of interfaces, APIs, and protocols.
It's less so in terms of GUI features, admittedly, but some of the same economies of scale apply. However, I think Apple's principle here is that if a feature is done right, then people won't need alternatives.
Far better to have one option that works right, than ten competing alternatives, none of which does the job properly. Easier to learn, easier to document, easier to code to, easier to administer, easier to support.
Now, in this particular case, I do miss virtual desktops in OS X. (Codetek's is just too slow with the number of windows I have, and I can't use Desktop Manager in my 10.2...) I don't think Apple have come up with a better solution to the problem it solves. But I'm right behind most of Apple's other decisions. Simplicity and elegance are underrated virtues.
Ceterum censeo subscriptionem esse delendam.
WHAT? THIS IS EXACTLY WHAT EXPOSE DOES -- SHOW/HIDE EVERYTHING WITH ONE CLICK.
What you're talking about -- granularly assigning arbitrary windows to a particular desktop set across application
You say that's what it does... but then you go on to admit it's not what he's trying to do. We can dance around the issue all you want, but what he's saying is that Expose doesn't help him with his workloads. His workloads are what he needs to do. Sure, he's not typical, but that just means Apple's solution doesn't work for him. He exists. Get over it.
This guy says he needs 11 desktops... that's probably dozens of windows, a lot of them are probably terminal windows, which look almost identical when they're zoomed out enough. Even with a 30" Apple Cinema Display, can you imagine how hard it would be to find the one he wants?
The Apple way of doing things doesn't scale well past the moderately used desktop system (eg, a significant but limited number of concurrent tasks). The OS can handle it easily, but the interface can't. In cases where you can do more with a Mac, it usually means using 3rd party software like this virtual desktop thing, or falling back on stuff that's available on any UNIX machine.
That's not a knock against Apple. They have the API for multiple desktops, and I'll bet they don't publish it just so they don't have to maintain the API eternally, and make their unit tests even bigger than they are. They have all the UNIX tools because they know sometimes people will need to fall back on something with no GUI front end. That makes everyone's life a lot easier, including mine.
Apple gives people enough so they can sort themselves out if the shiny happy GUI isn't good enough. Learn from them.
I rarely criticize things I don't care about.