Robert X. Cringely thinks that Apple will offer virtualization in Mac OS 10.5, but in order to do that, he thinks Apple will need to drop Mach. “So Apple will at least offer the option for users to run a virtualized version of Windows Vista atop OS X. Don’t be surprised, either, to see that OS X 10.5 has a new kernel, finally giving up Mach and a big piece of its NeXTstep heritage. I write this for one thing – because OS X has kernel problems and needs some help, especially with swap space. I say it also because of the departure of Avie Tevanian, Apple’s chief software technology officer, and the guy who hung onto Mach for so long.” The Mach kernel has recently been the target for complaints; esp. in server duties, OSX’ kernel lags behind significantly compared to i.e. Linux.
I want to run OS X on my AMD laptop which is MUCH more powerful than Apple laptops especially once they go dual core. I want the Experience that MS hot air about that Apple has got but I also depend on Windows so I need them to run side by side not one at a time and communicate too.
MS has the development tools and backup Apple only really h as Objective-C and xcode anything else you are on your own.
First Objective-C is very cool and “only objective-c” is probably good enouf. Second almost everything that works on linux works on os-x java ruby wx-windows,…… Second i am not to impresed with devoleping for windows the active-x/com/vb thing is pure shit like the rest of windows.
I agree with you completely. I would rather have one main development framework and one standard way of doing something than 5 different ways with different APIs etc.
Regards,
gamehack
You also forgot to mention MFC, .NET/1, .NET/2, Java (and it’s various interfaces), COM+, Windows Forms, GDI/GDI+ and now WPF(Avalon). Being a Windows programmer is a joy.
Ahhhhh choice. It’s great, isn’t it?
Yes. But it’s a problem when the base system is inconsistent
But choices on top of a single consistent base system is grrreeeaattt.
Imagine if GTK+ was written in C#, Java, Object Pascal, C, C++, Ruby, Perl, Python and REXX. Some parts in one language, other parts in another language. That would be terrible, but none the less the way it is on the Win32-platform
Eh?
GDI is written in C/C++. I imagine WPF is too.
Being a Windows programmer is a royal pain in the ass. Of all those APIs you’ve mentioned, only .NET doesn’t suck, and even then, .NET/1 is quite a bit behind the curve when it comes to things like automatic layout.
Windows APIs are the antithesis of good API design. They’re big, bloated, and lack orthogonality. Compare that to POSIX, which is (relatively) clean, highly orthogonal, and small enough to commit to memory.
I understand that many Windows programmers have come to regard its severely brain-damaged APIs as “normal”, but they’re simply wrong. There are certain hard principles about how to design an API, and Windows APIs just don’t follow them. Andrew Tannenbaum’s critique on the exec APIs on the two platforms is absolutely illustrative of the problem.
You’ve never used Cocoa (Objective-C & OpenStep API’s) much, have you?
Objective-C is good. But it’s a rare and exotic language like Python and Lisp. Most devs don’t even know ObjC exists. If I weren’t for Apple keeping it alive, Objective-C would be just a footnote in history.
Objective-C is good. But it’s a rare and exotic language like Python and Lisp. Most devs don’t even know ObjC exists. If I weren’t for Apple keeping it alive, Objective-C would be just a footnote in history.
That’s true. Objective-C is only a remainder Next Step and isn’t even very useful. Apple should provide a clean, Java like C++ API, much like Qt, and keep Objective-C only for legacy code.
“isn’t even very useful”
For an OS that had spotlight search in 2004 and Vista isn’t even out yet.
Well, if ObjC isn’t even very useful, then Cocoa is probably just a waste of time
What would that make GNUstep?
Objective-C is good. But it’s a rare and exotic language like Python and Lisp. Most devs don’t even know ObjC exists. If I weren’t for Apple keeping it alive, Objective-C would be just a footnote in history.
That’s true. Objective-C is only a remainder Next Step and isn’t even very useful. Apple should provide a clean, Java like C++ API, much like Qt, and keep Objective-C only for legacy code.
Objective-C/Cocoa isn’t very useful? Have you ever used it longer than enough to say “oh, this is teh suck” and go back to C#? The Smalltalk syntax is different, but it only was confusing for the first few minutes of reading this:
http://developer.apple.com/documentation/Cocoa/Conceptual/Objective…
They do provide Java development support in XCode and OS X
http://developer.apple.com/documentation/Java/Conceptual/Java14Deve…
and to get the UI components the same try:
http://developer.apple.com/documentation/Java/Conceptual/Java14Deve…
Python isnt a rare language.
Objective-C is good. But it’s a rare and exotic language like Python and Lisp.
Python is in no way a rare and exotic language. Python is used heavily in Redhat and Gentoo among other things. It is also used in Blender.
I wouldn’t call Lisp rare and exotic either, I would just call it old.
Considering that most activex and com were deprecated in 2002 with the release of the .net framework and VS 2002, and Java/ruby what have you run on windows too, Not to mention C,C++, and virtuly any other programming language you would want. I will have to take your opinion with a large grain of salt, as you obviously haven’t programmed on windows lately.
Something that extreme might be held out until OS XI. Apple have only just got the API just where they want it (with Tiger), and apparently (correct me here), the Core* services are rather close to the kernal in order to get the speed.
Tiger was just the basics, now that the new advanced API has stabilized Apple can focus on building on top of that and really deliver something special. (Just as Vista catches up with Tiger )
Over time Microsoft created the registry and a new file system, neither of which could be fixed from DOS. DOS was the ‘trusted’ operating system that we could fall back on to fix problems.
S’Ok, we’ve got GNU/Linux to keep things hummin’
Robert X. Cringley has really mastered the genre of “technology fiction”. He really has a knack for spinning the most outlandish conjectures on the flimsiest of evidence.
We need a celebrity deathmatch between Robert X Cringley and Dovark. Both armed with Apple Windows OEM machines
How diffiuclt would it be to switch from say the Mach kernel to something like the linux kernel? How many programs would break doing something like that? Would using the linux kernel with OSX be ok in terms of the GPL license?
Whether Apple can use the Linux kernel or not by the terms of the GPL depends on how you ask.
The FSF would probably say hell no and I would tend to agree with that interpretation. They don’t believe you can link code against GPL code unless that code is also GPL.
Linus, on the other hand, doesn’t seem to mind linking as he’s supported binary drivers. Frankly, I think this is a case of Linus wanting Linux to be popular rather than making people comply with the GPL.
Darwin is already open source, how is this any different to say, the Linux kernel?
Different licenses, different requirements.
The difference is that Darwin isn’t under a viral license.
If they dropped Mach they would drop it for another microkernel like L4. It would make more sense that way.
Highly unlikely. L4 and Mach are completely different, and L4 and XNU even more so. L4 is based on synchronous unbuffered RPC. Mach is based on asynchronous, buffered message passing. Getting good performance out of an L4 kernel without designing it from the beginning for its IPC model is going to be tough going. Getting good performance out of XNU, while replacing its monolithic organization with an L4 microkernel is going to be even more difficult.
Moreover, switching to L4 wouldn’t really gain Apple anything. Pistachio is like 30,000 lines of code. It lacks most of the services Mach provides that OS X needs. Switching to L4 would necessitate Apple rewriting all of these services. If Apple does switch kernels (which is a highly unlikely proposition), they’ll likely switch to FreeBSD.
Ok rayiner, I didn’t realize how drastically different L4 and Mach are. Can the trouble the GNU Hurd project is having with the switch be taken has an example of this? Clear this one more thing up for me. Why would Apple choose FreeBSD over NetBSD, OpenBSD, etc?
“Why would Apple choose FreeBSD over NetBSD, OpenBSD, etc?”
Because NetBSD already has I/OKit and other Mach-like calls for optimize its Darwin binaries compatibility layer. And NetBSD has a licence perfect from Apple’s point of view. In fact, Jobs & Co. don’t need to change their own business approach. With a GPL kernel they need.
With a *BSD approach, if they need more Mach-like calls they put these inside the kernel. With a GPL (read Linux) approach, they are free to make proprietary (Trusted?) drivers, but if they want to change the kernel in way they don’t want to release for free (some parts of the Cores) they can’t.
It isn’t a matter of “GPL, good or not”, but “*BSD vs GPL” and FOR APPLE *BSD wins because the *BSD approach is already their own. I repeat: not a matter of good and evil, but simply choises already did.
I agree that if Apple switch kernel, FreeBSD would be the most likely one used.
But for L4, I remember a benchmark where Linux was used as a client OS on top of L4 and if memory serves, the performance degration was only 5%..
And if memory serves again, IPC on top of L4 are faster than on top of Mach.
So maybe it’s possible.
The FSF would probably say hell no and I would tend to agree with that interpretation. They don’t believe you can link code against GPL code unless that code is also GPL
The FSF won’t say anything. The Linux license states very clearly that the license does NOT apply to syscalls:
NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls – this is merely considered normal use of the kernel, and does *not* fall under the heading of “derived work”
Well, the linux kernel is basically GPL2 with an exception. That’s why proprietary drivers can be created for linux.
No, the exception is for user programs using syscalls, for proprietary drivers it is far from sure that they are legal..
Currently Linux dev have chosed not to sue proprietary drivers maker, but this doesn’t mean that proprietary drivers are safe.
Nonsense.
The Linux devs have clearly stated they don’t have a problem with proprietary drivers as long as they use syscalls.
Well, the linux kernel is basically GPL2 with an exception. That’s why proprietary drivers can be created for linux.
That’s incorrect. There is no exception in the Linux kernel license. It is standard GPLv2. The GPL does not prohibit you from making proprietary drivers, it only prohibits you from distributing them with the kernel.
How diffiuclt would it be to switch from say the Mach kernel to something like the linux kernel?
Much less than switching to windows. Windows is win32, mac os x is posix. It doesn’t have sense to switch to windows. It Apple wants a better kernel kernel they’ll use OpenSolaris
We aren’t too far away from a big announcement from Steve and a very special guest from Redmond.
Get used to running Windows…
The only question is when and how many Apple APIs will survive the switch.
What are you smoking? Do you even use OSX? I have a macbook pro dual booting Windows and OSX, and when you have them literally side by side, the sores on XP stick out. I try to avoid booting into XP as much as possible because OSX is far more enjoyable, only after a week owning it. Booting Windows is just convenience, nothing else. Real people need to get on with work and OSX is far better for that.
Just because XP has issues, doesn’t mean that OS X is perfect. And your post doesn’t really elaborate on why exactly OS X is better. Your statement about OS X being enjoyable only applies to you, just because you enjoy it more, that doesn’t mean that everyone will enjoy it more.
Stop being such a fanboy and provide some arguements for your views.
OS X has issues, and even a clueless XP user like me can notice them straight away. Consider, Apple’s use of application folders, it uses static libs. How lame is that? Not only is memory wasted, but this can also become a security issue.
Again, I am not saying XP is any better. Just saying that OS X will not save the world.
“Your statement about OS X being enjoyable only applies to you, just because you enjoy it more, that doesn’t mean that everyone will enjoy it more.
Stop being such a fanboy and provide some arguements for your views.”
To date there’s NO way to objectively measure OS ergonomics. That’s why windows fanboys think their OS is well designed. IMHO, OS X ergonomic is far better that any version of windows (Vista included).
“OS X has issues, and even a clueless XP user like me can notice them straight away. Consider, Apple’s use of application folders, it uses static libs. How lame is that? Not only is memory wasted, but this can also become a security issue.”
A clueless XP user like you don’t even know what static/dynamic libs are. In most cases, it’s up to developpers to choose between static or dynamic libs.
The application folder concept – while not perfect – is far superior than “Program Files” folder. Drag and Drop installation is very intuitive to clueless users… you should love it !
“Again, I am not saying XP is any better. Just saying that OS X will not save the world.”
Don’t worry, we all know that XP is better than only previous windows versions. Whether you use OS X, Linux or *BSD, there are tons of reason to not buy/use microsoft softwares.
Nice job on reaffirming his “fanboy” statement.
“To date there’s NO way to objectively measure OS ergonomics. That’s why windows fanboys think their OS is well designed. IMHO, OS X ergonomic is far better that any version of windows (Vista included).”
Why don’t give some info to backup your argument? What makes OS X better? Give specifics, don’t just say it’s better (granted you used more sophisticated language, but that doesn’t add any value to your post). As far as I am concerned, your talk about ergonomics is still fanboyism. There is no objective way to measure OS performance, but you can say things like “I really like the cool factor, I enjoy paying extra money for marketing.” Those might not be your views, but from you have said, this might as well be your argument.
“A clueless XP user like you don’t even know what static/dynamic libs are.”
Getting elitist are we? Since when does your OS of choice measure intelligence? Intelligence isn’t limited to tech knowledge (even though I’m just fine with that). Whys should developers choose between static/dynamic libs? Isn’t it better if every package would have metadata on required libs? Then an internal lib manager would automatically manage and upgrade libs. If a particular application didn’t work with a libs higher than a certain version (this would be in the metadata), the OS would lockdown that lib and keep a legacy version for compatibility purposes. No other applications would be allowed access to that lib. So what’s wrong with this approach?
“Don’t worry, we all know that XP is better than only previous windows versions. Whether you use OS X, Linux or *BSD, there are tons of reason to not buy/use microsoft softwares.”
Of course, did I imply anything different? What you fail to grasp is that there are lots of reasons to use Linux, OS X and *BSD over windows. What’s your point? Is your best argument that in some situations OS X is more suitable for certain jobs than windows? There is still no value in your arguments.
I didn’t want to offend you, if I did, I apologise.
You said you were a “clueless XP user” I just used your words. To me (subjective point of view) clueless users AFAIK don’t bother about static/dynamics libs or any other tech stuffs like that simply because this is not in the “user field”. For instance most car drivers (user field)don’t know how their engine, gear box works… Car drivers just like computer users have to deal only with the interface not with the implementation. Now you tell me that a “clueless XP user” can give valuable opinion about the implementation of another OS… Sounds paradoxal to me.
I agree with Wintermute. Stating that OS X is better, or is used to do real work is completely subjective.
Personally, I would never own any Apple product. But, that is my choice and opinion. I would never want Apple to go away, however, because competition is what drives creativity and new products.
I use Linux and I know it’s not for everyone. I use WinXP for certain things, but I am not going to bash on MS because I like to use one over the other. Linux doesn’t have as many choices of software apps that Windows does, but there are certainly alternatives just like with OS X.
I think it comes down to personal preference.
mOOzilla – I guess I have to keep explaining this. Apple is a HARDWARE company.
The WHOLE reason that Apple computers exists is to tell Apple Hardware. EVERYTHING else (OS, Apps, accessories, even iPods) exists for one sole purpose. To sell Apple computers.
mOOzilla – I guess I have to keep explaining this. Apple is a HARDWARE company.
The WHOLE reason that Apple computers exists is to tell Apple Hardware. EVERYTHING else (OS, Apps, accessories, even iPods) exists for one sole purpose. To sell Apple computers.
That’s not what Jobs says.
Dixit Jobs : “Apple’s core strength is to bring very high technology to mere mortals in a way that surprises and delights them and that they can figure out how to use. Software is the key to that. In fact, software is the user experience. ” ( http://money.cnn.com/magazines/fortune/fortune_archive/2005/02/21/8….. )
Or as Cringely puts it “Apple is a software company that sells its products inside $1800 boxes.”
Even though It’s already in the works, and there are several shot of Linux alread running on MacBooks, I just can’t see myself buying a computer if it can’t run Linux. I think apple purposely left out the ability to boot into Linux from the bootcamp release. There are plenty of articles showing that Lilo can be modified and used to boot into Linux with a few Hacks to bootcamp via selecting the windows option, but why not support Linux with the initial release. The drivers for the hardware are already floating around. Don’t get me wrong, OS X is great, Even XP is great if you don’t use IE, but Linux is just my baby. She’s rough around the edges and has her faults, but it’s clear to see that in the end, she’s going to be the prettiest one of them all and I get to groom her into just that. Apples knows that MS can’t touch them for any number of reasons (pure creativity, anti trust implications, ..etc), but Linux on the other hand could really put a dent in apples plans for growth. KDE 4 on a MacBook isn’t going to be the mismatch we have today when compared to OS X.
Even though It’s already in the works, and there are several shot of Linux alread running on MacBooks, I just can’t see myself buying a computer if it can’t run Linux. I think apple purposely left out the ability to boot into Linux from the bootcamp release. There are plenty of articles showing that Lilo can be modified and used to boot into Linux with a few Hacks to bootcamp via selecting the windows option, but why not support Linux with the initial release. The drivers for the hardware are already floating around. Don’t get me wrong, OS X is great, Even XP is great if you don’t use IE, but Linux is just my baby. She’s rough around the edges and has her faults, but it’s clear to see that in the end, she’s going to be the prettiest one of them all and I get to groom her into just that. Apples knows that MS can’t touch them for any number of reasons (pure creativity, anti trust implications, ..etc), but Linux on the other hand could really put a dent in apples plans for growth. KDE 4 on a MacBook isn’t going to be the mismatch we have today when compared to OS X.
Apple doesn’t need Geek sale, that probably only represents 0.001% of its sale. Moreover, why should one installs Unix clone if there is already real Unix.
Moreover, why should one installs Unix clone if there is already real Unix.
Woah! Someone’s been spending too much time reading Apple marketing material. OSX is not ‘real Unix.’
Apple doesn’t need Geek sale, that probably only represents 0.001% of its sale. Moreover, why should one installs Unix clone if there is already real Unix.
You’re crazy. Linux is much closer to a real Unix than OSX. In fact Apple was forced to take the UNIX name off of its product. Linux is a lot more UNIX standards (SuS, POSIX, etc) compliant than the FreeBSD/Mach mutant MacOSX.
Mac OS X has real Unix code in it unlike Linux …
Um, where? It uses the Mach kernel and BSD and some GNU utils for its base. Where exactly does it have real unix code in it? And why isn’t SCO suing them?
As an addendum to what I said earlier even if OSX has UNIX code in it (which I don’t believe it does) it still doesn’t mean that OSX is more of a UNIX. UNIX is specified by the Open Group though SUS (Single Unix Specification). What really matters concerning UNIX is not exact code but how something functions. Linux is closer to how real UNIX (like I said before, SUS, POSIX, etc) functions than even BSD which is the basis for OSX. In fact Linux complies with a SUS version, albeit an earlier version than the present one.
On a personal note I am surprised at how many Apple fanboys frequent this site. I’ve been modded down more in this thread than I have been in all other threads combined for saying nothing more than the simple fact that Linux is more of a UNIX than OSX, which is a truthful statement that anyone who knows anything about operating systems knows.
http://www.opengroup.org/
http://www.unix.org/
http://en.wikipedia.org/wiki/POSIX
Mac OS X has real Unix code in it unlike Linux …
Please enlighten me. What UNIX code?
I don’t see any reason to say that Mach kernel is incompatible with Windows Vista. Actually http://www.parallels.com/en/products/workstation/mac/ Parallels have a virtualization software that allow to execute Windows XP. Where is the problem?
I would have thought they are a software and IP company these days, most of apple’s hardware is generic off the shelf and not custom anyway.
I think the way Apple is going to go is virtualization that doesn’t require the Windows Shell to run. For example under linux I had “hacked” my VMware install to start MS Office without the windows shell, thus simulating the program running without Windows seeming to run. I imagine if Apple doesn’t completely supprot something like this they will build in the mechanisms so that other companies can create software that does this. Thus making it seem like Windows programs are running directly in OSX. The only downside to this is you will need to have a windows license.
I think the way Apple is going to go is virtualization that doesn’t require the Windows Shell to run. For example under linux I had “hacked” my VMware install to start MS Office without the windows shell, thus simulating the program running without Windows seeming to run. I imagine if Apple doesn’t completely supprot something like this they will build in the mechanisms so that other companies can create software that does this. Thus making it seem like Windows programs are running directly in OSX. The only downside to this is you will need to have a windows license.
Just to play devil’s advocate, if you had the ability to run Win32 apps “seamlessly” in OS X, where’s the incentive for vendors to port native apps?
This is the same conundrum linux is in with Wine, people need Wine to run windows apps, but the better Wine gets the less incentive vendors will have to deliver linux native apps. Even IBM fell back on that excuse for not providing a Notes client for linux, instead giving people step by step instructions for running it under Wine, where it was less than perfect.
So if everybody’s focused on seamless virtualization or translation layers, wouldn’t that effectively make Windows a stronger default development platform since you could write-once run-many?
Like I said, just playing Devil’s advocate, I’m not entirely sure I’ve formed an opinion yet on my own statement…
“This is the same conundrum linux is in with Wine, people need Wine to run windows apps, but the better Wine gets the less incentive vendors will have to deliver linux native apps. Even IBM fell back on that excuse for not providing a Notes client for linux, instead giving people step by step instructions for running it under Wine, where it was less than perfect.
So if everybody’s focused on seamless virtualization or translation layers, wouldn’t that effectively make Windows a stronger default development platform since you could write-once run-many?”
Exactly.
well, to a certain degree you can run x11 apps seamlessly on os x.. but it is largely dispised as it doesn’t conform the the UI, and those apps dont generally take advantage of specific os x features (services, spotlight etc)
even classic apps worked “seamlessly” in os x.. sort of..
not to mention the initial cost of purchasing a windows license the run the non native software..
i guess it comes down to ones definition of “seamlessly”..
if seamlessly genuinely means takes advantage of native ui, shortcuts, features & services, but is really a windows program.. i guess you’d be right, of course the possibility of that “seamless” actually happening is pretty low
I think Cringley is way off in left field. Here is why
http://rjdohnert.wordpress.com/2006/04/17/apples-plan-to-provide-th…
Im actually interestedin Objective-C of all the C family languages but Im just dismayed why Apple do not provide bindings for other languages and even have a few just as MS does. Currently its Objective-C and AppleScript all the way, one size fits all with Apple which is bad.
I really look forward to the day I can work with developing on OS X and not Windows or both via a managed runtime but that is in the long distant future (circa 3-5 years ahead)
Can I assume you mean API bindings? There are bindings to many languages, if that helps:
http://osx.hyperjeff.net/Reference/carbon.php
http://osx.hyperjeff.net/Reference/cocoa.php
And beyond those, any language that can link to C can use Obj-C (which is simply a thin preprocessor to C) as a bridge, so you could write an app in Fortran 95, add a nice GUI, AppleScript integration, etc. Generally, there are lots of languages on the platform, most of which can link to C/Obj-C:
http://osx.hyperjeff.net/Apps/apps.php?sub=22&f=language
.. Like it or not, GAME ports. Simple and effective way to get migrations en masses rather than oh gee thats nice and cool but not really useful mac mini. I may bag one just to play with development but it will be just that, a fun toy and not my primary. Apple has the momentum and product to get a huge migration or alongside Windows. Something more than Linux has. Apple has APPEAL. Most people walk away form a Mac in the store feeling happy and refreshed rather than the cluttered OEM Windows Junk. I know I do. Maybe its that White UI I have my Windows desktop similar. They really have the EXPERIENCE MS only hot air about.
Does this guy have even a basic high school level understanding of the technology? Just what the hell does this mean: “I write this for one thing – because OS X has kernel problems and needs some help, especially with swap space.”
Help with swap space? What kind of help? Too little swap space – hey that’s easy to fix! Swapping is too slow? That has nothing to do with “space”. It’s Cringley’s brain that seems to need help with swap space – there appears to be too much and it is mostly empty bits.
Of course this guy writes to get a rise out of people because. like reader mail for newspaper columnists in the old days, only the number of response letters were counted, not how many pointed out that the columnist was just making up things beyond his comprehension.
Whether Cringely is genuinely clueless or not, his work isn’t worth reading. Save yourself the mental frustration and pretend that he doesn’t exist. Repeat the same process for every attention-whore in the public eye. This sort of stuff is really like reading a gossip column.
I don’t think that Apple will choose linux if they drop MACH:
– because all linux trolls against Mac OS X will be dead, it can’t be !
– because they already have the opportunity to do that few years ago and they don’t.
But as it appears on the Darwin dev mailing list, Apple should go for L4 as some people are already working on it:
http://www.ertos.nicta.com.au/software/darbat/
And it seems to work.
They wont drop MACH just the H and end up with MAC
being right. I’d purely love to have builtin virtualization supported by Apple: it’s the only thing I can think of that would sell me a MacTel before all my existing Mac’s wear completely out.
I could believe in a switch from Mach. When OSX first came out, I think more it was a working (if inferior, like Mach-O, the Dock, etc) system with lots of ex-Next engineers who understood it, and Apple had no time to invent anything else. Switching kernels would be expensive, but there’s potential for significant performance gains and optimizing a 5 year old product isn’t cheap.
I also expect that Cocoa will go away before much longer in favor of C++: the handwriting on the wall was Apple hyping the new Intel tools, which ignore Objective-C. Cocoa actually is a wonderful system, but it’s failed utterly to gain mindshare and remains a platform-isolating liability that’s not always (i.e., Interface Builder) maintained like a flagship product. Apple is known for cutting their losses: it’s time again to give up being the best and just concentrate on being successful.
I hope they dont dump ObjC in favour of just C++, what they should do is add more CHOICE so you can have ObjC AND C++ and MORE. Apple needs a better developer story, this is something MS have but I really hope Apple dont go down the road of legacy like MS has and I dont think they will as they have proved many times before.
I hope they dont dump ObjC in favour of just C++, what they should do is add more CHOICE so you can have ObjC AND C++ and MORE
This is already done with Apple’s Objective-C++. There are limitations, but it does the job and is a huge improvement over the original Objective-C. It’s also possible to access Objective-C system libraries directly from pure C++, though it’s not especially clean or pleasant.
The ideal, of course, is to be able to combine many languages at once, selecting the best language for every part of a program. Most attempts to date have required unpalatable (IMHO) limitations, namely the choice of Java or .NET + the long shadow of MS. Objective-C++ is probably the best example of a true multilanguage system to date, but it works only because the two are so similar.
I also expect that Cocoa will go away before much longer in favor of C++:
Why in god’s name would Apple switch to C++ when the rest of the GUI world is switching away from it? The writing is on the wall for C++. With Microsoft pushing C# as the primary language for Vista, a huge percentage of its market is gone right there. Meanwhile, Apple is using Obj-C, and GNOME has moved towards having a low-level C API with high-level language bindings. Real soon now, KDE will be the only major platform still written in C++, and even KDE uses language extensions to make GUI programming in C++ tolerable. Moreover, like GNOME, KDE is putting a large amount of emphasis on binding to languages like Python.
Apple’s best bet would be to become language-agnostic. Apple isn’t big enough to push its own programming language, but what they can do is leverage the “Cocoa on Carbon” system they’ve built so far and go the GNOME route by allowing high-level, language-specific APIs to be built on a low-level C infrastructure.
Why in god’s name would Apple switch to C++ when the rest of the GUI world is switching away from it?
Because it isn’t, really? C++ owns the GUI application market, with the exception of some internal stuff. There is little sign of that changing. Outside the VB shops, there really aren’t any credible competitors with visible marketshare.
For good or ill, essentially all modern OS’s are written in C/C++, and no good alternative exists for using them. (Sure, you can write GUI apps in Python, Ruby, even Haskell, but you pay a price in size and performance and you’re pretty certain to need to write extensions (in C) to get the job done. Agreed that C++ is not the ideal application language, but it’s what we have.
The biggest problem C++ is not its nature or usefulness, but the current fashion of trying to make it into something it isn’t. The academics on the Standards Committee and the publishing circuit frantically tack on more and more arcane additions to try to make C++ more “friendly” to modern tastes; the end result is code that is unreadable, undebuggable, and unportable (but slightly shorter!) AND harder than ever for noobs to learn.
With Microsoft pushing C# as the primary language for Vista
By abandoning it themselves? Early releases of Vista’s shell, for example, hosted the .NET runtime and contained some managed code; the most recent versions don’t. Presumably Vista will (finally) include the runtime in the install, which will (finally) make it usable for end user applications, provided that XP and earlier support isn’t needed. I don’t expect to see many C# consumer-level apps on windows for years yet, if ever.
Apple’s best bet would be to become language-agnostic. Apple isn’t big enough to push its own programming language, …. …go the GNOME route by allowing high-level, language-specific APIs to be built on a low-level C infrastructure.
If they had tried that when OSX first appeared, maybe, but now they’ve already lost too much ground for an experiment that would only make them look desperate.
The best thing Apple could possibly do for themselves would be to announce support for a C++ (preferably crossplatform) framework, developed inhouse or (even better) bought complete with a track record and a known name. This would give their big developers like Adobe something they could start using bits and pieces of immediately (especially if it gave easy access to the Cocoa routines that are such a pain to use from C++.) There’d also be the possibility of getting some new commercial development (there is no possibility of that now), and the respect that comes with it.
Because it isn’t, really? C++ owns the GUI application market, with the exception of some internal stuff.
C++ is going away for GUIs whether developers really like it or not. There is a lot of legacy GUI C++ code, but going forward, .NET will be *the* API on Windows
For good or ill, essentially all modern OS’s are written in C/C++, and no good alternative exists for using them.
Don’t conflate C and C++. Most modern OSs are written in C, not C++. Apple has perfectly acceptable C interfaces (Carbon), and these interfaces are easy to bind to real languages. Apple would do well to build upon this, and not force a particular language in a market where language choice if flourishing.
Presumably Vista will (finally) include the runtime in the install, which will (finally) make it usable for end user applications, provided that XP and earlier support isn’t needed.
Windows apps will have to move to .NET. .NET is the only first-class citizen in the Vista managed API world. Win32 is still supported, of course, for compatibility, but Microsoft doesn’t seem to be spending any effort making it any less primitive. All the fancy new GUI toolkit stuff is heavily .NET biased.
The best thing Apple could possibly do for themselves would be to announce support for a C++ (preferably crossplatform) framework, developed inhouse or (even better) bought complete with a track record and a known name.
Apple has a perfectly good framework (Carbon), for legacy C and C++ programs to use. Why would they introduce a C++ framework in an age when the other major platforms (Windows, GNOME) are marginalizing the ones they have?
C++ is going away for GUIs whether developers really like it or not. There is a lot of legacy GUI C++ code, but going forward, .NET will be *the* API on Windows
Wrong, you need to do more research:
http://www.atai.org/guitool/
http://www.sptk.net/
How many options are there for Java? SWT, Swing, AWT? .Net? SWF, XAML?
How many .Net apps (not apps embedding .Net) has MS shipped? Or are going to ship?
Don’t conflate C and C++. Most modern OSs are written in C, not C++. Apple has perfectly acceptable C interfaces (Carbon), and these interfaces are easy to bind to real languages. Apple would do well to build upon this, and not force a particular language in a market where language choice if flourishing.
Hmm, so I guess Symbian and BeOS/Zeta are out of the norm. Or are they not modern enough for you?
System programming languages are here to stay, whether its C or C++. I will believe in languages for .Net, the day I could write an entire VM in it and have a much more manageable solution than the framework baggage. In C/C++ you have choices, it is not bogged down with a IP encumbered framework and reaches into far more platforms than .Net ever will.
Ever tried deploying a pure Java/Python game onto a PS2/GameCube? How many Java/.Net framework revisions would a user have to install as he acquire apps using the newer and newer frameworks? Azureus may be good but have you tried uTorrent to know that its better?
The day Java/.Net could be used to write and compile its own VM and developers have alternatives for frameworks. It will never ever match the posibilities C/C++ will ever bring.
Time has come and gone, I’ve yet to see Java or .Net apps take over even desktop productivity applications.
-Ad
I don’t think that there is a need to swap kernels.
Mach is quite fast and stable, there is also a nice object oriented driver model.
Mach has been enhanced by Apple over time – so one could ask if Mac OS X is still being based on Mach or if the Kernel is allready the ‘Mac OS X Kernel’.
I believe the will be enhanced over time a mutate.
I also don’t think that Linux would be a good choice – how would Apple keep it’s goals in sync with Linux over time (remember WebKit?).
Apple will NEVER switch to using Linux as the kernel for OSX. It’s impossible, for one, single, simple reason, and I don’t care if I get flamed for saying it:
GPL.
Whether people like it or not, the GPL has restrictions that do not fit into Apple’s way of doing things– that is, total control over every aspect, from the bits on your harddrive to the mouse you use to navigate the interface. This is a good thing, in my opinion, as it creates a very seamless user experience that I personally really enjoy. But with using Linux, they would have to comply with a very strict license, and they’ll have millions of pairs of OSS eyes watching their every step.
Remember how Apple did not release the x86 sources to the latest Darwin releases? Do you think that is possible when they use the Linux kernel? Hell no.
Secondly, but no less important, the GPL is kind of a legal no man’s land. People intepret the GPL in different ways, which means that Apple will be much more vulnerable to legal threats. And if there’s one thing shareholders and investors do not like, it’s legal no man’s lands.
Linux is an absolute no go. Forget it, it ain’t gonna happen.
GPL does not seem to fit most businesses needs. This is one thing that keeps Linux where it is. 3rd place.
Well, you mean 2nd place
DOH!
Linux is not GPL. It’s GPL with an exception.
Apart from that you’re spreading FUD. GPL is perfectly legal, and in no way a “kind of legal no man’s land”. It has so far not failed in court anywhere. And the GPL it self is pretty clear (LGPL is much more complicated).
I know how much you hate GPL and I’ve read the nonsense you’ve written on skyos.org, but puhlease… Get a grip on yourself, and start behaving properly.
I do agree though, that Apple would never use Linux as the kernel. The Linux kernel tends to evolve in too many different directions to be interesting for Apple. But this is a technical issue and not a licensing issue.
I’m not talking about whether or not the GPL can hold up in court. I’m talking about how different people intepret the GPL in different ways. THAT means it’s a legal no man’s land, because judge A might intepret the GPL in a different way than judge B.
I know how much you hate GPL and I’ve read the nonsense you’ve written on skyos.org, but puhlease… Get a grip on yourself, and start behaving properly.
Ah right, we get someon who read a few posts on the SkyOS boards and who thinks he knows me. Tone it down there, sonny. I’ve been active in that community for quite a longer time than you have, so don’t act like you’re some sort of expert on SkyOS.
And no, I don’t hate the GPL. The license is just not suited for Apple, that’s it.
Ah right, we get someon who read a few posts on the SkyOS boards and who thinks he knows me. Tone it down there, sonny. I’ve been active in that community for quite a longer time than you have, so don’t act like you’re some sort of expert on SkyOS.
Relax boy. I don’t know you on a personal level, but that is irrelevant in regard to analyzing your posts. The amount of time I’ve been in the SkyOS community is also irrelevant in regard to analyzing your posts.
What is relevant is the contents of your posts, here at OSN as well at skyos.org.
You clearly do not grasp FLOSS, or you’re deliberately spreading nonsense. And don’t call me sonny. I’m the older one of us
I’m not talking about whether or not the GPL can hold up in court. I’m talking about how different people intepret the GPL in different ways. THAT means it’s a legal no man’s land, because judge A might intepret the GPL in a different way than judge B.
That makes everything to legal no man’s land, because Judge A may interprete a given law one way, and Judge B may interprete the same law a different way.
OR
Judge A interpretes a given contract one way and JUDGE B interpretes the same contract another way.
Conclusion: Everything and sundry is legal no man’s land, if we’re going to use your logic.
And no, I don’t hate the GPL. The license is just not suited for Apple, that’s it.
I’d let Apple decide that. They _are_ using it you know. And they do respect the license, and they do understand it well. So does Microsoft. It’s not all that honky-tonky as you’d have it sound.
[EDIT: Fixed wrong tags, and fixed one typo]
Edited 2006-04-17 22:37
Apple’s way of doing things– that is, total control over every aspect, from the bits on your harddrive to the mouse you use to navigate the interface
Thom, how does Apple control what “bits” I have on my hard drive? (By “bits” I assume you mean my files and programs?)
And how does Apple control what mouse I use to navigate the Interface?
I don’t understand this “total control” myth. I can use any brand of notebook harddrive in my Mac mini, any brand of RAM, any brand of monitor, speakers, microphone, mouse, keyboard, and printer. Apple does not get to make those decisions for me. They may provide me with their defaults, but they in no way prevent me from using something else.
…I don’t understand this “total control” myth….
If you really want to understand why ‘total control’ is not a myth, read up about Harmony.
It’s impossible, for one, single, simple reason, and I don’t care if I get flamed for saying it:
GPL.
It’s good that you don’t care about getting flamed because that is a nonsense statement. As has already been pointed out, Apple uses plenty of gpled code.
I’m sure they do prefer bsd stuff, but saying the gpl makes it impossible is just dumb.
Thom, we should be debating Cringely’s articles about as often as we debate Dvorak’s, Thurrott’s and Enderle’s. They’re whores with zero technical knowledge, a stopped-clock batting average, and linking their columns is validating their publishers’ viewpoint that it’s okay to fling crap at a wall to see what sticks.
But, as you may have noticed from this thread, their articles generate a lot of ad hits for osnews…
Edited 2006-04-18 03:07
linking their columns is validating their publishers’ viewpoint that it’s okay to fling crap at a wall to see what sticks.
And posting here is validating Thom’s viewpoint that it’s okay to fling crap at a wall to see what sticks. Damnit, one of these days I’ll wise up and stop coming here…
I think Solaris is the good choise for Apple, with with some adjustment: Mach-legacy kernel calls in a NetBSD-style for its Darwin binaries compatibility.
Or, why not, NetBSD derectly! It’s good, it’s stable, it’s strong, it’s always BSD-like – licence too – and with little work (i think, but i’m not sure, just to recompile all OSX Cores and upper levels) Mac OS X should have a brand new kernel.
Finally Apple is aware of the problem Microsoft has put other OSs in, namely the Performance.
Though I am sad for Microsoft’s contiuous vulnerabilities, I admit It’s the fastest Server OS in the world (except for of course few services)
At least Linux and solaris have gone with Microsoft contest to benchmark server applications and they won in some, Apple remained silent about these benchmarks.
Now Microsoft in “Get the Facts” insist in total cost of ownership rather than performance as RHEL beated them in this area lets say at least 70%; while Apple still insist on that their server OS is all about simplicity and stability. Well simplicity is not necessary for administrators who are highly educated persons, whereas stability is not lets say better than RHEL with their running firewall and SELinux.
I am glad that Apple decided to give a serious though about their kernel /user space engineering, good luck
!
I skimmed over the anandtech article discussing performance of Apple as a server.
Why didn’t they do any Linux on G5 benchmarks?
That would have given a better idea of how the Mach kernel affects performance.
They did. OS X got owned.
I’m talking about how different people intepret the GPL in different ways. THAT means it’s a legal no man’s land, because judge A might intepret the GPL in a different way than judge B.
As someone else has already noted, all laws are like that, that’s why jurisprudence is important.
I’m curious, however. What could be different (and one imagines, incompatible) interpretations of the GPL? Because to me the GPL’s language is quite straightforward, which is one of the reasons very few people have tried to challenge it (and no one has successfully done so).
As to whether it’s suitable for Apple or not depends on how Apple’s proprietary parts of the OS integrate with the Kernel. It’s quite possible to imagine a proprietary shell that would run on a Linux kernel, I don’t see why Apple couldn’t the same, a priori…
the guy who wrote the article obviously does not know ANYTHING (stated couple times by other posters)
it makes sense to me…since they’re in intel…why not “maximize” the value of their hardware (want to run windows apps on a mac?)
linux and mac os x should be treated differently. you really think they give a shit about poor server performance? you really think apple makes a lot of money from the server market? they have nothing to fear with linux. don’t know too many people running linux on a mac.
secondly if they actually change the kernel they’re going to screw the developers big time. Make your code work with intel…good…now make your code work with the new kernel. yes…there aren’t many apple developers outside the company but if they introduce another damn API to replace cocoa…i’m switching back to Windows.
For Apple?
This takes the cake. At the end of the year this brainfart will be one of his “failed” predictions.
Mach/ObjC are extremely well-suited for one another and that is intentional.
The fact is that Leopard will be more Cocoa/ObjC and less Carbon.
If Apple were going to solely embrace C++ [Besides Carbon C/C++, they use ObjC++ for I/OKit(C++) and WebKit to leverage third party hardware product specs and KDE’s KJS/KHTML(C++) toolkits] you sure as hell wouldn’t have Adobe bitching about the fact they have to jump through so many hoops.
http://developer.apple.com/documentation/Cocoa/index-date.html#docl…
Yes, clearly they are just going to embrace C++. NOT!
I think the reason Apple could be finally tackling its performance problem especially in the server area is because now Intel is supplying them with chips and AMD is trumping anything Intel has to throw at them. So if there are machines that are already handicapped in the hardware department coupled with another rather large handicap in the software department, aka OS X, Intel will look even worse because there are so many people running XP and Windows OSes and getting kick butt performance on AMD hardware!
Much less than switching to windows. Windows is win32, mac os x is posix. It doesn’t have sense to switch to windows. It Apple wants a better kernel kernel they’ll use OpenSolaris
One of the crown jewls of MacOS X is the device driver API; at the end of the day, I think there needs to be a look as to whether any of the pain required will yield sufficient server sales to justify the switch.
Ultimately Apple is a desktop/workstation company with a growing software division – considering how hard it is for them to get their desktops/workstations into businesses, the primary purchases of servers will be business; how many are willing to say, ‘lets give Apple a go’?
well, use Qt then 😉
its free (as in speech and beer) for GPL and the like apps, and carries a price tag if you want to earn some money with softwaresales (tough you get support with that). for in-house development it’s free, too, btw (as the GPL does nothing to forbid that, so you can use it).
>>To date there’s NO way to objectively measure OS ergonomics. That’s why windows fanboys think their OS is well designed. IMHO, OS X ergonomic is far better that any version of windows (Vista included).
Are you kidding me? How about mouse distance traveled to measure ergonomics? In MAC OS you have to move the mouse to the top of the screen just to access the pulldown menus of any program. Is this more ergonomic than Windows….far from it. Vista and .NET will own the future, and I own a MAC.
Dano.
“Are you kidding me?”
absolutely not !
“How about mouse distance traveled to measure ergonomics?”
Is that what you call objective measure of OS ergonomics ?
This looks very (too) subjective for me…
Another example: you seem to forget that to shutdown your windows computer you press on “Start” button. This is just an example among hundreds.
“Vista and .NET will own the future, and I own a MAC.”
LOL.
Do you think that you pretending to own a MAC (whether it’s true or not) can give you credibility ? Not with me anyway !
Everyone with any sort of hardware has a MAC (Media Access Controller). I mean my Windows/Linux laptop has one, my Apple iMac has one, and even my NintendoDS has one.
I don’t see why people have an issue with the menu bar being at the top of the screen, the menus are ALWAYS in the same place no matter what application you use, and since they are at the edge, you can keep moving up and still click the menu. Therefore, they are considered to have “infinite length”. Much easier to hit the File menu on MacOS than it is on Windows or Linux (excepting maybe KDE which can do the MacOS style menubar).
and yes, OS “ergonomics” is completely subjective. Personally? I feel more at home on MacOS than I do on Windows, and I’ve just switched back to Mac last thursday
People have an issue with the menu bar being at the top of the screen because unless you only use one application at a time, its an inefficient way to locate a menu. The menu is located away from the application so its difficult and out of the way to access it. Basically, the situation is similiar to this:
When I am going to the highway, I can either take the road straight down to the highway which takes around 20-25 minutes, depending on traffic. It requires 0 turns (its a windy road). I can instead choose to go to on a more direct route to the highway, but it involves about 6 turns to get onto the highway. It usually takes around 10 minutes to get to the highway, even in rush hour. Now, I could choose to go straight, not have to worry about making any turns, and get to the highway, but its wasting time and gas in my car, when I could take an alternate route which is more difficult to follow, but will get you there a lot faster (its basically a shortcut).
Now, is it worth having shortcuts for stuff you’re going to be constantly using (a menu bar attached to the application) or is it worth making you travel all the way up the road every time you want to access the highway just for easy instructions (menu bar at the top of the screen)
(not to say thats its not a horrible idea, when people are coming to my house who are bad at directions and not familiar with the area, I tell them to go to the straight street as its easier for them, even if its taking them more time)
The menu bar isn’t at the top of the screen because its easier to tell people where it is, its there because of the nature of human motor skills.
Basically, the menubar attached to the window has the following problem: it’s a tiny target. Vertically, it’s maybe 12-15 pixels tall. Researchers have found that the speed at which someone can move the mouse to a target depends on the size of the target (along the direction of motion). For a target at the edges of the window, the size along the axis of motion is essentially infinite, which means the user can throw the mouse to the location as fast as they can physically move the mouse. Thus, the actual time it takes to get to that point is less, even if the actual distance is substantially larger.
There are fascinating reasons underlying this aspect of human behavior. It’s fairly clear that motor skills rely heavily on feedback for control. It’s like what you do when driving: you make constant adjustments to the wheel’s position, because your brain feeds back what your eyes see about the vehicles orientation to automatically correct the error between where you’re going and the straight-line you want to stay on. You can look at mousing to a menu item the same way. When you want to hit the “File” menu, your brain doesn’t compute the transform from screen-space to real-space and figure out how far it needs to move your hand to reach the target. Instead, it starts moving your hand at a certain speed, and adjusts the speed as it see the mouse moving towards the target. Essentially, there is a feedback loop controlling the motion of your hand.
Now, if you study control theory, you’ll find that in many cases, what takes the most time is not getting an actuator to reach a position (or getting a valve to reach a certain level of flow or whatever), but getting it to settle in that position. Furthermore, the faster you make an actuator move to a position, the more it will overshoot, and the longer it will take to actually settle into the final position.
Now, with a global menu bar, you don’t *need* that feedback loop. Once you get used to just throwing your mouse at the edge, your brain figures out it doesn’t have to precisely control the speed of your hand, because the screen edge will stop the cursor. This is not only much faster, but requires less concentration on your part.
So your analogy is incorrect, because you don’t consider that the shorter route also requires you to go more slowly. A better analogy is the following: you can choose to cross a ravine either by walking 100m out of your way to get to a bridge, or walking 10m over a tightrope to the other side. Even though the former route is much longer, you can get there faster because it doesn’t take nearly as much coordination and concentration.
What’s interesting about the ergonomics/Mac OS debate is how the intensity of feeling has risen, while the real differences between Macs and their alternatives have fallen.
I have used Macs (and still do occasionally) since before most people here were born. Back then the alternative was the command line, DOS, no gui at all. Hard to imagine. I mean, CD followed by a command to look for your files! I can recall saying to IT that what I wanted was to be able to cut and paste between applications, and they scratched their heads and came back to me a day later and said it could probably be done in some early version of Windows.
At that time, and in the days of W3.1, there were lots of studies showing Mac users had mastered more applications. There was a real obvious difference between Mac and Windows in screen rendering as well as usability.
Funnily enough, all the current abuse of Windows and the hysterical defensiveness were totally absent. There was nothing really to argue about, everyone could just see that the Mac interface was different and more attractive. There were questions about price performance and locked in hardware, but the interface itself was not an issue.
It seems to me that after XP, while the Mac interface is slightly different than the Windows interface, the differences are minor. Its Flemish versus Dutch, or Quebecois versus Parisian French. Usability is greater in some areas than others for each system, but overall, its a matter of taste.
So its very curious that as differences have declined, the strength of feeling about them has risen so much. A bit, I suppose, like the similarly irrational and destructive phenonomenon in which the various Communist heretics were purged with increasing fury the closer they were to orthodoxy, or the Counter Reformation treated Catholic heretics with a fury greater than that it felt for respecteable Protestantism, and minded indifferent pagans even less.
Anyway, to those of us who can remember when it was the difference between gui and non-gui, the intensity of feeling about is the menu bar on the top or the bottom is, well, bemusing! In terms of taste, I’ve tried both with Gnome, and so have my clients, and to a man/woman they always keep the thing at the bottom. I don’t know why. But does it matter?
OS ergonomics are not completely subjective, any more than real ergonics is completely subjective. That’s just the cop-out answer that some people have who are too lazy to actually perform scientific studies about how people interact with computers.
To people who think OS HCI is completely subjective: go find yourself an industrial engineer. Ask them about their job. Then, try to tell them that things like factory layout are “completely subjective”.
Ask yourself the following question: if there are emperical rules about how factories should be arranged for maximum efficiency, is it really hard to believe that there are emperical rules about how user interfaces should be designed for efficiency?
As you point out, Fitt’s law is one of those emperical observations. Certain companies might have gotten an entire generation of computer users used to interfaces that don’t follow it, but that doesn’t mean that there isn’t a “right answer” to the question of “where should the menu bar be?”