These huge, well-funded corporations can't get it together to program their way out of a wet paper bag but a bunch of freaks on the Net have written the fastest growing operating system in use today.
The only reason that anything ever ships is through the influence of a corps of strong individuals. Other free operating systems have been tried and failed. The Linux difference is Linus (and Alan, and others...)
The main reason Copland failed to ship is that there wasn't a strong enough leader with both the desire and the political power to say to put his/her foot down and say "we ship on this date, and we're going to lose features to meet it." Had there been strong leadership, it could've shipped within six months.
Linus is willing to ship.
Current Apple management is willing to ship.
Microsoft is willing to ship with more bugs than anyone else on the planet.
(I dunno about you, but I'm sure happy this isn't 1995, when Microsoft seemed to hold a death grip on the computer/software industry, which was becoming increasingly staid, dull, and boring.)
Anyway, my point is that a bunch of random freaks will have no visible impact on anything without strong leadership.
The press release states that the format is not finished, ie still vapor. However, OSTA exists primarily to promote UDF, so you can bet it'll consist of MP3/Red Book audio/.wav files in a special directory on a UDF volume..
The following paragraph is an offtopic rant! UDF is a major pain in the ass, designed primarily by an overly-pedantic european standards committee. It's unreliable for read/write applications because it contains no inherent consistency support, and it's too complex to implement properly for read-only applications in a short amount of time.
If that's really the culture at netscape, it's pretty sad, though it explains a lot.
Real artists ship. If you think fixing bugs really sucks, either (a) you shouldn't be programming or (b) you should be writing much better code in the first place. Yes, it's possible to write code that doesn't suck, but it takes discipline and requires you to do things like writing your own unit tests to verify that the new code you just wrote actually works. And actually running said unit tests before you commit major changes to the code.
By adding X support to OSX they could make this kind of marriage really fly.
Are you insane, man? Aqua is crap compared with Mac OS 9 (or even better, System 7), but it still beats the hell out of X-windows. You cannot subject innocent end-users to X.
I fail to understand why both KDE and GNOME pat themselves on the back in public, thinking they've made Unix usable for the average desktop user, when X-windows is still at the core. The only people who will ever appreciate X are geeks, and only those geeks who possess a warped appreciation for antiquated window systems designed by the criminally insane.
You'd think no one in the Unix world had ever used either of the operating systems they claim to be making Unix as easy to use as.
I mean, dynamic self-configuration, what a concept. 1970's technology is the best.
College doesn't guarantee breadth of knowledge, nor does it necessarily guarantee an education. Like anything in life, you get out of it what you put into it.
Besides, there are far too many overeducated jackasses around as it is.
Not to say that college is worthless, but it is not the guarantee of quality many wish it to be. That said, it's true that job mobility is more difficult without a degree. Though not as much as some in this forum claim.
Without knowing each of their individual roles, it's hard to say, but, from a distance, nine looks to be too many people. Given that C# is a mediocre C++ ripoff, nine is downright silly.
Really, why not just hire a summer intern to put a bytecode back end on an old version of CFront?
I think Dennis Ritchie said (in the Anti-Forward to the Unix-Haters Handbook) something along the lines of: "the systems you admire are not only out to pasture, they are fertilizing it from below."
OpenStep on a PC was by far the slowest Unix (compared with other Unices on the same hardware) on the face of the earth. I don't know why this is; some say it's the fact that all windows were buffered, some think it was microkernel overhead. It's really hard to be slower than Mac OS 9, with it's gulag of partially native/partially emulated I/O paths, but Mac OS X DP4 manages it . This may improve by the public beta or the final release.
Combining a mediocre GUI with an obsolete version of Unix isn't going to help the average Mac OS consumer. It will help developers, however. If you have a lot of RAM, OS X will be a great developer system.
Try to see the beauty of their way and widen your perspective.
I'd be more impressed if "their way" had a provision for error checking.
Objective-C has an (arguably) annoying syntax, limited type checking, no access control and lacks exception handling. If you can get past those limitations, it's a really easy and kinda fun language to use. It also happens to be pretty much useless for anything other than programming Cocoa apps. What I'd like to see is Java compiling to native PowerPC code.
color, alpha channel mixing
A nit: These were proprietary extensions to the display postscript server, not part of PostScript proper.
All of that said, the CoreGraphics engine behind the Aqua interface is a giant leap forward. Makes Aqua all the more shameful, since Apple could obviously do so much better in UI design, if Steve cared at all.
Had I been responsible for Mozilla's design direction, I would have done (1). But then, I find application-specific user interfaces disrespectful.
Linux users are used to a cacophony of user interfaces where every application uses a different toolkit, looks different, feels different. Using a look and feel specific to only Mozilla doesn't seem ludicrous for people used to X-windows. Mac/Windows users won't put up with it. Mozilla hasn't a prayer of making it in the consumer market without a native interface.
Look, cross-platform development is hard, but a single cross-platform user interface is a dangerous cop-out. Sun apparently thought the problem with AWT was the attempt to use native cross-platform widgets, (in reality, AWT just sucked hard), so they took the easy way out with Swing and just set all the screen bits to be identical on every platform. Problem "solved".
It's criminal that Mozilla took the same path, for the same reason. The various front-ends sucked. Well, no shit. They still suck, and they should be abandoned.
But using Gecko to render the UI was an incredibly X Window-centric decision. Users on other platforms will not put up with it. Mozilla is dead on non-Unix platforms unless some insane person wraps a new app shell around it.
I've been a Metrowerks user (and sometime fan) since CodeWarrior DR/1 in 1994. When Metrowerks first arrived on the scene, it was incredibly good, because it was incredibly fast, it was the first stable C++ adhering to the draft standard available for the Mac, the interface didn't get in your way, and most importantly, it had PowerPC support. It did have a few weaknesses, the big one being no support for multiple build targets.
Metrowerks aptly demonstrated just how poor a job Symantec (the market leader at the time) was doing. Symantec abandoned their Mac development tools shortly thereafter, leaving Metrowerks as the single source for usable Mac development tools.
Over the past six years, Metrowerks has added a lot of features to the CodeWarrior IDE without stopping to consider how they impact usability. It is incredibly ackward to use multiple-target projects in CodeWarrior, simply because they kludged-in the multi-target functionality rather than redesigning the IDE from scratch. The CodeWarrior class browser doesn't hold a candle to kdevelop. (For the aesthetically sensitive, the present version of CodeWarrior also happens to be very ugly, those black tab things in the project window - yuck.)
I would hope that the new competition from ProjectBuilder and Borland's junk helps refocus Metrowerks; I used to like the IDE. Now I put up with it simply because I don't have a choice.
Competition is a good thing. I have to wonder how Borland expects to make money off of Mac development tools, however. Metrowerks was never profitable, to the best of my knowledge.
This is offtopic, but I feel the need to point out that multiple inheritence is not a good way to add utility methods to your classes. One of your goals in OO framework design should be to minimize inheritence. If you find yourself reusing certain functions over and over again, you should be doing what smart C++ programmers do: Making them static members of a utility class.
Why is this important? Maintainability. The more classes you inherit from, the more difficult it is to untangle the polymorphic web when you want to change the implementation. (Imagine what the Awful Window Toolkit designers would have done with multiple inheritence. involuntary shudder)
The worst framework designs I've seen are those that inherit from linked lists and other similarly primitive data types. The absolute worst. Amatuers.
Apple developed Quartz from the PDF specs, entirely in-house. There was no interaction with Adobe. Repeat: Adobe has no rights to the code. I was told, way back, that Quartz was developed for the express purpose of eliminating the licensing fees required for Display Postscript. I would conjecture an Apple/Adobe collaboration could never have developed a complex graphics technology within a decade, let alone the short time frame the Quartz guys managed. Too many (differently arrogant) cooks.
Mac OS X Server uses a Mach 2.5 kernel with NeXT extensions. It is to Mac OS X as BSD 4.4 is to Linux. It is a kindred spirit in some ways, but it is a completely different OS.
Mac OS X uses a Mach kernel based on the same OSF Mach 3 kernel MkLinux used.
OS X is not like NT, with a server and a workstation version. OS X Server is OpenStep with a poor faux-Mac interface and nonstandard networking administration tools. OS X will replace Server.
Apple originally said that hardware would ship with OS X in January 2000, not December 2001 - where did you get that date?
I've also used Objective-C, and must say that it produced some of the most unreadable code I've ever seen, in part because people didn't feel the need to write comments. The other part is that prototypes are optional and there is no access control. If you can name a function, you can call it. This does not encourage readable code. Objective-C also doesn't fix some of the same parts of C that C++ doesn't fix (declarator syntax and others). Java, on the other hand, puts the best parts of Objective-C into a reasonable syntax. It'll be interesting to see how efficient the GCC Java front-end ends up being.
The only reason that anything ever ships is through the influence of a corps of strong individuals. Other free operating systems have been tried and failed. The Linux difference is Linus (and Alan, and others...)
The main reason Copland failed to ship is that there wasn't a strong enough leader with both the desire and the political power to say to put his/her foot down and say "we ship on this date, and we're going to lose features to meet it." Had there been strong leadership, it could've shipped within six months.
Linus is willing to ship.
Current Apple management is willing to ship.
Microsoft is willing to ship with more bugs than anyone else on the planet.
(I dunno about you, but I'm sure happy this isn't 1995, when Microsoft seemed to hold a death grip on the computer/software industry, which was becoming increasingly staid, dull, and boring.)
Anyway, my point is that a bunch of random freaks will have no visible impact on anything without strong leadership.
The following paragraph is an offtopic rant! UDF is a major pain in the ass, designed primarily by an overly-pedantic european standards committee. It's unreliable for read/write applications because it contains no inherent consistency support, and it's too complex to implement properly for read-only applications in a short amount of time.
Have you ever used OS X Server? It's slower than fuck compared to LinuxPPC running X on the same box.
A Mac OS X port of GTK (on top of Cocoa) is what you really want. Run the GIMP with OS X widgets. Oo, ick.
Real artists ship. If you think fixing bugs really sucks, either (a) you shouldn't be programming or (b) you should be writing much better code in the first place. Yes, it's possible to write code that doesn't suck, but it takes discipline and requires you to do things like writing your own unit tests to verify that the new code you just wrote actually works. And actually running said unit tests before you commit major changes to the code.
Professional developers ought to be professional.
Are you insane, man? Aqua is crap compared with Mac OS 9 (or even better, System 7), but it still beats the hell out of X-windows. You cannot subject innocent end-users to X.
I fail to understand why both KDE and GNOME pat themselves on the back in public, thinking they've made Unix usable for the average desktop user, when X-windows is still at the core. The only people who will ever appreciate X are geeks, and only those geeks who possess a warped appreciation for antiquated window systems designed by the criminally insane.
You'd think no one in the Unix world had ever used either of the operating systems they claim to be making Unix as easy to use as.
I mean, dynamic self-configuration, what a concept. 1970's technology is the best.
College doesn't guarantee breadth of knowledge, nor does it necessarily guarantee an education. Like anything in life, you get out of it what you put into it.
Besides, there are far too many overeducated jackasses around as it is.
Not to say that college is worthless, but it is not the guarantee of quality many wish it to be. That said, it's true that job mobility is more difficult without a degree. Though not as much as some in this forum claim.
Really, why not just hire a summer intern to put a bytecode back end on an old version of CFront?
OpenStep on a PC was by far the slowest Unix (compared with other Unices on the same hardware) on the face of the earth. I don't know why this is; some say it's the fact that all windows were buffered, some think it was microkernel overhead. It's really hard to be slower than Mac OS 9, with it's gulag of partially native/partially emulated I/O paths, but Mac OS X DP4 manages it . This may improve by the public beta or the final release.
Combining a mediocre GUI with an obsolete version of Unix isn't going to help the average Mac OS consumer. It will help developers, however. If you have a lot of RAM, OS X will be a great developer system.
Try to see the beauty of their way and widen your perspective.
I'd be more impressed if "their way" had a provision for error checking.
Objective-C has an (arguably) annoying syntax, limited type checking, no access control and lacks exception handling. If you can get past those limitations, it's a really easy and kinda fun language to use. It also happens to be pretty much useless for anything other than programming Cocoa apps. What I'd like to see is Java compiling to native PowerPC code.
color, alpha channel mixing
A nit: These were proprietary extensions to the display postscript server, not part of PostScript proper.
All of that said, the CoreGraphics engine behind the Aqua interface is a giant leap forward. Makes Aqua all the more shameful, since Apple could obviously do so much better in UI design, if Steve cared at all.
Linux users are used to a cacophony of user interfaces where every application uses a different toolkit, looks different, feels different. Using a look and feel specific to only Mozilla doesn't seem ludicrous for people used to X-windows. Mac/Windows users won't put up with it. Mozilla hasn't a prayer of making it in the consumer market without a native interface.
Look, cross-platform development is hard, but a single cross-platform user interface is a dangerous cop-out. Sun apparently thought the problem with AWT was the attempt to use native cross-platform widgets, (in reality, AWT just sucked hard), so they took the easy way out with Swing and just set all the screen bits to be identical on every platform. Problem "solved".
It's criminal that Mozilla took the same path, for the same reason. The various front-ends sucked. Well, no shit. They still suck, and they should be abandoned.
But using Gecko to render the UI was an incredibly X Window-centric decision. Users on other platforms will not put up with it. Mozilla is dead on non-Unix platforms unless some insane person wraps a new app shell around it.
Metrowerks aptly demonstrated just how poor a job Symantec (the market leader at the time) was doing. Symantec abandoned their Mac development tools shortly thereafter, leaving Metrowerks as the single source for usable Mac development tools.
Over the past six years, Metrowerks has added a lot of features to the CodeWarrior IDE without stopping to consider how they impact usability. It is incredibly ackward to use multiple-target projects in CodeWarrior, simply because they kludged-in the multi-target functionality rather than redesigning the IDE from scratch. The CodeWarrior class browser doesn't hold a candle to kdevelop. (For the aesthetically sensitive, the present version of CodeWarrior also happens to be very ugly, those black tab things in the project window - yuck.)
I would hope that the new competition from ProjectBuilder and Borland's junk helps refocus Metrowerks; I used to like the IDE. Now I put up with it simply because I don't have a choice.
Competition is a good thing. I have to wonder how Borland expects to make money off of Mac development tools, however. Metrowerks was never profitable, to the best of my knowledge.
From my perspective, the only important difference between the PSX and CVGS is the input device. Macs and PCs typically don't come with PSX game pads.
That said, you can certainly get PSX-like controllers.
Why is this important? Maintainability. The more classes you inherit from, the more difficult it is to untangle the polymorphic web when you want to change the implementation. (Imagine what the Awful Window Toolkit designers would have done with multiple inheritence. involuntary shudder)
The worst framework designs I've seen are those that inherit from linked lists and other similarly primitive data types. The absolute worst. Amatuers.
Apple developed Quartz from the PDF specs, entirely in-house. There was no interaction with Adobe. Repeat: Adobe has no rights to the code. I was told, way back, that Quartz was developed for the express purpose of eliminating the licensing fees required for Display Postscript. I would conjecture an Apple/Adobe collaboration could never have developed a complex graphics technology within a decade, let alone the short time frame the Quartz guys managed. Too many (differently arrogant) cooks.
Excuse me, I meant "Apple originally said that hardware would ship with OS X in January 2001, not December 2001"
Mac OS X uses a Mach kernel based on the same OSF Mach 3 kernel MkLinux used.
OS X is not like NT, with a server and a workstation version. OS X Server is OpenStep with a poor faux-Mac interface and nonstandard networking administration tools. OS X will replace Server.
Apple originally said that hardware would ship with OS X in January 2000, not December 2001 - where did you get that date?
I've also used Objective-C, and must say that it produced some of the most unreadable code I've ever seen, in part because people didn't feel the need to write comments. The other part is that prototypes are optional and there is no access control. If you can name a function, you can call it. This does not encourage readable code. Objective-C also doesn't fix some of the same parts of C that C++ doesn't fix (declarator syntax and others). Java, on the other hand, puts the best parts of Objective-C into a reasonable syntax. It'll be interesting to see how efficient the GCC Java front-end ends up being.
C++ was based on Simula. Read Bjarne Stroustrup's The Design and Evolution of C++.