Does New Development For Mac OS X Make Sense?
DLWormwood wonders: "As a long time Mac developer, originally as a hobbyist and then a professional, I'm feeling pessimistic about the future of the platform now that Apple is embracing Intel and abandoning the few remaining 'Mac' technologies (like the PowerPC and OpenTransport) left to the platform. With the high likelihood that these new Macs will offer a full speed version of Virtual PC and (what I think is) the almost assurance that some clever hacker will make 'X for x86' run on commodity hardware, I'm doubting the willingness of most IT and development houses to even give the Carbon and Cocoa APIs a first glance. (If it wasn't for the poor past performance of VPC, I would not have gotten my first Mac programming job.) Can anybody with a more optimistic view think of a scenario where a modern development house will do Mac development in an age where the help desk will just say either 'switch boot to Windows/Linux' or 'run Virtual PC?'"
Apple is much more than just a processor. What really differentiates Apple from the Windows world is the OS. Not to get into the argument about stability, OS X is much more intuitive and overall an easier to use operating system.
I don't think that you will come into a situation where a help desk would tell a user to switch into Windows or run VirtualPC because I doubt that Macs will ever come with those pieces of software installed. Working at a helpdesk is not about telling users what they should do, it's about helping them do what they want to do
I think that now that Apple is switching to Intel they will have more flexibility in pricing and will probably continue to grow their market share. I'd say that the prospects for Mac developers will be better than ever in the future. If you need another opinion check out this article.
Those who know, do not speak. Those who speak, do not know. ~Lao Tzu
I think your view, while logical and understandable, is unnecessarily pessimistic.
The market has always viewed the Mac as another computer, one interchangeable with every other computer. While a Mac is (technology wise) a computer, the people who buy them view them very differently and the sheer dynamics of the Mac Economy (the customers, companies and products that hinge on the Mac platform) prove this out.
Take your fear of people figuring out how to run X on beige boxes... Apple doesn't care about these folks. Simply by having not purchased a Mac, this portion of the market has already proven that they are unwilling to have ever paid the Apple premium so, in effect, Apple will virtually never loose a sale to this crowd.
Or think of it this way; the kind of people who are drawn to the Mac platform are drawn to it PRECISELY because they don't want to fuck around with patches, workarounds and general hackery in order to make their computer run. Here is the test: could you imagine telling your mother to run out, buy a beige box, download some boot hack, install it, then install OS X on top of that? Probably not and that's exactly why Apple isn't going to be kept up at night worrying about the people who are going to hack OS X to run on commodity hardware.
If anything, I think this will bolster Mac sales- the kind of people who are willing to jump through the hoops to make OS X run on beige boxes are computer enthusiasts and typically serve as the computer information maven within their circle of friends. I think that if these hardcore Windows guys get OS X (for free) and play with it on their beige (or Tie Fighter) boxes, they are going to be pretty impressed. When it comes to telling people what computer to buy though, they will probably just recommend to their friends that they buy a Mac.
The same logic generally applies to your second point (will software developers still make Mac versions of their stuff). I think that the answer here is again, a big yes because there is a fairly substantial wall between people who will want to run native apps and people who want to run emulated apps. As someone with a Mac, I've proven (by voting with my dollars) that I am someone who will pay a premium to have an elegant computer that "Just Works." Any software developer with half a brain is going to realize that forcing the Mac customer to run clunky Windows emulation (even if it is at native speed) is inherently out of step with what that customer wants.
I think this is the perfect time to start developing Mac software. Porting over PC code is going to be easier then ever. The overall buy rate of Macs is going to be increasing significantly. A major chunk of risk in regards to the stability of the Mac platform has now been removed. Apple will be rocking the computer world within the next 24 months...
Well, I'm fairly sure OpenTransport has been gone for a while now, but to answer the question...
One, Mac users will still want Mac-native applications. Witness the lack of interest in X11 ports of Linux programs. These all work just fine, but look comparatively ugly. Same goes for Java apps.
Two, Cocoa and friends is a wonderful language / API set. The programs I have made under OS X have been actually fun to create and build. I, for one, will still program for OS X, regardless of what everyone else does, because I use OS X.
I think the problem facing people programming for OS X will be the same as it always has been, which is just getting enough user base to make the application financially viable for companies. That is up to the markets.
The issue for developers isn't that bad - after all, apple appears to be making it fairly easy to produce cross platform code. If you were going to develop before, why not now? It will be many years before there is a significant number of apple intel systems to run PC stuff quickly. If you were going to write for the apple PPC last week, your situation hasn't changed much and won't for the next couple of years. You will write with standard PPC tools, or use the latest version of Xcode (or similar) which produces fat binaries, and runs on both platforms without a performance hit.
Interestingly, the major improvements in Tiger, such as core video and so on, move all the graphically intensive stuff into the GPU. The cleverness of this is that the lack of the altivec units aren't such a big issue if you use the OS X core API's - everything is done in the graphics card, altivec is much less important, and this means that emulation of the PPC code will work fairly fast on their software emulator (rosetta). So your legacy code isn't going to suffer too much, and newer code even less so using the core API's even if you don't use fat binaries, which you will.
Of course, you could just write for windows, but then you are going to miss a large number of apple users and watch other developers make money in that market whilst you compete in the win32 sphere. Your choice as a developer I guess.
Eventually, the powerbook I am writing this on will be a legacy piece of hardware because the number of people using PPC will be too small to be worth developing for.
However, a similar situation exists for old windows boxes, not because the processor has changed, but because the hardware requirements are too high for big new apps to work on it.
This process will take many years to occur, and won't be a problem for developers unless all new purchases stop for apple.
If this happens, you will get alot of warning over the next 6-12 months that its time to bail from apple.
As a user of apple computers, after the initial concern, I am much less worried about making new purchases because the obsolescence of the current models will take years to occur. It really isn't so different from the transition of OS 9 to OS X. You can still run stuff in classic mode. And my current power book is still a magical 12" laptop that does what I need, and will be good for a few years no matter what, and for which I'll still buy new software for (if its good enough to buy). So the market will still be there.
I don't think that many apple fans will jump ship, even if they are not happy - after all, what is the alternative? Go back to windows? Get your apps working under linux (like iLife, Keynote, etc?). Even if you feel abandoned by apple, the alternatives are still either a malware ridden platform or alot of hard work and a significant drop in the eye candy factor.
In the longer run, its going to be more a case of alot more dissatisfied windows users jumping ship and the apple user base growing, in my opinion.
My 2c worth
Michael
There is no cryptographic solution to the problem where the intended receiver and the attacker are the same entity.
> its just ...too gui for me
Put Terminal in your dock and then click on it once in a while. Your problem will clear right up.
-- Mark
They who do not learn from history are destined to repeat it.
Yeah. After all, it did OS/2 a whole lot of good that it could run Windows 3.1 applications in protected memory space, and pre-emptively multitask them back in 1992.
Sorry, but you're failing to learn from history.
Back before Windows 95, OS/2 had a significantly better desktop environment than Microsoft Windows did. It ran Win16 applications, typically better than Windows itself did. I knew of a lot of Windows developers who did their development on OS/2 because of its better memory management, pre-emptive multitasking, and crash protection.
And what good did any of this do for OS/2? I remember personally contacting ISVs to talk to them about porting their popular software to OS/2, and the answer I always got was "why, when it runs our Windows software so well?". They didn't care one whit about the desktop environment, or the fact that their Win13 and Win32s applications looked bad on OS/2, and ran worse than native applications, didn't integrate into the desktop environment, couldn't use long filenames, etc. They cared only about one thing: how do we target the largest possible market at the lowest cost?
I don't see that much has changed within the industry. There are a lot of Windows-only ISVs out there who have no intention of putting any effort into making OS X applications, but who wouldn't mind increasing their userbase. And there are a lot of other ISVs out there who put minimal effort into OS X native applications, but who would love to do away with the additional staff and costs associated with that.
Fortunately for Apple, unline IBM they already have a significant development community using their APIs. Cocoa is an absolute joy to develop with. If anything, I would think that instead of having good Windows emulation, what Apple really needs to do is to port Xcode and Cocoa to Windows and Linux, and get developers on those platforms to write applications to their APIs, and allow existing Xcode developers create apps which will run on Windows and Linux. That is where the real battle is -- for the hearts and minds of developers. If you permit Windows to run on OS X as well as on native Windows, you concede the most important battle by telling developers that using the Windows APIs is just as good as using your own APIs.
That is the lesson IBM learned the hard way. They continued to make that mistake with their Open32 APIs, which mirrored the most common Win32 APIs in order to permit Win32 applications to be recompiled to run on OS/2. That didn't work out too well either.
That was introduced about 10 years ago. Do you want OS X in 10 years to be where OS/2 is today?
Yaz.
As a long time Mac developer, originally as a hobbyist and then a professional, I'm feeling pessimistic about the future of the platform now that Apple is embracing Intel and abandoning the few remaining 'Mac' technologies
You are extremely lucky to be developing Mac applications for a living. I envy you.
Apple is still going to be making incredibly well designed computers. They'll still be named "Macintosh". The Macintosh will still have a great looking case. The OS will still be called "Mac OS X" and will have code names based off of large cats. What will change is that the CPU inside the Macintosh will be named something else. That's it. You will still have to buy it from Apple, and you will not be able to put your Mac OS X installation DVD into a Dell or Gateway PC and expect it to install. Hackers may come up with a way, but it will be unsupported, since anyone who installs the OS onto a non-Apple certified machine will be breaking their license agreement. No company in their right mind will run PCs with a hacked OS X installed -- they'll just buy Macintosh computers and be done with it... and they'll be better off for it as well.
So program away, and feel good about yourself, you are doing what others only wish that they could do.
"To make a mistake is only human; to persist in a mistake is idiotic." Cicero
This is just stupid. "PowerPC" doesn't make the Mac. Otherwise, IBM would be a big seller of Macintoshes. Open Transport is just a poor attempt at reinventing the wheel. It made sense before TCP/IP was the only game in town, but it belongs in the bit bucket, in favor of modern network stacks built around IP.
With the high likelihood that these new Macs will offer a full speed version of Virtual PC and (what I think is) the almost assurance that some clever hacker will make 'X for x86' run on commodity hardware, I'm doubting the willingness of most IT and development houses to even give the Carbon and Cocoa APIs a first glance.
Sorry, but this is just as stupid. Once again, what is OS X, if not Carbon and (especially) Cocoa? Lots of developers code for X, not because it runs on PowerPC, but because, well, it's cool. Powerful apps are quite easy when you're provided a good set of frameworks.
Can anybody with a more optimistic view think of a scenario where a modern development house will do Mac development in an age where the help desk will just say either 'switch boot to Windows/Linux' or 'run Virtual PC?'
You definitely don't get it. Mac is the frameworks. Intel changes none of this.
There exists no way of exchanging information without making judgments. --Bene Gesserit Axiom
Like Be and RedHat, Apple is the new OS vendor out there. Be ran on 2 platforms and is dead now. RedHat runs on 3 (or more) platforms and has big community backing. Apple does too. They both have good application base, although Apple has more on one platform, the PPC.
Some say Apple has a good OS, so they'll have success. Others say their Intel hardware will be superior and people will buy more of it, since it will be cheaper and efficient, so Apple will be successful.
And yet for some reason, I'm also pessimistic here.
We had the evil wintel. And then we had the Apple, motorolla, IBM alliance. IBM is very busy pushing Linux-on-PowerPC, which means that hardware platform will have a future, and might just pull ahead of x86.
However, the AMD64 platform showed that the x86/x64 platform is the best thing out there and Apple is too moving to it. Less diversity. Just a bunch of OSes on the same chip on roughly the same motherboard (since the mem handler is built into the chip, theres less else on the AMD64 mobo). Thats now the entire desktop market of the world.
There was once a time when we had IRIX on MIPS, OpenVMS and Tru64 on Alpha and VMS, Solaris on Ultrasparc, HPUX on PARISC, Unixware on Intel, OS2, and all the BSDs plus Linux out there. It was a rich world. Lots to learn. Each one had a strength you could count on. All thats collapsed, Be was bought out, SCO was too, Alpha, Tru64, OpenVMS were too, Ultrasparc and Itanium and PARISC are dying, MIPS is dead, OS2 is dead, the diverse mainframes are dead, and we're seeing even more industry consolidation, and later the demise of some of the companies who couldnt differentiate enough.
I suppose I'll feel different when I'll see a cheaper macmini with an Athlon64 FX55 (or equiv) running OSX.
OSX had better be able to make me buy the whole deal now.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
Apple has been developing builds of Mac OS X for Intel since day once. They obviously have the resources to handle both architectures at the same time. So they will be able to maintain builds for PowerPC as well as Intel for years to come but yes, they will eventually phase out PowerPC, yes.
If you've read about the keynote, or watched the video, you'll know that Apple will introduce the Intel line in 2006, and complete the transition of all Apple products to Intel in 2007. My guess is you'll have two years of OS X updates for PowerPC after that (about how long OS 9 was still maintained after OS X was introduced). Simple math says your PowerPC will probably be running Mac OS X 10.8 (Garfield?) in 2009 by the time PowerPC is EOL'd.
Of course, I don't know for sure. It's just speculation based on Apple's historical transitions. They're not going to leave you out in the cold.
Gabriel Ricard
It's unfortunate, but endianness is the most important part of an API. You're going to have to reverse to order of the bytes for the string literal in "Hello, World!" to make it work. It's just not worth the effort.
English is easier said than done.
Mac O/S has excellent Java support. Write your code in Java, and it should be able to run on whatever hardware macs currently have under the hood.
Farewell! It's been a fine buncha years!
What fall back? The machines that come out June 2006 are replacing machines that are still 32-bit G4s (the Mac Mini and the laptops). No eating of crow-like substance necessary. When the 64-bit part (Merom) comes out in 2007, that's the right timing to replace the PowerMac line and anything else that needs upgrading from the first Intel generation. This maps out perfectly to what Jobs announced, and doesn't require any product to go back to 32-bit that is currently 64.
Maybe this is a misconception, but I thought that at some point the ancient x86 instruction set and registers were "set aside" in favor of a more modern RISC-style processor core, and the old x86 stuff is supported as a kind of pass-through layer on top of that. I understand that's the case with AMD's Athlon, anyhow.
This has been correct for everything since the Pentium Pro. CISC is a bad way to do a CPU, and everyone knows it. You can think of the x86 layer as a sort of machine code compression that actually increases how much code you can keep in cache at one point. A byte of x86 goes a lot farther than a byte of PPC.
-twb