Rhapsody in Yellow
Disclaimer: This one is going to be fairly long, and if you've been in the Appleverse for quite a long while a lot is going to feel like review... we're going to have to hit the wayback machine™ several times when talking about certain technologies. While I'll talk a lot about them, I'm not writing a book so it's not going to be exhaustive. But it should be enough, and while we'll cover enough ground to get the gist across, google & linkage should be your friend. As it stands, this could probably have been broken up, but I feel I owe my 12 loyal readers something of length to make up my... erratic posting schedule.
So... I was having a chat recently with someone about the lack of a certain software title for the Mac, which really seemed to be cramping their style. This eventually meandered (alcohol was involved) into a much larger topic:
What the hell is going on with independent development & the Mac?
It's obvious there have been changes, as others have touched upon, such as a big influx of *nix users to their developer base. But as far as big, high-quality apps... there just aren't many, and those that are being released are from the usual suspects. Nothing much new. Isn't Cocoa a developer nirvana, and doesn't the "power of Cocoa" allow one guy to do the work of 5?
This was really cool, because I already had some stuff written up which meant I could tie it together & make a blog post with a minimum of effort... which is like finding a quarter in the cushions as far as I'm concerned. Blog gold.
Since Cocoa is inherently a developer technology (which I'll go into further later), it'd make sense to start with the developers themselves. It's virtually impossible to get accurate developer statistics for the mac at the moment, namely because Apple, for whatever reason, doesn't want you to. Sure, they'll release 'select' blurbs that have high numbers, but they're so impracticably vague that they might as well be claiming every mac user is a developer since a copy of the developer tools come with every Mac.
I wish I was kidding. I have a several damn pages of hashed out numbers where I tried to distill the available info into a decent guess via inference from available info with a developer pal several months ago. It became obvious my effort was a pretty complete failure, although it was a fun mental exercise. There were too many missing variables without making some phone calls to get anywhere close, and racking up long distance for a blog post would have been a bit silly.
For whatever reason (you can prolly infer), Apple just doesn't want people to have hard developer numbers. I will say that I'd be very, very surprised if there are more than 10,000 developers earning their bread coding for the mac, and if I was a betting man I'd peg the number even lower. Which isn't to say there is some dire shortage developers, more it's about recognizing the limitations of what we know, versus what Apple knows. If you know, tell me.
I'm not a developer by trade, but because of how I earn my bread I run in a lot of their circles, and even if I didn't I like to keep my fingers on a lot of different pulses so I'm able to form my own fuzzy picture of what's going on. Lately, when it comes to Apple's development base, that picture has gotten both clearer in some areas and fuzzier in others... and hence, interesting as hell.
But then again, it always has been. Apple historically hasn't had a good relationship with developers (which we'll touch upon later), and while I'd have to do more checking than its worth, I wouldn't be surprised if Apple has had the most cantankerous developer relation of any OS vender evar. Some of the current stuff is sour grapes, but lordy have they burned some bridges in the past, with one developer I encountered several years ago saying (paraphrasing):
Discontinuing my efforts on the product wasn't an easy decision, and there were several factors and taken as a whole lead to it:
- 25% was due with the shrinking user base for my type of product
- 25% had to with the current outmoded architecture for my type of product, and I really don't know when they will actually ship what was promised. I prefer using the mac, but NT has those features now
- 50% is about never wanting to have to call Apple again. It is impossible to get anything out them even after paying exorbitant sums unless you are one of the big big apps. I have no illusions that Microsoft really cares about my company but they at least buy you dinner before asking you to drop your pants.
Why is that interesting? Because if the pulses I'm hearing are sound, they've made some serious inroads into changing that perception.
Apple guys are extremely helpful in a lot of the mailing lists, more responsive to bug feedbacks and giving workarounds, documentation has improved (it still has a long way to go, but you can tell it is a question of manpower now, not will)... for the most part, across the board, Apple is not only buying people dinner they're often leaving a little mint on the pillow for when you wake up.
Many a developer is taking a gander at MacOS X and liking what they're they're seeing:
- For free
Every single copy of MacOSX, and every single Mac sold comes with Xcode, an IDE which which can hold its own against many of the commercial packages out there. Also included is Interface builder, an extremely elegant tool for rapid GUI development. For free. To compliment those development tools is a decent, cross-platform compiler for C/C++/Obj-C... free.GCC isn't the fastest on any platform and it has some severe speed problems on PPC (not going to rehash my old GCC rant), but it's there, and a known variable. And, again, free. Yes, the compiler is open source, and can be had for windows, but there is a mindset in including it with the computer that just isn't the same. This is, bar none, prolly one of the coolest things Apple has done in a long while.
- !#
Just about any scripting language your heart desires is going to be available to you. Well, not just available to you, most are available in some form on Windows. But they are included, and integrate well. Python. Perl. PHP. Ruby. Installed by default. Slick. - SELECT *
Front-end guys are arguably getting kind of screwed with the mac at the moment, but back-end guys are happier than they've ever been, or ever could have been if Apple hadn't gone the *nix route with their OS. In addition to the scripting languages mentioned above, you're talking: MySQL, Apache, Tomcat, PostgreSQL... it's all there, and if it's not, it's prolly on the way. You can run everything I just mentioned on windows, but the shoe is suddenly on the other foot, and you feel as though you're running a port. The tech started on *nix, and that's where it swims.No, it's not perfect yet, and not everything is included by default, but getting up & running is much easier. This is something that is hard for a lot of windows users to relate to: you can just tell when something is a port, and not really in its environment but being shoehorned into another. It might be acceptable, but it doesn't make you go Ahhhhhhh. The backend guys are prolly second only to the video guys in the lack of drawbacks in paddling over to the mac end of the pool. Powerbooks instead of desktops are often a real option for these guys, and they do love that sexy kit.
- Java
Java really doesn't suck. Honest. To most mac users it does, as they're generally used to something like Limewire, that starts slow as hell, runs slow as hell, and just doesn't feel right. Or having it embedded in a website that isn't just java applets, but ties those applets to activex/liveconnect controls that make it all but unusable on an alternative platfrom. Love it or hate it, Java is going to be around for awhile, and it's taught in a hell of a lot of curriculums. And Java doesn't really suck, but java apps with GUI's (egh, Swing) often can.In the case of a GUI-less back-end, it can be a really, really slick, and once everything is running, you don't really lose much speed. And it allows for enormous freedom: as long as the platform has a VM, you can move to it or add a box with your app on it. Linux, Apple, Microsoft, Solaris, anything. And Apple actually has a very nice VM.
No, it's not as fast as Microsofts. And yes, the MHz problem hurts its usage. And yes, there have been issues with it being a bit behind in the versioning. Quite a few of them, to be honest... 1.2 especially really hurt Apple's mindshare. But the versioning problem has largely been ironed out, even if the releases still take a little too long, and there are some really nice technical advances Apple has contributed. Apple is a credible platform for java development, no matter what the target OS, and is a very sexy platform for mobile development.
- Mocha
...Or, Java + Cocoa. This is something that's of interest to me, and I've been trying to follow it for awhile. Java as a syntax really doesn't suck, and there are a hell of a lot more developers out there who know the Java syntax than are familiar with Obj-C. It isn't to say that Obj-C is some nightmare to learn, but rather that in allowing the use of Java syntax en leu of Obj-C for Cocoa development, a developer moving towards the mac is able to get up and running that much faster.They're already going to be spending most of their time learning the idiosyncrasies and nuances of the frameworks. Removing the hurdle of the syntax for developers who are interested in getting their feet wet with the mac is a really good thing™.
- Chai?
Java isn't the only language being tied into the frameworks, and Apple seems to have taken a bit of the page from Microsoft's .NET here (or perhaps Apple did it first, I dunno). Basically with .NET, you have the CLR runtime of APIs, and for the most part can access them in an entire host of language syntax's. C#, VB.NET, etc. Apple has done some of the same, by bridging other languages to toe frameworks. There's a bridge for Perl, Python, and others... and they're being used. In some cases not by many, but they are, and you could well be using one of these apps and not realize it.As an example, fire up one of the newer BitTorrent clients and you'll see python running in the background. Syntax can be a pretty personal thing, and if you have a large Python knowledge base, the idea of being able to translate that outside of places you may have normally been able to apply it, well, very cool. I may sound as though I'm repeating the Java thing, but this is something I've heard come up many, many times when I'm chatting up developers: they like the fact that OSX, by bridging their weapon of choice to the frameworks, lets them capitalize on their knowledge base. This isn't to say that there aren't GUI Python (or other language) bindings & such for other platforms, there are.
But there is where you come back to the Cocoa frameworks, and the value they add. It's nowhere near 100%, but not shoving Obj-C down their throats is really making these guys take a look. This also isn't to say it's perfect, it's not. It's not quite as pervasive as .NET. There are things you are going to have problems accessing via languages other than Obj-C, depending upon what your needs are. I've checked in without developers to be confident in the statement that while Obj-C is cool and all, and I certainly don't have a problem with it, the value is in the frameworks, not the language.
- Unix is expensive
...at least traditionally. Apple missed the first Unix gutting at the workstation-level by the bottom-up OSs, due to not having a technically competitive OS. WindowsNT pretty much sucked up that share, as companies like SGI found out the hard way. Linux has pretty much eroded the the server share, as its lack of a competitive GUI wasn't really a hinderance. Even now, the traditional Unix's are only generally used because if you need it, you need it, if off-the-shelf hardware couldn't do the job, or you needed things like 64-bit.But while a huge chunk of that shift has already passed, that shift is still going on, and Apple isn't above scavenging on the carrion left behind. The introduction of the 64-bit Opteron and the G5 have, hopefully, started a second but smaller wave, and apps that didnt migrate to NT but to Linux are ripe for porting to Mac OSX via Apple's implementation of X11 being very viable. Things like IBM's announced XLC compiler and Fortran compiler for PowerPC are removing more of the stumbling blocks to the scientific market.
- Protected memory
This one seems kind of trite if you haven't been developing for a long time, or are new to the mac, or come from a background where it's just a given. It isn't something that people talk about much now, but paleo-macdevs still hurt from it. Developing for the Classic MacOS just sucked compared to what else was out there towards the end.If you aren't a developer, stop and think about how when Internet Explorer 5.0 used to crash in OS9, your entire fsck'ing computer would lock up, requiring you to reboot and having to run a disk repair program to make sure things were kosher, etc. You also either lost some of what you were working on, or had to get "back to where you were". Now imagine having to do this 50 times a day because, you know, you are debugging. If you've ever developed a web page, imagine having to reboot your computer every time you preview the code in the browser. Not fun times.
I'm sure I could go on, and I'm sure I'm missing things. There are of course other ways of developing for OSX, and a more exhaustive list can be found here. But you should be able to get the gist: Lots of developers are looking at Apple in a different light, and getting interested.
So everything is all rosy, right? Well, not quite, although all of the above is excellent. If you'll notice in the above, most of "successes" I've mentioned center heavily on the Unix side of the pie, or are related to Apple having an OS based upon a *nix.
What's missing? Few Windows developers are making the jump.
Now this doesn't mean none are, just that as a ratio, when you realize just how many developers MS has on their fence, and how many have come over... something is prolly askew here. Is this a problem? Depends on who you ask, I guess. But for the sake of my carpal tunnel I'm going to assume it is, and go from there. Since we've identified it as a problem, what's causing it?
Several things come to mind:
- Lack of an entry-level language
There are few things I hate more than a $10-$19 shareware program that essentially does nothing but take a few arguments and appends them into a string as and passes them to another application viaNSTask. Hell, I can do that, and I'm a retarded monkey when it comes to coding. But something I hate even more are RealBasic apps. Some of those apps make me want to cry like the baby jesus.I'm not going to start bashing Real Software or anything of the like, but it's a fair statement that if the app is made in RealBasic the chances of it sucking go up by several orders of magnitude. Much of that has to do with the vastly lowered barrier to entry, both in the language and in what Real handles for you. There's nothing inherently wrong with Basic, things like VisualBasic are good IDEs. Some of the programmers I've worked with (IMHO) and hold in the highest esteem use VB, although most of the good ones are hankering to move to C# post haste and they're using it because that's where the work is.
There are probably hundreds of thousands if not millions of people out there using a form of Basic, whether RealBasic, VisualBasic, VB.NET or others. I wouldn't be surprised if RealBasic itself has a mac userbase of several thousand. There's a market there. You could say RealBasic fills that niche, but I'm not going to go there. It doesn't. A VB-style syntax accessing the frameworks through Xcode would. Keep reference counting for memory management if you have to. Whatever.
- Limited talent pool
Everyone talks about how Cocoa will deliver your kids and all, and it really is some great tech. The problem is that very few people actually know how to develop for OSX well. Apple themselves isn't excluded from this. NeXT didn't exactly have a huge user or developer base, and it's no secret a pretty big chunk of Apple had to go for training. A lot of the earlier apps kinda reflect that. I'm tempted to say some of their apps still reflect that.You also have the problem that with the current OS, you're often not just talking Cocoa, you're talking Carbon. Big chunks of OSX functionality need to be hit through an alternate method, depending on what you're doing. Things like, oh, Quicktime. Moral of the story, even if you wanted to go out and hire 100 crack OSX developers tomorrow I'm not sure you'd be able to. This raises the barrier to entry to a company who decides they want to enter the mac market in a timely manner in more ways than one. Bit of a vicious circle here.
- Dev DDT
Namely, the chicken & the egg problem. Developers want users to sell their software to, and users want software for a platform they choose. If there aren't enough target users to sell to, the opportunity cost for porting/creating their app for the mac is too high. If a user needs an app that a developer hasn't ported because there aren't enough users... nice circular dependancy there.One of the things mac users just love to point to when market-share figures come out is that yeah, will a billion PCs were sold in the last month, how many of those are actually viable desktops for developers to target? I.E., a ton of these will be blank boxen rolled out in corporations running Explorer & Office and that's about it.
Ok, that's valid. But it works both ways. There are ~10 million macs around the world running OSX. How many of those are spread around K12/university labs or other like place? I wouldn't be surprised if you're talking 15-30%. No I'm not saying the sky is falling or any other such thing, but it's also no secret that the mac base just isn't growing like the PC base at the moment...
As an example of the above, a little while ago I ran into a company recently who was going to be doing a vertical-market app for the cabinet/CNC/interior-design industry. For the sake of this, let's call them Acme company.
Acme company is starting to look at a linux port as 'they've been hearing things about it' and part of the . For whatever reason, I started talking about the cocoa frameworks in an abstract way and fired up projectbuilder and mentioned the term 'free'... they really took to it, so I sent them to Apple's dev site to get an idea of the arch, etc. This was more of a lark than anything, and they were "SUPER interested", but basically said "It's really really cool, but no way. None of our clients use macs, the whole industry is windows".
Since none of their clients are using macs, and they just get an occasional call about a mac version, they really can't justify a mac port just to go phishing, as you know, not everyone is as desperate as Corel. So mac users are left without this app to get their Feng Shui on. On the bright side, I got several beers out of it.
There are two quick things to clarify here:
- They could have been up & running to make a Cocoa version for less than $1k, assuming eMac + Ram + free dev tools. But actually getting someone who could handle the code, could translate the raster library to something on the screen as well as translating the DirectX stuff to OpenGL... you dont even want to upper range of pricing they were being quoted by just about anyone wouldn't be learning-on-thejob, and even then the time-tables were iffy. For a small company, not gonna happen on a lark. Part of that has to do with the fact that they're taking advantage of off-shoring, and the other part is that getting decent Visual C++ guys to smack it together (in the USA) would cost about the same, but for, well, the other 95% of the market. The opportunity cost was just too high.
- Vertical may be a poor choice of words, or at least can conjure the wrong image, as people often associate it with $20k stock-market apps or Maya plugins or the like. Niche can be more appropriate, and basically spans that isn't mass-market. Most of this stuff isn't very sexay.
We're talking about apps that interface with sewing machines and download patterns, apps that keep track of soccer statistics for a team (not fantasy games!), tools for making cool Flash stuff, web marketing tools, media compression tools... gazillions of small little markets. And due to share ratios, if there are 5,000 x86 users for a niche market, if its not directly related to one of the macs core markets, chances are there's only a base of ~300 to sell to on the mac. For a $20k vertical app, the user prolly won't care what machine they have to run it on. For a $49, they will.
This isn't saying anything new to anyone who's been around the mac for awhile, but it's started to get a bit exacerbated lately. The loss of Framemaker is going to make people I know have to move to windows to get their stuff done, yet it's still available for Solaris. That's a big wtf. Some are trying to figure out some kinda-insane workarounds, but it's fairly obvious they're going to have to buy a PC to get that stuff done. Palm has dropped mac support in their upcoming OS. Adobe's not exactly making a lot of friends in the mac community, and I swear to gawd I'm not even sure Dreamweaver 2004 shipped with the gawd-damned debugging code removed. But I digress.
The chicken & egg problem is getting worse, and is probably the largest problem on software makers minds. The economy is picking up again, but Apple's unit sales aren't really showing it. I've spent a reasonable amount of time going through Apple's Q1.2004 earnings, and they're a little disturbing. That's a whole other blog post in the making, but some of the highlights:
- Apple only showed ~5% unit growth in computer sales, while the rest of the industry showed a bit less than 15%. Part of the problem with this is that most of the growth is taking place on the low-end of the market, which is probably an indication that we've seen a downward price point shift.
- The G5s are still squarely in the problem area, especially considering the very hefty marketing efforts pushing them lately including big rebates, etc. They actually did worse than I thought they would, selling about 174k units. Apple is going to be working on some "intense marketing efforts" to fix this.
- The iMac and Powerbook are doing pretty poorly, with the iMac showing a 15% drop in sales from last year, and Powerbooks showing a 20% dip between quarters. The revenue dropped on the Powerbooks was less than 19%, which prolly means they've been able to push up the margins since the tech is a bit long in the tooth. Even stranger, the iMac sales are still lumped in with the eMac sales, so we don't really know ohw poorly the iMac is doing.
- Japanese & European sales are down. Way down. Europe was down 22% for the quarter, and Japan was down 29% for the year. That kind of a drop is more than a little disturbing.
- The iBooks are doing... ok. They showed flat growth between quarters, but a 50% jump from the last year. More interest was that Apple didn't seem to really know why they had the jump, or at least the analysts weren't buying their pat explanation which was a repetition of the phrase "G4". This was actually an interesting point of the call, with analysts wanting a more concrete explanation as to what was actually going on (as well as with foreign sales), with Apple really not offering much. The phrase "trust us" was made, and was a little disconcerting. I don't think we've heard the last of this, I know it disturbed me.
- The iPod is making up a hell of a lot of their profit, and saw a 900% growth year over year, but only 10% growth for the quarter. Interestingly enough, they didn't want to give exactly figures for iPods or the iPod Mini for competitive reasons... but they did say they are able to meet the demand for the current iPod, but can't for the Mini just yet. The iPod demand leveling out could piss off HP, but the writing for iPod isn't on the wall yet, and HP being able to push the iPod into foreign areas Apple doesn't have access to should be interesting.
- The interest on cash stockpile is making up more of their profit than it should, but it has for awhile. I think you're going to hear more & more rumbling about a dividend soon.
- Higher-education share grew some, but nothing major.
- I don't believe it was mentioned at the call, as its newer data, but Apple's share would appear to have dropped below 3%
- Apple is "aware" that they aren't really paricipating in the current personal computer growth, but as others have noted, they've made the conscious decision not to compete in the low-end arena where all the growth is occurring. They made several statements you could tell they were hoping the press (and mac users) would pick up, such as "...it's hard to tell if anyone is making money there anyway" (paraphrased), but this was... disturbing. More disturbing was that they didn't really have an answer to it.
- Just to hit this point home again, Apple didn't seem to have a whole lot of real data about what was really going on in a whole lot of their personal computer sales areas and the term anecdotal was used enough that people were repeating the question.
Considering the current climate (economy improving, overall personal computer market showing growth, and spyware/worms/viruses gone mad on the windows platform), Apples stunted computer sales are worrying. Sure, certain conditions could be more optimal, but Apple can't expect to sell computers during every economic bubble. The long and short of it is that the userbase isn't growing very well.
Cue the part of the conversation where people start talking about BMW's share of the market, and how marketshare doesn't really matter. I love analogies, but anyone who says it doesn't matter just really doesn't understand the network effect or Reed's law.
Now Apple must surely be aware of some of the more obvious gotchas I've mentioned above, and surely their current developer strategy, right? Cool, anyone happen to know what it is? Do me a quick favor, and google on "Apple Developer Strategy" or just click. Check out what shows up.
When you recover from the 1996-1998 linkage, you might try googling on other things from bits the first search turned up, like "Apple developer adoption program" or other things. Best of luck, but you may end up reaching the conclusion I have: Apple doesn't seem to really have a laid-out developer strategy, much like its M.I.A. security policies (tell me, how long will 10.3 have security updates when 10.4 is released? 10.2?).
So since we don't really have anything from Apple to go on, we're going to kinda have to infer:
- Use Cocoa as a competitive advantage for RAD development on the Mac. Theoretically this allows one to get cool shite™ up and running faster for complex apps, and gives Mac developers a competitive advantage over other platforms. Examples of this might be FinalCut Pro, iPhoto, iDVD, Motion, GarageBand, Keynote, OmniGraffle, Omniweb, etc.
- Try to make it fairly easy to port from other platforms to the mac, but even that is fairly secondary. They'd really prefer you're writing mac-specific versions, but hey.
- If there is a gap in the mac market, and Apple considers it strategically important, they'll step in and do it themselves if others don't. Well, and sometimes if others do, but Apple thinks they can do it better, they'll step in. Or if Apple just wants to have more direct control of that market. Well, ok, really anything is fair game. You've been warned.
- If Apple decides a specific market is strategically important, they aren't above acquiring some key companies and then making it... fiscally inconvenient to not buy the mac version unless you switch apps altogether.
- Where possible, leverage OSS & Open standards by taking an existing project or technology, polishing it in some way or another and releasing it into the wild under a spiffy new code name.
Essentially, Apple's ideal is to have 3rd parties creating native high-quality software for the mac, preferably doing things you can't do on other platforms. While they've had decent success with a few of the "strategies" above, none of these seem to be making a dent in the problem we're talking about... and they've been in play for long enough that if they were going to do their thing they'd, well, I wouldn't be annoyed.
This isn't to say that there hasn't been massive value in what they've done, only that, in the context of this particular problem (switching users) has been a failure. Not a complete one, but I'm not really into lowering the bar when you don't make it.
Speaking of bars, that brings to mind an old adage that no one ever says unless they've had enough white russians in them because, well, it's kinda hard to pull off:
"When your opponent is holding all the aces, there's only one thing to do. Kick over the table."
When it comes down to it, Apple needs a disruptive technology in its developer strategy. Not better technology. Not cool technology. Disruptive technology. Apple hasn't really had a disruptive technology in awhile in any form until recently unless iTunes pans out. It's really been quite the drought, and it isn't helping much that google's handing out down the street basically handing out disruptive tech and business models like they're AOL CDs.
There's a reason why disruptive technologies are few & far between, created either by geniuses or someone who happened to be in the right place at the right time. They're often the dark horse in the night, and overlooked until *boom* it's obvious everything has changed. Since I'm neither a genius (I have iQ tests to prove it) and my personal history has shown I'm perpetually running late, I have no disruptive technologies to offer.
But its fair to say that doing the same thing over and over will result in the same outcome over and over, and Apple's current developer strategy is not going to change their current chicken & the egg problem. And the chicken and the egg problem leads us straight back to developers, as they are somewhat inversely proportional to users.
Basically, getting 5 developers onboard increases the value of the platform more than 5 users does. There's a reason why Ballmer was out on the stage screaming "Developers! Developers! Developers!", and while the sweaty video passed around on the web isn't exactly conducive to his argument, the message itself is pretty sound.
Since we've looked at the problem, and looked at what they're doing, it brings us to the crux of that matter: How do we get more developers on board? A lot of things are new on the developer front at the moment, so lets start at the beginning, or rather the last time Apple had a developer strategy.
Namely, Rhapsody.
Yep, hold onto your iPods, we're about to step into the Wayback Machine™ and go retro as hell.
Ahhh.... Rhapsody. Few words will instill loathing in an Apple developer more than that word. QuickdrawGX prolly comes close, and OpenDoc prolly qualifies. But Rhapsody left a very large chunk of Apple's developer base pretty damned pucker-mouthed.
Sure, I could rant about the poor developers who dropped $5k+ on tricked-out dually 200MHz 9600's to develop for OSX. But let's just put it this way: these developers dropped serious money down for kit in 1997 with the full expectation that they were going to be releasing software for the kick-ass new OS soon... the kick-ass OS that had a public beta in 2000, but was released in 2001, and was so immature that there was a free upgrade to 10.1 late in 2001, and was still so immature that most 3rd parties waited for 10.2.
But wait, you say, everyone has screw-ups. Stuff had to change, stuff came up, shite happens, and so on. Fair enough. But for a lot of the old timers, this was, it seemed, the last straw. Apple did have a sort of RDF while Jobs was gone, and were able to convince a lot of people to pour effort into various technologies that died on the vine. They'd been screwed on so many technologies, that Rhapsody was seriously starting to look like another Copland to the world. There's a reason why 10.0 was such a poor release, Apple had to get something out the door. People were literally starting to wonder if they'd ever ship. Again. Uncool.
You'd be well within your rights to ask why the hell I'm going on about this. Or, if you're the type of person who frequents my blog, why the hell I'm rehashing this. It's simply to reiterate just how badly some developers feel towards Apple. Apple has never, ever been considered to be a developer-friendly platform, quite the opposite really. Arrogance, and a feeling of deigning to allow you to develop for their platform come to mind... almost as though they considered it a privilege.
Developers had already been treated like cattle for Apple to herd as appropriate for ages, but the promise of Rhapsody was so strong that much of that was either chocked up to "Bygones" or "Thank you sir, may I have another". I'm not kidding. Mac OSX is cool. Rhapsody was insanely great™. The promise was so strong Apple saved almost $5 million a year in energy costs alone for several years by being able to turn down the dial on the RDF field. Rhapsody had developers for other platforms buying macs simply to use get in on it.
So what was Rhapsody, and why did it inspire such developer wood? Some people say it was a product, some people say it was a strategy, but really it was both. Back in that time, Apple was in... fairly dire straits as far as their OS was concerned. The writing had been on the wall for the Classic MacOS OS for years, and Apple had had failed attempt after failed attempt in creating it's successor, sometimes with some very large partners who they're still working with.
Operating systems were entering a new phase: new world & old world, modern & quaint. A line had been drawn in the sand between what constituted a "modern" OS, and what didn't. This was the time of Microsofts WindowsNT and IBMs OS2/Warp, and Apple desperately needed to be able to haven an OS that could be lumped in the modern category.
It's current OS was exceedingly long in the tooth, and while it had served Apple very well (and still continues to serve millions of people well), it was very much entering the Elizabeth Taylor era of it's life. With enough surgeries it looked ok, and sure it stood up and looked around every once in awhile, but it didn't seem to always know where it was.
It's current effort at the time was Copland, and it was an abysmal failure. My impression is that this wasn't due to the quality of the coders or in-house talent, but rather the technical demands placed upon them in creating the new kernel. Either way, it can't be stressed enough just how badly, and publicly, this project crashed & burned. As an example, some are asking if Longhorn is Microsoft's Copland. Ouch. You really don't want your project entering the tech lexicon once many have forgotten what it originally was. Even worse, the failure of Copland was coming on a series of them.
At this point, Apple didn't really have any confidence in the OS coming from within, so had to look outside. Apple had several different options, including, but prolly not limited to:
- WindowsNT
Basing the MacOS on the WindowsNT kernel, which they would license from Microsoft. This seems completely brain dead now, and I'm sure some new kids on the block think I'm making this up. But this was a different time, and Microsoft had ported WindowsNT to PowerPC, specifically the CHRP platform (which seems to be getting new life from IBM lately).
I don't recall why this one didn't go through, as things were in such dire straights that the mac faithful would have rationalized this somehow. I was ready to.
- Be
There was this uber-cool, technically-advanced OS called Be that existed for the PowerPC and was created by an ex-Apple exec who was known forhis delusions of grandeurbeing a bit "high strung". Be was pretty damn unique, and arguably the shizzat of OSs on the market.
Outside of the Amiga, this was an OS born with multimedia in mind from the start. It was also one of the few modern OSs built from scratch (this is hard), and deserves its due. I could go on for ages about what put Be into the damn cool shite™ category, and Apple heavily considered buying Be. Next to NeXT, it was prolly it's most promising options if you assume pride was a factor.This deal died because of some demands by the owner who seemed to be caught up in some irrational exuberance, and the fact that Be was very immature for Apple's needs. This "immaturity" may have been somewhat exaggerated in the hoopla surrounding the choice they did end up going with, but there's no denying Apple's core market (well, it was then) was going to need to, um, print.
- OS9 Reloaded
Well, refactored. There was the option of "back-porting" several of the most direly-needed "expected modern OS features" to OS9, namely protected and memory and preemptive multitasking.
This would have been incredibly painful and a glued-together hack job, but it was theoretically possible. Luckily, this was shelved, although due to delays in Rhapsody some of this did take place, like a multi-threaded finder (which, I swear to god, we might have again in 10.5).
- Linux
Apple had been playing a tad with Linux for awhile, there was even something called MKLinux that ran on PPC. They'd also experimented with AU/X. But the Linux of 2004 is not the Linux of '95 or '96, and the amount of work it would haven to get it to where it is now, for one company, was more than a little daunting.
Still, taking Linux and adding everything to it that Apple would need just didn't feel like an option. You also had the fact that the GNU was still somewhat in its infancy as far as companies were concerned, and the BSD license was considered a lot more corporation-friendly.
- NeXT
When Jobs had left Apple, he went on to create a new computer company that arguably engendered the most hype ever to befall a computer launch: NeXT. I could go on and on about NeXT too, and it deserves every kudo you could throw at it.
In all honesty, the history of NeXT is worth a read if for no other reason than to hear some of Ross Perot's juicy quips or some of Larry Ellison's statements from the time. Or on just how much their logo cost. I love that stuff.Long story short, NeXT was very Apple-like, in that they had both an OS and hardware. The hardware, while insanely great for it's time, died. NeXT transitioned to standard x86 boxen, and proceeded to create OpenStep. More on that later. It was Unix-based, which meant it was kinda the Linux route but with a huge leg up. Suffice to say,
NeXT bought AppleApple bought NeXT for $400 million, and proceeded to get started on their next-gen OS: Rhapsody. - The Amiga
This wasn't really an option, but I swear to god I heard it proposed. Sad, sad Amiga.
The early days of the transition to Mac OSX were rough. Really, really rough. There are better places for a more accurate blow-by-blow for what happened, but the strategy was basically this:
- Port NeXT's OS to PowerPC
- Slap a Classic "platinum" MacOS interface on top of it
- Make NeXT's APIs (application programming interface, these are routines developers call to say, make a new window) the new standard, with the old crusty MacOS routines being put out to pasture. These were the YellowBox APIs.
- Run the Classic Mac OS as a separate process from with Rhapsody, so that people were able to run their run their current applications in a separate window, similar to VirtualPC. This was the BlueBox.
- Pray.
But wait, there's more!
NeXT had already dropped its hardware, and when Apple bought them was running on X86, using an interesting strategy: They sold an OS, and they ported their application frameworks to several OSs, allowing one to create an application on their box running NeXTs Openstep, press a button and have one for WindowsNT or Solaris come out.
You could even do things like Quad-binaries, or dual-binaries, which was somewhat similar to what Apple did with their 68k to PPC transition. What looks like one application to the user, but actually has two separate code bases inside it.
Apple now already had an OS that ran on X86, because Openstep did and really they were porting from x86 to PPC. They also had the same ability that NeXT had for cross-platform development. The idea was to ship Rhapsody for both PowerPC and x86 hardware, which Apple might themselves release. This would have meant that if Apple had two different types of CPUs on the market, a developer could hand you a dual-binary app that would load the x86 code if you had a pentium inside, and the PPC code if you had a PowerPC inside. This also meant that the developer could spit out an app that they could hand to a WindowsNT user and they could use it natively. This was basically the "Yellow Box".
It both went very well and very poorly, and Rhapsody (Mac OSX) was so delayed it engendered class-action lawsuits). But it did ship, just on a timetable that prolly would have allowed them to take any of the other options and do it in the same amount of time.
Several things happened:
- They had a full-scale revolt from some of their largest 3rd party developers. Most developers were in awe of what Rhapsody was going to bring, but some of these developers had been burned too many times. The current Rhapsody strategy would have caused them to have to rewrite their entire apps to have them run natively.
The mac's share of the market was already having problems, and there was a full-blown onslaught from WindowsNT on some of their core markets... and Adobe, Quark, etc just really weren't loving the idea of having to rewrite their massive codebases for an unproven OS that was seemed in no hurry to ship. Because OS8 and OS9 weren't going to go away over night, they'd have to support three code bases: Windows, and two code bases for a minority OS. But wait, you say, they'd only have to support one and let the other die? Theoretically, but no one was counting on that.
- I mentioned the Classic MacOS would be able to run as a separate process, but within its own window. This was called "the Blue Box". Users really, really weren't digging this, primarily because 99% of the apps they'd be running would be running in this compatibility window.
- Windows95 had morphed into Windows98, and had arguably eroded even more of the day-to-day differences between it and the MacOS interface, including things like plug-and-play and wizards galore. You also had the problem of true preemptive multitasking OS not leaning itself to an interface that wasn't designed for one... The MacOS interface was starting to look decidedly unsexy, and even, dare-i-say-it, globbed together and long in the tooth.
In order to deal with these, several things occurred:
- The first, or Yellow Box, was handled with Carbon, which was a huge, huge deal: They took the old MacOS APIs, ripped out a chunk that were just way too crufty to consider bringing over with an OS like MacOS, and ported them. Apple's line was that developers would only have to change 10% of their code on average to have a working app. This of course ended up being a tiny bit to some, and a big deal to others... but either way it was kind of a load. Sure, they'd run, but they'd run like crap as developers soon found out. Some of them haven't, which is why we still have the occasional Carbon app using CPU while idle because it is constantly polling.
- The second, or Blue Box, was solved via the Classic environment, which was distinguished because the separate window idea was abolished but apps instead ran as though they were dated-looking regular apps. This hurt compatibility a bit, but really helped the whole experience.
- The 3rd was handled with Aqua & Quartz, which arguably did more to harm the speed perception of current macs more than any MHz problems could begin to. Don't get me wrong, I love Aqua, but there's no arguing that Aqua is tomorrow's tech shoved onto yesterday's hardware.
But Apple did actually ship two releases of Rhapsody, both DC1 & DC2 in 1998.
Rhapsody DC2 was the last version of Mac OSX to run on X86 hardware, but that feature was axed later and made PowerPC only.
The cross-platform frameworks were similarly axed, meaning while you still got the frameworks, you weren't going to be handing your app to someone on Windows and having it run.
Some people weren't completely surprised.... Rhapsody DC2 had engendered a lot of excitement, but really the entire OS was so delayed at this point, and had already been repositioned with new life being breathed into the Classic MacOS that people were wondering if anything would ever ship... and there were other signs of problems, what with takeover rumors and the CHRP platform.
When MacOS X shipped, people had an arguable case as to whether Apple had made the right choice with NeXT. Everything was just so... incomplete. And rough. And slooooow.
They most certainly did make the right choice. Part of me still wishes they would have bought Be, Inc. a few years ago, if only so Palm didn't end up picking it up for $40 million and a twinkie. The big things Apple got from NeXt that are applicable to what we're talking about are:
- *nix environment
You'd be hard pressed to say this hasn't been used effectively by Apple, as illustrated by the backend, scripting & traditional unix guys I mentioned earlier who have gotten very interested. Sure, there are things they could be doing... but it's brought tremendous value to the OS that arguably wouldn't have been there with some of the alternatives. I know this is what kept me: I had a seriously wandering eye there for awhile, and it just so happened that having#!/bin/shandssh -2that I can access through a native terminal shell went way up on my priority list. I see guys carrying around Powerbooks & iBooks at various groups that wouldn't have looked at them if it didn't. - Openstep Frameworks
Well, we have Cocoa, or the Cocoa Frameworks, which is essentially what the "Yellow Box" was supposed to be, minus anything cross-platform. None of the real value inherent to a developer as far as using Cocoa has been removed, you still get a great RAD environment for prototyping your software, interfaces, what-have-you. But it's on Apple's hardware alone, which goes back to the chicken & the egg problem, and it should be obvious as to where I'm heading with this.
No, I'm not advocating for Mac OSX on x86 hardware, that's a whole separate issue and there's an obvious fear there that it would just destroy Apple's hardware market if they shipped it for generic x86 as planned. It's actually a very valid argument, as I've found the next laptop I want right now and it's not made by Apple (it does, however have a 2GHz+ AMD64, higher-rez screen and every goody I'd want for $1k less...), as Apple only competes in 1" thick laptops. Apple just isn't making what I want, but I'd like to run Mac OSX... I can't be the only one, and I'd have to think lots of us would raid their hardware sales something fierce.
What I'm throwing out there, after talking to a lot of developers, is that they bring back one aspect of it: the ability to port your app, with a minimum of fuss, to other platforms by choosing to use Apples Development tools and OSX (hence, mac hardware) as your development platform.
Depending on who you ask, Java has 1 to 4 million developers programming for it, so we'll assume 2.5. I know guys who develop for Java on their powerbooks, even though 99% of their userbase is on x86 and Solaris. They have like literally less than 5 mac customers using Xserves. This brings 3 things to mind:
- This isn't a native MacOS X app, refactored into a cocoa codebase, yet Apple has sold at least 3 Powerbooks to these guys (one still uses an IBM thinkpad) simply because they support Java. Without Java's cross-platform capabilities, that's 3 Powerbooks that wouldn't have been sold. There's benefit there.
- Their app, while Java and can theoretically run anywhere, is fairly complex and they do need to "certify" platforms before they deploy as there is some platform-specific stuff that needs to be done. They would have been in the "if enough people ask, we'll look at it" situation.
- Their app is pretty darned polished for a sub-5 userbase, simply because they've noticed lots of little things because it's what they're developing on. It's a lot faster and less buggy than it would have been otherwise.
- If Apple can get 1% of the ~2.5 million out there, you're talking 25,000 developers buying machines of some form, as well as the other things associated with having the apps they do make being made on the platform
I don't want to even guess about what would happen if you ran that number with Microsoft's developer share, so I won't, but you get the idea. There's also the case of Acme Co I mentioned earlier, who was in a development transition point and interested in a Linux version and a Mac version, but the opportunity cost was just too high. Java just isn't an option for them for several reasons, but in running it by them and some others... if they could develop on Mac OSX with their beautiful frameworks and support Mac, Linux and Windows with a minimum of per-platform hassle, you'd really, really have something.
Oh, yeah, Linux.
That's kinda important, as the market hasn't exactly stood still over the last 5 years. We're going to be somewhat cursory about this, but suffice to say, Linux is at another interesting transition point: the desktop. They've already made the leap from hobby OS to credible OS to essentially dominating the server space and some companies with a lot of weight behind them are working to have it eat its way up on the low end of the desktop.
Linux at this point can't be ignored, it's somewhat viral. Sure, your market just might have a slight cough at the moment, but soon you'll be coughing up a lung and really wishing you'd made that doctors appointment. I'm looking at you, Sun.
There are several ways to developer for Linux at the moment, but for desktop apps there are essentially two competing "desktop environments" at the front of the pack:
It'd be really easy to get into a pissing match here about the various merits of each, but that's a whole other can of worms. Instead, lets look at the licenses:
- Gnome is free as in beer. You can download and hack the source, and basically do whatever the hell you want as long as you follow the GNU license.
- KDE isn't free, unless you use it for free things. You can essentially develop for KDE for free, as long as your app is for free. If you want to charge for your app, you have to pay KDE.
- History tells us that when it comes to technology, the markets are like water and tend to go towards the path of least resistance. IE, if you were a betting man, you'd bet that Gnome is going to win the desktop, and KDE is going to end up moving into some sort of niche. Probably a high-end development environment for Gnome (and possibly other) desktops.
No, this isn't going to be tomorrow, but it's going to happen. KDE sees something on the wall with this. Why, exactly, do you think KDE is working so hard to port their frameworks over to OSX? Do you think they have a completely altruistic reason (well, not saying they're doing it for a bad reason) for KOffice running on OSX?
In other words, KDE is very much taking a play from the Openstep playbook here, and if Apple doesn't watch it their Yellowbox ace-up-their-sleeve is about to be rendered scarily redundant. Apple needs to wise up to this, as I certainly doubt the idea of a developer realizing they can just pay KDE and get Linux, Windows & Mac OSX for free, which is of course what KDE wants.
This can't be stressed enough: Apple may not have to choose a "desktop environment" to back, but the frameworks need to be ported to Linux eventually, and the sooner the better. Apple can either do it now, while they can still heavily influence the direction of the Linux stampede, or they can do it after it's passed and they're desperate and all that's left are the droppings from the herd.
Linux isn't the only area in a transition at the moment, the windows developer base is currently in the throws of .NET & C#. Most people are inherently confused about what .NET still is, which is primarily Microsoft's fault due to some really lousy all-inclusive marketing at the beginning.
If you go beyond web services or other things, to a windows developer, .NET is the .NET frameworks which interface with a CLR, or common language runtime. The easiest way to think of a CLR is to imagine Java's JVM (virtual machine) which allows you to write the java code, and then run it on any machine with a JVM installed. It's very close to the same thing, except it's not emulated, so the performance hit is a small fraction of what you get with something like Java. The .NET frameworks are a set of object-oriented APIs that can be called on through a ton of different syntaxes.
I.E., if you can use VisualBasic.NET, C#, Fortran, lord there are a ton, and they're pervasive. If you choose to VB instead of C# (well, and don't write as though you're not using an OO syntax now) your stuff just looks uglier and its a bit harder to scale the code than if you use C#. Well, and less fun. They haven't included Java syntax yet, as that'd prolly be a whole lawsuit in the making... I'm being cursory again, as there are other features and the like, but that's not important to this.
And yes, I'm well aware that I've pretty much just described the "Yellow Box", except that the what the different languages can access have better support for them in the APIs, and the fact that it isn't cross-platform, and you're tied to Windows. But that doesn't mean the CLR is going to stay on one platform... the CLR gives Microsoft enormous freedom between platforms, if they choose to use it.
...which brings us to C#, another big transition point in the windows world. The transition of thousands of code bases from VB6.0 to VB.NET and C# is prolly going to be on the scale of Y2K transition over the next 5 to 10 years. This thing is huge, especially for in-house applications (primarily corporate).
Companies & developers are sitting around realizing they need to move to .NET, and are trying to figure out the pros & cons. It's pretty much going to happen, but they are often having to weigh VB.NET versus C#. It's often not as easy as it sounds, as while the syntax is much the same between VB & VB.NET, that's about it. How you write the applications needs to completely change, or you are screwing yourself. Some people are learning this the hard way, by moving to .NET thinking they'll save time and then realizing they really can't write code in the same way they were.
Long and short of it, the transition isn't going to be painless, and in technology where there's pain there's opportunity. People are sticking their heads up and looking around. More than a year ago I was walking around seeing VB developers carrying C# books around to the coffee shop, not because they were having to use it, but because they believe they're going to and scarily enough... they like it.
But they're not able to use it on OSX, and that's prolly going to have to change, sooner rather than later. Of course, they could always just use Linux...
Yeah, you heard me, Linux. No matter how anti-MS you are, you have to get this through your hard. C# doesn't suck. The .NET frameworks don't suck. You can nitpick on them, or find things here and there, but by and large developers like them. Enough so that not only has the Mono project gone from pariah to greek-cred to momentum in fairly short order. And Mono is basically C# and .NET ported to Linux.
Ayup, geeks like it that much. It's not 100% just yet, but it's getting some big backers, like Novell. It's basically been split into two different stacks, an independent stack for those who want to write Linux apps .NET style and C#, and those who want an easier way for moving their Windows apps to Linux. Ayup, moving their Windows apps to Linux.
In other words, while Mono isn't making it a straight compile for .NET developers on Windows to get their apps over to Linux, you can see where it's heading. Apple needs to move on this yesterday. The value is in the frameworks, not Obj-C.
In all fairness, I'm sure I'm missing some things and there are some obvious problems to what I'm proposing (and possibly already have, I've just not heard good answers) that would need to be worked out by brains larger than mine. Luckily, those are pretty numerous...
So lets go through some of them:
- Loss of hardware sales
You obviously have the danger of say, whipping up the next killer in the Cocoa frameworks and people finding that other platforms just run it faster/better cheaper. Hence, since they don't have to buy a mac to get it, Apple could lose hardware sales.
No real good answer here, but I'll admit I'm the type of person who looks at things like the iBooks with their intentionally crippled video and just gets annoyed. I like competition. Compete, damnit. Hot buttered jesus that irks me.
Here's the thing. One of the fun parts of using an alternative platform is getting to say, "Sorry, you can only do that if you use a...". The worst part is having to say "Sorry, they don't make that for...". I swear to gawd that first one is a granny-smith flavored hit of heroin to the cerebral cortex of your bleed-six-colors mac user, and not something they like to give up lightly. In this case, we might have to give up some of the highs to get rid of some of the lows. Prozac.
- The Carbon conundrum
I mentioned the Carbon layer before... unfortunately that could throw a big wrench in the works. Carbon or Cocoa isn't an all or nothing thing, now, which is also something I mentioned. If you're using Cocoa, specifically, there are lots of things you can't reach without making Carbon calls, and lots of Cocoa calls you do make are actually just wrappers for Carbon calls. This was a good thing at the time, lots of developers were actually worried Carbon was a quick stop-gap and was going to get dropped. But integrating it into everything, it made it obvious that it's here to stay.Carbon is C/C++, and as such fairly portable. I get that, but what about things like the code fragment manager (CFM) that a lot of carbon apps seems to use? As it is now my understanding is that these are direct PPC calls that are translated by OSX as, well, it doesn't generally give apps that kind of access anymore (and pushes towards mach-o). Stuff like the CFM would seem to have to be rewritten if you wanted photoshop/office running on x86, or emulated. Emulation isn't a good word, but in the case of not wanting your stuff to run faster on other processors might be...
I know carbon apps can go to mach-o, and some have done so, but I don't really have a handle on how big of an undertaking it'd be for a large (or small) application. I'll have to look into that. But Carbon may well have made things a lot more difficult than they once were.
- Cost
Apple isn't above recalling an old warhorse from the stable, witness Ink, from the newton days. However most who have played with Ink realize that it hasn't seen much improvement since the newton days either, and this probably wouldn't fly with what we're talking about. The windows platform hasn't stood still, and neither has Linux. There's going to be a lot of work there, even if they just ignore things like DX9.
If Apple went cross-platform again with their libraries, and it was going to be a very large investment, I'd have to think there'd have to be something that could be worked out to bring in some cash, such as giving the full-featured dev tools away for free, and charging $1k+ to any developer wanting to use Xcode Extreme to press a button and have it run on 4 platforms... free academic use, and of course, tiered structures so the mac coders at adobe don't piss themselves as they watch their jobs evaporate.
- ...like butter spread across too much toast
Arguably, Apple is spread very, very thin across the board. You can get a sense of this when you look at how many developers work on various projects, and how many of their developers and industrial designers "hop", IE get one version out of one app/hardware, then move onto another app, then move back. Apple has to wear a lot of different hats w/OSX: keeping gcc in sync with obj-c, improving obj-c, improving ppc gcc's performance, improving the cocoa frameworks while also improving and merging with the cocoa frameworks, improving the kernel & userland... ad infineum.
I don't really have a good answer for this one, and it's probably somewhat related to the cost issue above. Ideally I'd like to think that some of this being spread very thin thing was part of their uber retrenchment strategy, and it's time to climb out of the trenches and make some real waves.
To wrap up...
I may sound convinced, but I'm really not. I'm very much keeping an open mind, but also realize things aren't working as they are. This type of topic is also in the "Mac OSX on X86" or "Free Trade" territory, in that it just seems to scare the hell out of some people and engenders a visceral knee-jerk reaction.
I guess that's fairly normal, as while anyone whose read a pamphlet on economics knows protectionism is bad for the economy & industry as a whole, that's left-brain thinking. And when you're in the thick of it, or it directly affects you, the left brain is generally the first to leave a note on the pillow that its taking a leave of absence.
Speaking of absence, you'll notice I haven't mentioned the perennial favorite of mac heads everywhere to the software conundrum: some form of VirtualPC-ish software that doesn't run the apps in a window, but rather an environment similar to Classic or X11... transparently, just another application in the dock. It wasn't mentioned because I don't think things like that are really the answer. Mac users are a fickle lot, and MHz are still a precious commodity in the Mac world.
Besides, when you are paying as much as you do for a piece of Apple kit, having to make do with sloppy seconds is... distasteful.
--------
Update 2004.05.03:
Please see corrections and clarifications here.
--------
Comments (126)
Posted by: sHurse at April 30, 2004 09:52 PM
Glad you only include a short excerpt in your RSS feed, I think this might have hurt Netnewswire. If there is a contest for longest blog post you probably would win. There are at least thirty discussions in this one post, talk about blowing your load. :D I am surprised you didnt discuss how to create world peace. :D I am going to have to digest this one I feel like you just dumped a months education in my head d.b. you should think about breaking this up as I sure dont know where to start.
To Yipper you if you had a mac you could do your own PDF like I did. :D
Posted by: jwarren at April 30, 2004 10:17 PM
An astounding train wreck of a post. But I admit I can't look away... could only be intentional. Blog as performance art?
Posted by: Evan at May 1, 2004 06:28 AM
"WOA. I KNOW KUNGFU" said Keannu. Same feeling gettin smacked with this in shrook before I've had coffee. I can't believe you said the last line, I had to clean my keyboard from the spray. Its only funny because it rings true.
This ain't a blog post its a treatise for Apple to look at its markets and forget about the iPod for awhile. The FrameMaker comment is a shout out. We have three guys in the back who we were waiting to upgrade to OSX because of FrameMaker. Adobe is telling us to use Indesign as a replacement. Indesign is nice but it is NOT in the same league as FrameMaker for long document creation. Not even close. At least not yet. This still does not make sense, keeping it for windows and SOLARIS but dropping it from the primary publishing platform. SOLARIS!!!!! I bet we have iPhoto and the Finalcut and Motion pissing Adobe off to thank. Personally every app I need EXCEPT for FrameMaker is on the Macintosh. But I can tell you unless InDesign vastly improves in less than one year they will lose 3 hardware upgrades to windows. The world does not revolve around Photoshop! If you do not care about FrameMaker ask what happens when Illustrator is discontinued. Slippery slope!!
Posted by: kyotoC at May 1, 2004 09:40 AM
But I admit I can't look away... could only be intentional. Blog as performance art?
More like the Neal Stephenson of blogging, he's never met a sentence he didn't like. Still a damned good read.
Posted by: crinkles at May 1, 2004 10:49 AM
Cocoa was oversold. That's it. You make a good point about how everyone expected the mac to have a software bonanza and its true most of the apps are very small. So that hasn't come to pass.
What you are missing is that no one is stopping anyone else from making these applications if they want to. Like you said anyone can pick up the apps for free, its not Apples fault if some are too blind to realize the goldmine staring them in the face.
Posted by: No. at May 1, 2004 11:14 AM
So let me make sure I understand. You think Apple giving up OBJ-C and adopting Microsofts Java clone is going to HELP?!?! And then give up their frameworks to other platforms completely negating their competative advantage in making applications?!?!
Apples base is doing fine. You dont see more BIG apps coming to the mac because everything you could want is already here. Who cares about NeoOffice or OpenOffice, we have the real Office. Who cares about Trillian if someone doesnt like iChat they can use Fire.
Posted by: Rui Carmo at May 1, 2004 04:15 PM
Gosh, I wish I'd written this. First off, it's one of the best quasi-historical pieces on Apple's options (or lack thereof) over the past decade or so. It is bound to be largely misinterpreted due to the fact that most people on the Internet today _didn't_ go through this as I did, or don't have the faintest idea of how all of this fits together. Congrats.
Oh, and this is bound to be misinterpreted seven ways from Sunday. But then, I guess you knew that already.
Posted by: Mike Hearn at May 1, 2004 04:35 PM
A few corrections:
- Java is not "emulated", it's JIT compiled in the same way .NET is, and they have comparable performance profiles.
- You don't have to pay KDE to develop proprietary KDE apps, you have to purchase a Qt license from TrollTech. This is also true if you make a KDE/Qt port to Windows.
OK, now for the opinions: Cocoa is the most overhyped thing I've seen for a long time. Worse than even .NET. I've looked at Cocoa and I didn't see a great developer environment. Objective-C is a strange language, the NextStep frameworks might have been great last decade but these days people expect garbage collectors, not auto-release pools. The NS* APIs seem heavily over-engineered, witness the amount of code necessary to setup a socket. They are totally not portable, unlike the Linux APIs are.
Basically, I think Apple are going to get their lunch eaten by Linux in the next few years, as it's rapidly catching up in the ease of use department with MacOS - hard to believe I know, but basically true.
Posted by: neil at May 1, 2004 04:40 PM
Nice, and a really useful reference piece/history lesson for switchers like me. I have to agree, Be OS was a super cool C++ development platform, but fundamentally kneecapped.
I love Cocoa but but I'm at my wits end trying to figure out if there's a market for my developer-oriented stuff on it. I actually started writing a letter, out of sheer desperation, to Steve Jobs the other day to ask if it was worth developing for Apple. Then I remembered the PFOs I'd had from Apple's PR weasels and figured it just wasn't worth the effort.
I love my PowerBook; if you want it you'll have to prise it out of my cold, dead hands. But your post has made me realise what I think I knew all along. It's time to go back to a six-figure salary, time to go where I'm wanted, time to go back to developing for Windows.
Posted by: Jeremy at May 1, 2004 04:48 PM
I think that framemaker is really on its ay to dying, but Adobe is acting like a big baby about FCP and Motion and has decided to discontinue that Mac app far in advance of the Windows app just to try to hurt Apple.
tell Adobe that if they could made a damn app that did not suck (premiere only running in classic, what did they expect to happen?)
personally, I think all the frammaker babies need to toughen up and get back to good ol' laTex. free yourself from the dependance on a company.
Posted by: Mediocre Programmer at best at May 1, 2004 04:57 PM
Excellent article! I just wanted to comment on Java - I'm not a fan of Java for desktop GUI apps. The performance is so variable that I don't think one can say (as many Java fans do) that it's fast enough on modern hardware. To create a cross-platform app with minimal changes means having to create a lowest common-denominator app. Does Apple want that? More importantly, do end-users want that? While developers see the benefit of reducing cross-platform code, are they not invariably creating a poor "user experience" by limiting themselves to only cross-platform features? I can understand why Apple is trying to encourage Java development on the Mac - they obviously want more applications, but I really don't think Java is the right language/platform for GUI development.
By the way, using Java seems to imply a tacit acknowledgement that the differences between OSes are minimal. Isn't that what someone at Sun once said - Java makes the underlying OS irrelevant? Are the differences between different Operating Systems really cosmetic? I'm sure neither Apple or Microsoft would like you to believe that.
Posted by: Jacon at May 1, 2004 05:18 PM
Good Article, but I think you severely missunderstand what exactly KDE is.
KDE, like GNOME, is free as in beer and speech. Like GNOME, you can download and hack the source and do whatever the hell you want as long as you follow the GNU license.
With KDE, like GNOME, if you want to make software based on it and charge for it, you can. The only difference is if you want to make closed source software (whether you charge for it or not is irrelevent under the GNU GPL license).. in that case you need to pay TrollTech for a commercial Qt license.
People porting KDE to OSX _is_ altruistic. It's done by a bunch of Linux users who converted to OSX and missed KDE apps. There are no hidden motives, whatsoever. KDE isn't some commercial company trying to win the battle of the desktops.. it's just open source paltruistic. roject with mainly a bunch of part time free software hackers making software for fun.
Neither KDE nor GNOME is likely to become the dominant UNIX desktop. What _is_ likely to happen is that the KDE and GNOME seperate platforms start to become minimized such that only one platform exists that both are compatabible with. Both projects are active in Freedesktop.org that works to acheive this.
So yeah, in the end I think you're severely misunderstanding projects like KDE.
Posted by: Mark Davidson at May 1, 2004 05:40 PM
Wow... I just spent the last 45 minutes here, drinking my morning/afternoon coffee and reading this post. It made me do a lot of thinking.
I'm one of those people who bought a G4 Powerbook (most expensive computer I've ever bought) because of the combo of a Unix base and Java support (I'm a Java developer by trade), and you are right... without the all-encompassing support for Java, I wouldn't have bought this box.
I also would technically agree with you about the relationship developers have with Apple. I've used Macs on and off for years, and having developed at least one commercial "classic" Mac App, I am quite aware at how hard it used to be.
Frankly, I'm frustrated that Apple doesn't push/promote the Java/Cocoa bridge more than it does. I've read through a lot of the Apple docs on Cocoa development and I'd love to use more of the J/C bridge, but it seems like finding the info you need is an exercise in frustration. I'd love to know of pointers to books/web sites that discuss this more. Funny thing is... I use fink/open-source apps and Java almost 100% of the time... I just can't seem to sidetrack myself into pure Obj-C.
Anywyays, great post!
Posted by: Jason T. at May 1, 2004 05:42 PM
You're pretty right on the money with your commentary on Apple, but your comments about Linux clearly show how out of your element you are. Qt by trolltech is what costs money, not KDE. KDE is built on the GPL'ed version of Qt. The gist of what you said is true though. However, neither trolltech or the KDE team are working hard to port their frameworks to MacOS X. There is one guy http://ranger.befunk.com/blog/ working on porting KDE to the newly GPL'ed Qt/Mac. He might have a little help now, but for the most part has been all him. KDE has no chance of building free apps for Windows unless trolltech decided to release Qt/Win under a dual license, as they have for Mac and X11 (Linux). I'm pretty sure Windows is not even on their radar. KDE is focused fully on building the best desktop environment for Linux, and they've done an amazing job. I recently made the switch from MacOS X to KDE on Linux and I never looked back. Gentoo Linux on this Athlon64 is a dream. I wouldn't recommend it for my mom yet, but for a developer like me, its wonderful. I used to be a very active Mac developer, but I got tired of depending on Apple and getting let down. The hardware is too expensive, mostly out of date which generally means slower, the developer tools (gcc/gdb) are out of date and buggy versions, and targeting the Mac with cross-platform code is always a huge work around: dlcompat, missing wchar functions/std::wstring, missing poll, the need to write custom GUI code to make anything look decent. I think Apple would be very smart to re-release the OpenStep framework for Windows/Linux. Its a great framework, and I think many Linux developers are interested in good cross-platform frameworks and would gladdly learn Obj-C/OpenStep/Cocoa.
Posted by: Samir M. Nassar at May 1, 2004 05:46 PM
Since Qt is GPL for X11 you can in fact post that Qt version to Windows should you want to. In fact, there is such a project but it hasn't gone anywhere really. Yet it is possible, legally and otherwise.
KDE is a volunteer organization. YOu do not pay 'KDE' anything for using KDE, commercially or otherwise.
Posted by: ralf at May 1, 2004 11:13 PM
Regarding MS and .Net, you said "They haven't included Java syntax yet...". Wrong, there's J# for this, in the hope it will streal some J2EE developers to .Net:
http://msdn.microsoft.com/vjsharp/
I have to agree with the prior comment that Cocoa is overhyped. The API is a mess (NSString with path manipulation, hello?!) and feels like a rather outdated OO framework with history (compare to .Net and JFC).
Posted by: Randall Helzerman at May 2, 2004 02:41 AM
I tried to get into the whole Cocoa thang, I really did.
Its beautiful, but it is beautiful in the way that a
victorian-era adding machine is beautiful--the brasswork
is excellently wrought and polished, and the gears are
decorated with flowers and sunburst patterns.....but
lets face it, it is hopelessly outdated. Case in point--memory
managment : neither garbage collected nor ungarbage collected.
The framework is wonderful--back in 1985, it was way ahead.
But can Apple's big strategy for the future be getting us all
to use 80's technology?
Posted by: OTTO at May 2, 2004 02:45 AM
One thing to keep in mind about "Portable Cocoa" is that Jobs already fought that long, hard fight and basically lost. C++ beat Obj-C, MFC etc beat OpenStep. It has the downside of pissing off Microsoft, allowing Mac devs to port off OS X and very little upsides. Like it or no, Objective-C is not the language of the future.
If I were Jobs, I would beg/borrow/steal a NET implementation that runs native on the Macintosh, with full WinForm and Cocoa support (at the same level as Java). Apple can not afford the type of Developer War they had with Next, and they do need to keep the Mac tools at the same level as the competition.
Posted by: Chad Hardin at May 2, 2004 02:59 AM
Very nice read, it really made me think. However, why no mention of GNUstep? Progress on it is slow but many feel it has more potential than KDE or GNOME (which were mentioned).
Posted by: Joshua at May 2, 2004 03:06 AM
I found your article very, very intuitive and interesting, even despite your jeuvenille writing style, use of words that don't even exist in the English language and relentless acknowledgement of machines and code as sexual objects. I quit reading about a quarter of the way through, however, where your jeuvenille writing style and attitude climaxed with an absurd throw-away line about Jesus. How tasteless and irespective.
Posted by: Butt-head at May 2, 2004 03:19 AM
Huh huh huh, he said 'climaxed'.
Posted by: urddd at May 2, 2004 04:22 AM
I'm a (java) developer having a mac and a windows PC.
I'm gonna write a new (commercial) app in a few months and I'm wondering in which platform/language I should write it.
So lately I'm been reading many blogs about .Net, Mono.
As a java developer I've never coded gui apps (only server side apps) and I'm wondering if Java is the right tool for the job. I know it _can_ be done but I care more about the end result: it has to be a fast and responsive gui.
As I have a Mac and a windows PC I'd like to use my app on both platform but then the only option I'd be left with is java. More ofen than not java gui are not very well done (doesn't feel like a native app).
Then there is C# and the .Net framework. Nonoby is saying that either sucks. I can only find positive review. And it will get better thay say (with the inteeegration with Avalon in the new OS from M$). But today Avalon is a work in progress so some of the goodness of .net will be realized only if Microsoft delivers (in +2 years?).
Reading you excellent post (and other) I realize that it would not be wise for me to write an app for OSX. I should wirite an app in .Net because this is very the people and the money is.
Of course it would be nice to write an app for .net and be aable to run it on w2k or OSX, but I don't thing that will ever work at 100% because M$ will lock developers in some way or another into .Net/Avalon.
I don't know what will be the future of OSX but I agree with you that with fewer developers for its platform, Apple will face harder times.
As I see it there is 2 options here. Java and .Net.
Java is very strong in the server-side and does not seem to be interesed into winning the desktop anymore.
On the other hand, .Net seems to be headed to the desktop (and wish to get to the server-side too but it might not get there as Java is alrady well established and working very well).
Just my 2 cents.
Posted by: Patamunzo Lingananda at May 2, 2004 04:23 AM
Holy crap... That's an impressive amount of verbal diarrhea.
Good presentation, mildly amusing, but points off for being grossly misinformed and too fucking long.
Posted by: evariste at May 2, 2004 04:29 AM
Ignoring a few cosmetic errors like conflating Trolltech with KDE, I think this was quite the well-thought-out overview of Apple's strategic landscape, and the path they must take to greater mindshare.
Posted by: PantherMachina at May 2, 2004 04:58 AM
This was an interesting articles and humorous too. However I completely disagree with some point the author made in particular the importance of Mocha, it is a cool technology, yes, but should not be used as the basis of any port of well anything.
As to those with criticisms of Cocoa:
I will admit somethings ar a tad baroque in their design like the sockets implementation, but guess what, Obj-C's power was never merely it alone but also the fact that all C was valid in it being a superset of the language. If you don't like NSSocketPort, write your own wrapper or use the RAW BSD Sockets yourself.
As to overdesign, NSString represents a string and like it or not, paths are merely strings, woulf you like a NSPath object to be a glorified Object that is merely a string with the methods one would find useful for them? Considering the fact that Obj-C supports categories, you don't even need another class and could have them all as a category, but nonetheless they are still strings. Using non member functions hides them as you then have to look up those functions. Most functionality in Cocoa is gotten from the classes themselves, why hide something so fundamental?
My last comment is in response to:
"One thing to keep in mind about "Portable Cocoa" is that Jobs already fought that long, hard fight and basically lost. C++ beat Obj-C, MFC etc beat OpenStep. It has the downside of pissing off Microsoft, allowing Mac devs to port off OS X and very little upsides. Like it or no, Objective-C is not the language of the future."
Yes, you have pointed out that superior technologies lost out to completely inferior ones, not because they lacked technical merit, but rather that people were used to them. People still shy away from Obj-C because the syntax is different from C and C++ and now Java, if those same people took the time to read the capabilites of the langauge rather than getting spooked by it's appearance there would be no argument. Devs would wholeheartedly pick up Obj-C. That is the entire reason why C# and .Net are so attractive because what Windows Developers were using before was just so damn poor in comaprison, that such an elegant language and API speaks to them.
Oh, one more thing. Garbage collection is not the end all and be all of memory management, matter of factly it is the single worst thing bough forth into programming since C++. It teaches programmers horrible habits that make those same developers that most likely already had trouble with memory management that much poorer at it. Especially when you consider that even with garbage collection, it is still possible to leak memory in Java very easily if your careful, I have seen many people do it firsthand and is the part of my disdain for it.
Posted by: Judah at May 2, 2004 05:00 AM
Couple points:
There is a Java language on .NET, C#. It supports Java 1.3 calls, minus a few sun.* libs.
Also, Mono isn't just about running .NET applications on Linux. In addition to Red Hat, Debian, etc, Mono also runs apps on Windows and Power PC.
Another note: Microsoft's shared source version of the .NET framework (non-commercial or academic version), dubbed Rotor, runs on PPC and BSD out of the box. See http://msdn.microsoft.com/msdnmag/issues/02/07/SharedSourceCLI/
Posted by: mark at May 2, 2004 05:42 AM
ha - I've just gone from knowing nothing about mac development to being able to have opinions about it in one fell swoop. Good stuff.
Its interesting that as a developer (since '88) Mac's have never appeared on my radar screens. For the last few years I've been fairly cross platform using server side technologies (J2EE, Web, Python, bits of .Net etc) and Mac's just don't figure.
I feel that the OS is actually going to get less important for a lot of people - frameworks ARE where its at. The ones that cross platforms and hardware are going to win. Longhorn is a red herring - sure there will be soem nice GUI stuff but the big thing is XAML/XUL type stuff which will end up being the user interfaces material of a lot of user apps. Sure the wordprocessors/Graphics/Music progs will all stay native but for 99% of developers this isn't what we make.
Posted by: Scott at May 2, 2004 05:52 AM
I would love to write Obj-C / Cocoa applications for my Windows clients who won't or can't switch to due business apps that don't run on OS X, etc. It's a very elegant language and framework.
I've heard rumors that a future version of iTunes for Windows will contain a significant amount of shared Cocoa code. Could this mean that official support for Windows could be in the works?
Posted by: Arno Nym at May 2, 2004 07:03 AM
Java Weenie!
Posted by: adam at May 2, 2004 07:06 AM
congrats on a great post...
i jumped on the mac bandwagon when they released the new iBooks and iMacs back in 01-02 (i bought both) and i have been realy happy with every aspect of my mac. 10.1 didn't have connectivity with pc networks but a few months later 10.2 fixed that and gave me great developer tools. MS's VB.net costs over 450$ for the acedemic version, while project builder delivers the same for mac only for no cost. Mac has all the compatability with windows and doesn't crash when opening a browser, i couldnt be happier with my macs and with OSX but the points you brough up are troubling. thx
Posted by: Girelly at May 2, 2004 07:50 AM
It is nice to hit a site with real content that doesnt have google ads or banners or amazon links everywhere. Will admit your writing is hard to follow and intense, but its nice not to just be spoonfed. I like how you expect the reader to fill in the blanks. And damn I laughed you know this poor guy is going to get letters. I shudder at the power he could weild with an editor.
I also like your chicken and egg, the idea of developers need users and if Apple cant offer them users on the mac... then Apple should offer them all the users on all the platforms! You did good leading me there I'm sold.
But you blew it on KDE. You can still charge whatever you want the distinction has to do with whether you keep the source closed or open. Maybe seems the same to some but you should know better. I hope it was just semantics and you will correct.
Hope you keep it up. Came from /.
Posted by: Tom at May 2, 2004 09:22 AM
So to shepherd developers over to an operating system, what do you need?
a) No new “this is how we do it here” languages, paradigms, or what-nits - use the skill that is out there. I tutor two classes of first-year university students in C. Bamola- There's 40 more developers than know C in the world now.
b) To make the developer-person feel at home. Not too many new words or ideas. Soothing colours. Buttons that do the expected.
c) For the system to be better than the existing system. Better interface, being free, or both.
d) The system to be out there. (large enough user base)
Got those, and you've got a disruptive Operating System.
Hey, imagine an open-source OS that had 20-year-olds developing quality applications and games, was genuinely similar looking and feeling to windows, was easy to port to from todays systems (.NET CLR and win32 etc), and was free. Thar goes the Microsoft tax. Yes, it is too bad the effort required is beyond considerable.
What other points (above) do you need to herd you guys over?
I would be interested in seeing what the most common useful base skill set is for windows developers. C? MSVC++ IDE? MFC? WIN32? .NET? C++?
Posted by: Sten-Erik Björling at May 2, 2004 09:41 AM
Regarding tools for deployment on different platforms...
Have you looked at Omnis Studio?
www.omnis.net
Stene
Posted by: Pedro Vera at May 2, 2004 10:06 AM
Thanks for a great article.
I am a rare animal: I write classic ASP 3.0/SQL Server 2000 apps from OS X 10.3 (on a 15" AL Powerbook). The two main reasons I do this from a mac:
1. Since all my work involves a text editor, a terminal server window and a browser, it does not make sense to have to deal with XP Pro's constant crashes and security issues.
2. Since my company is tiny and the IT environment is very mixed, having this Powerbook allows me to carry around four operating systems into a compact enclosure without having to worry about rebooting to switch OS: OS X 10.3, OS 9.2, Unix and Windows 2000. I used to count Windows from VPC 6 but now I rely more on the terminal server sessions.
#1 is a huge improvement in my quality of work because I write everything from scratch, and BBEdit Pro is an amazing tool. I use Aqua Data Studio to manage our SQL Servers, so I only really use terminal server to manage IIS.
#2 is awesome because it gives me amazing flexibility. If I need to use a free tool, odds are it will run in any of the OS's I have available in my Powerbook without having to reboot.
The basic problem I am having now is that if I want to write ASP.net I am stuck writing from scratch, since VS.net runs like crap on VPC, and Macromedia Dreamweaver MX '04 is a bloated piece of crap. Your article is reinforcing the idea that maybe it is time I switch to Java.
Posted by: gerd at May 2, 2004 10:26 AM
/*KDE isn't free, unless you use it for free things. You can essentially develop for KDE for free, as long as your app is for free. If you want to charge for your app, you have to pay KDE.*/
That's completely wrong. Or the latest of anti-KDE FUD attempts.
Posted by: Simon at May 2, 2004 10:49 AM
One item that might you might want to explore is swt, used for the Eclipse IDE; a Java library that makes native calls to the OS so things look (more or less) "correct" on each platform. IMHO, it's exactly where Apple should be, albeit with some head-scratching from their marketing department on how to make it pay it's way. Perhaps the Trolltech/Qt model is the way for them to go?!
Posted by: Peter da Silva at May 2, 2004 10:56 AM
You're pointin in too many directions, and none of them are terribly useful for Apple. You have Java, you have .NET and C#, you have KDE, Apple can follow these, but where's the win?
The thing is, there's a third desktop on Linux that's got potential. It's not doing very well right now, because it's not as cool as KDE and Gnome, but it should be very interesting to Apple. And that's GNUstep.
Apple could throw a little of the old NeXT code they're not using any more, like the NeXT file manager, over the Open Source wall into GNUstep land... and all of a sudden the third Linux desktop will be OS X junior, *and* a viable framework for people to develop for Linux and Windows for on their Powerbooks... without the bad press of Java...
Posted by: Jack Oatmon at May 2, 2004 11:29 AM
Interesting read. Dovetails nicely with some of the things I have observed relating to Apple's relations with developers. In some ways. Others, not so much. While I have seen Apple bend over backwards for certain types of developers, it seems to me that their attitude is that they will help someone if that someone is willing to play exactly by their rules. And they do have rules. When Apple decided to go "Open Source" (but not free) I was excited. Cool. Now I can look at the guts of those knarly kernel routines -- heck, I can even sub-class them, replace them. BUT. If I want that code to become part of the kernel, say, to support a new type of hardware, fugedaboutit. If that hardware doesn't happen to fit into a pre-defined 'model', you're screwed. You have to tell your users, "sorry, but you'll have to install this kext before you can use this device". Just the kind of thing that I thought Apple was trying to avoid. Silly me. Meanwhile, over in Linux land, the changes were made, the right people found and contacted, the changes trimed and streamlined, and wallah: The Linux kernel now supports this new device. Natively. The only OS to do so Today. (Windows has a special driver too, but it appears that Microsoft will add that support at least by Longhorn, if not in a service pack.)
Apple has had many opportunities to 'make the right choice'. Once in a while they do, but they have more often than not, shoot themselves in the foot.
Posted by: neil at May 2, 2004 11:43 AM
Hey Joshua,
That's 'juvenile' without a spare 'e',
And 'irrespective' with two r's,
And irrespective ... of what?
But I think the word you were really searching for was 'disrespectful'.
Let he who is without sin cast the first stone, eh?
Posted by: Mark at May 2, 2004 11:52 AM
I didn't see much of a business case for Apple in that extremely long diatribe (requiring an extremely long response). Apple makes money from hardware which means until it decides it no longer wants to do that, the software is written to support the hardware.
iTunes on Windows exists to push iPods. A Cocoa framework is not going to sell a significant amount of Apple hardware (especially compared to what might be lost) -- a seriously bad business deal if your A BUSINESS (note: Apple IS A BUSINESS).
A lot of errors in the text .. but that's common for folks talking about Apple and what they did and should do.
Cocoa (Obj-C + frameworks) was over-hyped in the sense that folks thought all the power of Cocoa would come for free. It doesn't. There is a real ramp up time to learning the frameworks and understanding the language (although the language isn't AS BIG a hurdle as the frameworks). It took me 6 months before I really felt comfortable developing in Cocoa.
Once you get past the hurdles, you can truly be much more productive (I don't know if I buy the 5x claim, but it is significant).
And commenting on the Linux Desktop post (Linux catching up quickly in ease of use) -- I have a friend who is pretty hard core. He tried to use the latest Linux desktop environment (I think it was SUSe) and pretty much said it'll be years before it even gets close to Windows or Mac usability. And you're assuming that Apple won't improve their ease of use during that time.
After all is said and done, it turns out the blog was just another call to port OS X to x86 (although one might have been mislead by the claim that a port to x86 is not what the article was about).
If you want to offer Apple solutions -- it has to be hardware solutions. For example, Apple should take a low cost G3 chip (no longer used in any existing machines) and develop a SlimMac. They could bring the price point down to $499 and still make a nice profit. The processor could 900Mhz G3, 256MB, 40G hd, OS X. This proposal, at least, stays within the bounds that Apple makes hardware and uses that base to determine a plan.
Posted by: Aaron London at May 2, 2004 12:06 PM
Glaring omission of the SSCLI. http://www.microsoft.com/downloads/details.aspx?FamilyId=3A1C93FA-7462-47D0-8E56-8DD34C6292F0&displaylang=en#filelist.
Posted by: Eric in Seattle at May 2, 2004 12:36 PM
This post is worth reading for a lot of reasons, but especially for the OS 9-Elizabeth Taylor metaphor. Classic! (so to speak)
Eric in Seattle
Posted by: Borschski at May 2, 2004 12:43 PM
Fabulous post...and nice injection of some wit (makes a long post palatable to read).
Every single thing you wrote about is focused on one thing: incentives (or the lack thereof).
There isn't an incentive for companies (and their developers) to make a monetary, energy or effort investment in developing for Mac OS X. But there is a HUGE incentive to invest all of that in a methodology that would have an accelerator or multiplier effect. Some of the things you suggest could provide those effects...if positioned and delivered properly.
I'm a reasonably technical user and have WinXP, Linux (SuSE) and Mac OS X on personal boxes. At the end of the day, my incentives are to use a platform(s) that give me, my family and my wife's small business the widest variety of options to achieve our goals and objectives with computing -- and at the lowest total cost of ownership.
I personally love Mac OS X. It's elegant. It's solid. As my wife says, "it's pretty and is just simply pleasant to use". But when I wear a parent hat as a volunteer on our school district technology committee -- and see how the district pays nearly $200 per year per teacher that only does email, web browsing and minimal Office use -- I see the enormous incentives that exist with migrating to Linux.
Linux adoption is going to continue to accelerate. Apple has a chance to align incentives and provide disruptive accelerators and multipliers to the development community to ensure that Apple is the one that leads and is the recipient of the monetary, energy and effort investments.
Posted by: James at May 2, 2004 01:22 PM
Decent article, but when it comes to credibility, you really aren't doing yourself any favours by using idiotic words like "prolly".
Posted by: Lucas at May 2, 2004 02:53 PM
I have an ibook G4 and a desktop windows/freebsd based pc. Cocoa and .NET are completely different technologies. .NET is not java like many people equate it to. .NET is faster and Microsoft wants developers to switch to .NET development much like apple tried to push Cocoa.
From a development perspective, I decided to use .NET for commercial development because it is easier to use, quicker to work with, and quite frankly I started on VB. I've played with Cocoa and Carbon in OSX and I dont' feel like Apple wants me to write apps for the Mac. If my app is good, Apple will duplicate it and put me out of business.
As for GNU/Linux, its not the end all on the desktop. Linux will never be superior to *BSD or System V UNIXes. Linux is simply a kernel. Debian has even experimented with other kernels inlcuidng the GNU/Mach replacement for linux. Even the GNU thinks the Linux kernel sucks.. thats why Mach TRIES to copy the Mac OS X kernel which in turn copied the real Mach kernel with NetBSD and FreeBSD features. People mistakenly equate Linux to a GUI deskotp system. its not. Linux + GNU TOOLS + KDE (OR GNOME) is a desktop system. FreeBSD can run KDE (or GNOME) as well. Microsoft and Apple will continue to advance in their proprietary models. Then we have Sun. Sun is trying to sell Linux + Gnome + Java as the Java Desktop System. Linux people should support their *friends* at sun if they want commercial linux. I don't think they do.
In the end, we are left with a linux community divided, a Macintosh community confused, and a joke called Longhorn from the Microsoft camp. Everyone loses. Personally, I'll continue to use my laptop for everyday tasks running Panther and my NT kernel bases software running .NET for work.
I wish Apple would license/port .NET to OSX and OSX server. I could buy xserve machines and stop patching windows every week.
One last note. Project Mono is not a cross platform C# framework. It only works correctly on linux. Try running a ASP.NET website on FreeBSD using mono! Good luck with that!
Posted by: Randi Joseph at May 2, 2004 02:56 PM
This is the longest idiotic post ive ever read... He was not aware of GNUStep which works on multiple platforms INCLUDING LINUX, FreeBSD, and has been around for years, well before java had a base or .NET existed.
This is to be expected, since most developers dont know whats out there anyway... very very annoying....
Posted by: Marco at May 2, 2004 02:57 PM
Correction again:
Java can be JITted since Java 1.2, but it wasn't designed to do so. (and it is a bit duct taped on)
.NET does it more bottom up, and elegant.
I don't know _if_ this matters a great deal perforamncewise, but architectural on the bytecode level, there is a great difference.
Under Java, everything is typed and conversions are inserted, while under .NET typing is only added when something else would be ambigious, and typing and covnersions areinfered while jitting
Posted by: eco2geek at May 2, 2004 03:05 PM
Thanks for a facinating piece, part market analysis, part commentary, part historical overview. You've got a new fan.
Joshua: If you're going to run this man's blog through your own morality test, you're just going to miss out on the meat of what he's saying. Whatever. :-)
Pedro Vera: I'm no big fan of Microsoft the company (using Linux to write this), but saying that you "have to deal with XP Pro's constant crashes" when you're only running "a text editor, a terminal server window and a browser" is just bullshit. (Now, Windows' security issues are very real, but you can prevent most of them by installing and using a firewall.) It's really annoying to read stuff like that from Mac zealots.
Posted by: drunkenbatman at May 2, 2004 03:12 PM
Short on time, but it's worth noting this because I've gotten so much mail about it (my inbox is hammered on this issue, so if you feel a need to show me where I'm wrong, i'm well aware). I understand the GPL, and I used a poor choice of words when it came to KDE/Gnome in an effort to try to give an idea of how KDE and Gnome appear to developers/companies without going in depth into their history. My statement about KDE only being free for free things was false, but was trying to give an impression re: how the Qt & GTK licenses affect developers in a few minutes of typing or less. I did a poor job of it.
It's good to remember that this is just my blog, and this post is just something I whipped up from prior writings because I felt guilt over not posting much since the G5 squandered thing. It's not an excuse, just an explanation. :) Hopefully it's obvious that this post was never meant to be read by this many people, so try to cut me some slack and take whatever of value you can from it. But it's cool people seem to have found some value in it, or at least been entertained.
I'm not going to modify my original post as that would be kinda the easy way out, and if I said it I should live with it. But my next post will be a bit of a redux of Rhapsody in Yellow, re: much of what people are saying & go over the Gnome/GTK and KDE/Qt/Trolltech stuff and other points being made. There seems to have been some misinterpretation as to what I was really saying, especially regarding C# and the like, which I'll chock up to my fault. You all just happened to wander into one of my brain dumps. Sorry about that.
Peace,
db
Posted by: Michael Brian Bentley at May 2, 2004 03:23 PM
It's a blog, the author is allowed typos and wonky grammar. Since the article hit /. he may want to have someone copy edit the text to clean it up, shorten the piece, put in stronger section titles.
Apple tried to play the porting card since the mid 80's as a keystone strategy. Microsoft supported that with Win dev tools that did Mac builds. The Mac-Win cross-platform card itself didn't get played by many as a commercial product, it was largely a card played as an internal project that was never released to the public. Commercial cross-platform libs that did exist weren't very good, largely because the C++ language morphed quickly for over a decade, causing the libs to morph and making it difficult for a small shop to support multiple platforms over time. If you wanted to see wide spread xplat development, use a stable language. (If you don't, well, you might try to use a changing language...hmmmm...)
Lacking decent cross-platform tech, historically, software would either start on Mac and migrate to Win out of economic necessity. The ones that start on Win rarely made it to Mac, and when one did it would often not be a complete version.
Jobs decided for Apple during the Rhapsody era that supporting Win development with Cocoa would result in a lot of Win-only applications. They could be built on Mac by pressing a button, but they wouldn't be released for Mac because of technical support, marketing and sales considerations. That bugged him. So no Yellow Box.
Jobs decided that he can't sell a platform primarily with me-too releases, he needs applications that are obviously superior to any Win equivalents, backed overtly by Apple marketing and technical support. This decision is based on almost twenty years of direct, personal experience. It doesn't take much to conclude that Apple is doing everything in its power to develop superior developer technologies for OS X.
Jobs is currently growing a selection of stable product that fits that bill. Apple is part of the Unix pantheon now. It does use, and it supports, software of the Unix pantheon, and lots of Unix pantheon users and developers have bought PowerBooks. it's a very good fit. This new element does not yet support the average Mac Classic user, quite a number of which aren't yet running Mac OS X. They should, but they don't.
Apple is not an exceptionally big company; all available hands were on OS X development, working hard to allow Carbon migration, bringing WO into the Java fold, developing OS X itself. Dev tools were part of the picture, but a lot had to be done. I think that dev tools are now a subject of greater attention for Apple.
As a cross-platform developer, I can't use limited-availability languages. If I were developing Apple-only applications, I'd use the best tools on the platform.
There are a couple tactics that Apple has not executed (that I think it should), but arguably work against the Superior Invented Here, Don't Support Win development strategy.
For my money, I don't bet against this strategy, and factor in Apple's tactics in my technical recommendations and in my own development work.
Apple's current strategy makes Apple's current tactics easy to anticipate. Apple isn't doing cross-platform tools. Someone else might want to do that. Apple needs software it can provide to the majority of its existing customers. The Unix, BSD and Linux community is a place Apple looks for new customers.
Posted by: Wishful at May 2, 2004 03:49 PM
Now if only Apple would port and release a shrinkwraped version of their OS X window environment for Linux.
Imagine what a boost to the rolluot of Linux as a desktop solution that would be, as well as giving Apple a new source of revenue. :)
Posted by: Redrain at May 2, 2004 03:58 PM
Java = Interpreter?? Argh! Are there still VMs around for desktop/laptop class machines that don't precompile like the IBM VM or compile on the fly like Sun's HotSpot? I'd like to see a real code-based performance comparison between Java and .Net.
Posted by: TommyBoy at May 2, 2004 04:58 PM
People are nitpicking but to just tell you db, I spent an entire hour reading and rereading this with my coffee this morning. Then came back again this afternoon to save it when I realized you were probably going to go down under the slashdot effect. Glad it's stayed fast.
Its not perfect but there is a lot of great stuff here. I would love to see "Rhapsody in Yellow version 2.0".
The GNUStep stuff is coming up on slash a lot and here. Going through some of his blog I'm sure he knows about it so I would wonder why it was not touched upon. Perhaps space? It is already huge.
Posted by: Tim at May 2, 2004 05:27 PM
Framemaker was indeed a poorly-chosen example. Until I see Adobe spend the kind of money updating FrameMaker for Windows or Solaris that it would have taken to port it from OS 9 to OS X, I'm forced to conclude that those who say FM is on the way out for all platforms are correct. EOLing it early on the Mac is just more posturing by Adobe, who continually overestimate their importance to the Mac platform while understating its importance to them (still about a quarter of Adobe's revenue, despite the increase in Win-only apps). I say bring on the Photoshop killer.
Posted by: mark at May 2, 2004 05:45 PM
You cant be all things to all people. I think this post was awesome. You've got flare, db. Have to give you that. The problem here is how your article is being presented to people who come to read it. That shows in how many are talking about how you say things instead of what you are saying.
There are also too many talking points for good feedback. I see how you are painting a broad picture and not going into detail on any one thing. But I would love for someone who is in the know to answer the "Carbon Conundrum" part but it wont happen because its not its own post. Most are just talking about the GPL.
I still give it 8 out of 10 stars. Would be 9 out of 10 if it wasnt in blog format and had some better titling and chaptering. Would give it 10 out of 10 if it used language and jokes I could show to anyone who might be interested in this sort of thing.
Posted by: Greg at May 2, 2004 05:57 PM
Tim said: Framemaker was indeed a poorly-chosen example. Until I see Adobe spend the kind of money updating FrameMaker for Windows or Solaris that it would have taken to port it from OS 9 to OS X, I'm forced to conclude that those who say FM is on the way out for all platforms are correct.
-----------------
Do you think that is part of what he was saying? That if Apple had this offering it could make financial sense for Adobe to write frame maker for OSX because they would have a linux solaris and windows version?
Posted by: Bhavesh Patel at May 2, 2004 05:58 PM
I thought this article was great. It was very compelling and interesting.
I also want to say that I thought your style was great. I really can't believe people are going to sit here and critique you for your style rather than the content. After all, this is a *blog* that is being read for free.
In fact, I thought your references and similes to things that one wouldn't naturally think about was awesome. Nice job on linking to the online dictionaries, and for taking a serious look at something in a light-hearted, but opinionated, way.
Bhavesh
Posted by: Tim at May 2, 2004 06:49 PM
Greg: I understand your point, but again FM is a bad example for the case because (a) it already exists for Windows (and Solaris) and (b) unless Adobe undergoes a dramatic shift in direction, it's not coming soon to Linux.
Apple walks a tightrope on cross platform issues by necessity. As a minor player they must conform to standards (whether formal or de facto) for interoperability, in areas like file formats, communications protocols, etc. But application development is a different matter. As Sun/Java/Netscape have all learned the hard way, achieving platform agnosticism by making the client platform irrelevant won't win you many friends among vendors of proprietary operating systems -- be they Microsoft or Apple.
Virtual PC is another anomaly that's often overlooked for the wrong reasons. Mac fans were worried when MS bought Connectix that Virtual PC for Mac would be allowed to languish. Ironically they should really worry about the opposite. If Virtual PC were to get speedy "enough" on G5s (or G6s, etc), what possible incentive would developers have to release Mac versions of even popular titles?
Posted by: The Walrus at May 2, 2004 07:28 PM
I know that I would love to see OS X on x86. I would definely pirate that for dual boot as soon as it became available.
Posted by: Pedro Vera at May 2, 2004 07:31 PM
eco2geek, I am as far from being a mac zealot as I can be. I am proud to refer to myself as a "card-carrying, MS dot whore." If I was a mac zealot I would not be running all of my company sites on Windows 2000 Server, IIS and SQL Server 2000.
The constant crashes with XP Pro were a reality in my case. Every x86 computer I have owned since 1994, both retail boxes and home builts, have been a constant source of grief. The only exceptions are the Dell servers I have used in my last and current jobs, which have been pretty much bullet proof.
On the other hand, I am one month into my third mac, a 15" Aluminium Powerbook. The second mac was a 15" Titanium Powerbook which is now my wife's computer. The first one was an iBook 600 that was absolutely awesome, that one perished in an accident. At the office I have all 15 employees of the company working from LCD iMacs and Graphite Powermac G4s, and everybody is pretty happy. Except for a couple stray Windows PCs that only our temps use, Windows is used here exclusively as a server OS.
Posted by: Kanwar at May 2, 2004 07:36 PM
Hi:
You're wayyyyy off the mark when you say one has to pay for KDE etc. Probably this FUD is emanated silently by GNOME followers who know GNOME lags behind KDE -- at least in the development cycle and maturity. But an independent view such as yours should take some time to read everything about KDE and then make such generalities.
It actually seems from your article that it is a deliberate attempt to undermine the power of the integerated desktop and applications ensemble that KDE has become. Or is it that because its roots are german that everyone is so critical of KDE? just kidding, actually.
Posted by: Avon B7 at May 2, 2004 08:39 PM
I enjoyed reading that and found it well structured but by homing in on developer issues you miss the simple root problem: end users, or more to the point, the lack of them. You touched on it and as the piece is about the state of developer issues, in a way is understandable, but ultimately, users will always be the reason for developers to invest time and effort in any given platform.
No amount of developers and no amount of great technology will, all by itself at least, envigorate corporate Apple.
Under its current model Apple simply must find more users. The problem, and it's very worrying, is that Apple's number one priority is not finding users. By Apple's own admission, it's number one priority is keeping existing users loyal.
More than worrying,the comments are frightening. If every Apple user owned shares in the company then they would have been suspended as users rushed to sell them on hearing that news. 'Loose lips' and all that but those comments were not what the doctor ordered.
In this sense Apple really has its head in the sand. The number one reason why people, who are potential new mac buyers, don't buy into the platform is initial cost of equipment deployment and the performance they would actually receive for their investment. Price/performance is the big one (although not the only one).
The claim that it doesn't want to enter the low end 'because there's no money there' is absurd.
Apple has spent the last few years developing new revenue streams around software and other product bases.
You would think they would be trying to expand the base of possible software clients to maximise revenues but they aren't.
They don't have to make money on the machines to be a successful business. The machines themselves can be revenue generators.
So many of Apple's current problems would simply become irrelevant if they could push user numbers higher. Yes, this includes the 'developer' problems. Java especially.
The problem is easy to solve but someone at Apple can't seem to see the forest for the trees.
First off the notions of 'consumer horsepower' and 'pro horsepower' have to be abandoned. They serve absolutely no valid purpose in 2004.
Absolutely everybody should have the option of buying into major horsepower, irrespective of the position of the client in the user grids.
Second, the hardware architecture should be able to support that horsepower. That means hauling the eMac and iMac into this century. Something that's long overdue.
Deliberately crippling products must stop. Products must be competitive (that DOESN'T mean cheaper than everyone else) in the market. Putting technology into a machine and then 'turning it off' is not right.
More attention should be given to what USERS want and less should be given to what Steve Jobs wants users to want. I point blank refuse to believe that pro potential G5 users really craved for a one button mouse, one optical drive bay, one firewire bus, one ATA option or even one processor This was an unneccessary step back. The competition didn't make that mistake.
Apple clearly didn't give it's 'loyal' userbase much credit. G5s haven't flown off the shelves and there are a couple of reasons that might explain it. One is that the users simply aren't there. That they went PC long ago. Another is that users simply didn't bite on the poor bait (high price combined with less bread and butter needs on a Rev. A Apple product).
At launch only the G5 dual 2GHz was competitive. The other two models were ridiculous on price. The niche for potential dual 2GHz buyers is just that, a niche. By the time the units actually shipped the dualie was still price competitive. The 1.8GHz model and the 'low end' model were not. When the middle of the line was forced to go dual it was almost competitive but still 'Apple pricey' and also missing all those bread and butter features I mentioned just a moment ago. The low end model was never in contention and until the mobo gets revised, never will be. But that was LAST YEAR. The competition has not stood still and prices continue to fall.
So Apple has had trouble getting hold of the right chips to revise the range. Big deal. Re-configure the existing line and you are at least trying. It was so bad at the outset that a reconfiguration would be easy. Eliminate the low end mobo. Make the 1.6GHz dual, push the G5 architecture into the iMac/eMac (both are seriously overdue for a major architectural leap), bundle a pro Apple App, etc, etc. I sometimes think Apple just doesn't want to do well.
Apple is failing where it hurts most, where you can see it. 'We'll innovate our way out of the tough times'. Last year was a great year on many levels but Apple failed to show any decent growth. Now they want to 'market their way out of tough times'. All I can do is shake my head.
Unless that marketing is accompanied by better hardware at lower prices then nothing will change. And should they decide to market current iMacs/eMacs then it will be a disaster. The innards of the eMac/iMac are nothing to spout off about at current prices.
Believe it or not I see a lot of positives at Apple but if the waterhole dries up those positives cease to exist.
It's more users or bust I'm afraid (at least under the current hardware-based model). The more users you have, the easier it is to leverage software and other revenue streams (as long as Apple doesn't continue to fragment its own small userbase even further with these insane, full-priced, major OS updates.
And to finish off, am I the only one to think that it's surprising that Web Objects wasn't mentioned in some capacity?
Posted by: Patrick at May 2, 2004 09:10 PM
Decent stuff, came here from codepoetry. One thing you didnt mention was the iTunes Pepsi promotion which has been a failure and Apple falling short of their estimates for the year.
The only thing I dont like is that you dont back up everything you say. You say front end guys are getting screwed (funny line, made me laugh but NSFW) but how?
Posted by: Anonymous at May 2, 2004 09:18 PM
Nice article, but for the love of god, please stop using the word "prolly" all over the place. It's amusing the first time, but you have one bad habit when it comes to using real English!
Posted by: graxor at May 2, 2004 09:50 PM
...Linux at this point can't be ignored, it's somewhat viral. Sure, your market just might have a slight cough at the moment, but soon you'll be coughing up a lung and really wishing you'd made that doctors appointment. I'm looking at you, Sun...
That quote made my day. Thanks. Have to agree about the "prolly" comment. It confused me too, I assume it means "probably".
Posted by: Anon at May 2, 2004 10:15 PM
Just a stupid rant by a guy who is afraid of Linux and KDE. There is nothing of value in this "article". Move along.
Posted by: eco2geek at May 2, 2004 10:43 PM
Pedro: No offense meant (especially since you are way higher in the geek pecking order than I am!).
Back in '92, I went to a MS conference where they were introducing Win3.1, with a Mac tech friend. His conclusion was that Macs could already then do with System 7 just about everything that MS was touting as "new and improved for Win3.1" -- and he was right. Somehow (and this blog article partially explains how), Apple got behind their competition in terms of their OS. I hope they get ahead of it again. OS X is simply gorgeous; it's built on un*x, so it's very stable; and you no longer have to pay a premium to own a Mac.
But saying Windows generically crashes more than a Mac does is just silly.
Now that all versions of Windows, from XP Home on up, are built on NT and have protected memory, they hardly ever crash, in my experience. Methinks you're doing more to push it than just running those few apps you mentioned. :-)
Posted by: Crandon at May 2, 2004 10:47 PM
This guy needs to fucking die, or his site does. If you know better, go work for them. Until they offer you a paycheck shut the fuck up.
Posted by: Tom Blahher at May 3, 2004 12:02 AM
What you write makes sense, except for one little problem: MS keeps Apple alive (eg. Office for the Mac) because OSX is helping MS fight off the justice dept and Linux. OSX in its current form is the best thing to happen to MS in a while and they want to keep it that way.
If Apple did anything to support Linux, MS would get pissed. There would be no more Office for the Mac, and they wouldn't license dotNet to Apple. That would be the end.
Posted by: Anon2 at May 3, 2004 12:20 AM
1) I like the word "prolly". I use it myself occasionally. If for no other reason, keep using it so I can be entertained by whiners who can't deal with such linguistic blaspehmy.
2) On a more general note - you're writing style is great, for my tastes. Made it really easy to get through the whole article without it feeling tedious. Different strokes for different folks, and if you were writing professionally, I'd agree with the self-appointed preservers-of-the-journalistic-realm here. But you're not - it's your own friggin blog. don't let the bastards get you down.
3) I have an iMac running X.2, a couple Win2k machines, a couple XP Pro machines, and my primary machine is now running SuSE 8.1 (yay KDE). I feel more ambivalent now than ever before about "preferred" operating system. I program, but mostly using text-type editors, so it doesn't really matter my client OS, provided I have a browser and terminal client. I think I could easily go with Linux or Windows from here on and be happy. OS X, too, but only if there were a reasonably powerful machine for a reasonable price. But, we're talking about apple here, so it's really only between linux and windows for me.
Anyway, loved the article, the writing style, and am looking forward to your next post.
Posted by: Anon100 at May 3, 2004 01:50 AM
Are you unable to spell 'probably'?
Posted by: seabasstin at May 3, 2004 02:16 AM
doooood!
"I found your article very, very intuitive and interesting, even despite your jeuvenille writing style, use of words that don't even exist in the English language and relentless acknowledgement of machines and code as sexual objects. I quit reading about a quarter of the way through, however, where your jeuvenille writing style and attitude climaxed with an absurd throw-away line about Jesus. How tasteless and irespective.
Posted by: Joshua at May 2, 2004 03:06 AM"
What kind of fundamentalist Krack are you smoking Osama!!!
You are reading a Blog... You do understand what a Blog is right.
Sure there might be factual issues, and there might even be some confusion about the final aim of the Essay; but you can't go to someone's house and tell them to shut up unless they speak proper English...wtf.
----------enough with Joshua, I mean Osama---------------
Man thanks for this article, it's great to see people thinking and writing down their thoughts.
I feel enlightened by that first and foremost.
------------------------------------------------------
On topic:
It's really sad to read this post for me because I have been thinking about the same problems with Apple; except that I am seeing it in all aspects of the company.
I have had a Mac in my possession since the first, and 2 Apples before the Mac. I'm a die hard Mac zealot, and I have had to weather a lot of shit, make up a lot of BS to cloud the eyes of people who in the end where right about the problems Apple where facing and creating for themselves.
Right now though I genuinely feel a heavy sense of loss of direction.
The company seems to be going in no particular direction and a lot of frosting is being put on cardboard boxes, to make them look like beautiful cakes.
iPods might be great, but in the end Apple will never be Sony, and the iPod right now feels like a great car being sold by a bicycle company....not it's core competency...even though it's great.
As great as Jobs has been at Apple, he is still human and right now he is split between way too many tasks.
He needs to get a protege and get that person up to the task of leading Apple.
The lack of direction is making itself more and more visible everyday, and it is really heart wrenching when the most virulent, obstinate, Apple zealot can't see anything in the future that makes them excited. I mean No wood, I need some Viagra. shit.
Maybe I am getting old, but I don't think so, because when I read about the advances of Linux over MS, and AMD over Intel I get so turned on it's getting addictive, I end up reading TheInq, and TheReg, much more than Macnn, or MacMinutes.
I'm not saying I want to move over to Linux or AMD, I'm saying that I want this excitement in my camp.
I want to hear about OSX over MS and PPC over Intel; I want to hear sales of PPC97x beating out the Itanic, not AMD64 beating out Itanic.
Shit Apple; where is the love the love the love..... (we can't have NAS making a song about us now can we.)
The thing is I don't have any other options at this point; I mean sure there are other platforms, but for me there will only always be one platform; (yes Modernist prehistoric crap, but what do you want I would have gone to Spain with Hemingway to fight the civil war too...even knowing I would be killed).
I believe that if things get really bad, I quit computers altogether and become a cook...(I am not kidding).
I'd rather die than move to another platform wholesale.
right now I have an XP machine and a Linux machine next to my Mac, but only one sees me all day.
Apple do you fucking hear me or any of us.
remember what makes success....
people.
without them you are not...poof! to bad so sad bye bye.
please us please.
I mean please.
Spend some cash.
In each of those glitzzy Apple stores of yours make a developer center where people who want to move their vertical Win/Unix app, can come in and sit with a developer (on your salary) for a month lets say and get their port donealmost for free. (more apps mean more money doods)
Sure it's expensive but at this point you neeeeeeeeeed toooo do something crazy.
Convince Autodesk to let YOU port Autocad for FREE....you need it to happen.
Why the Hell are Architects using Peecees when they (the architects) are built for macs?
Convince their subsidiary Discreet to let YOU port 3DStudio. (why has this not happened yet)
Make some excitement, get people talking about you in a serious fashion.
iPods are not a serious item, THEY ARE A FAD.
You can't depend on that shit at all.
dooods wake up.
shyte....
long post sorry.
Posted by: Louis at May 3, 2004 02:26 AM
A couple thoughts:
(1) Pedro (I think it was) who was claiming that WinXP is blue screening running text editors? You've either got serious drivers/ hardware issues or something going on, but you should have a reasonable expectation with WinXP that it never blue screen. Fortunately, your experiences are extremely atypical, and I have to question what you are possibly doing to your machines.
(2) Apple still takes every chance to fuck their developers as near as I can tell. Story time: my previous employer (this was in 2001) wrote a bioinformatics application. This market used to be entirely macs and has, over the last decade, moved to about 2/3 windows as the price/performance decimated the macs. The application I worked on was a Windows application. Now remember, we were a small shop -- like 7 full time devs. However, we sold a bio instrument and software that ran it, and we sold at *least* one computer with each machine. The total package started at $50K and often reached more than $250K, so customers thought nothing of buying a couple more computers along with the instrument if their scientists requested.
When we talked to Microsoft, they were always willing to listen and give support. We got a couple free copies of MSDN out of them just for asking. Apple? They couldn't give a fuck less about us. When we talked to them about maybe getting some machines + software to do a port, they wanted full price. Throughout the entire interaction, I still got that "You should be grateful for talking to us" vibe. Which really put us off, considering we could probably have sold 100+ machines / year for them. Not to mention we were in a market they used to own but were rapidly losing.
Also, for the convenience of the users, we bought Dells, installed our software / configured the computer to run the instrument, then shipped the computer on w/ the instrument. Dell was more than willing to play ball with this scheme; Apple would have been a much bigger hassle.
(3) Apple hardware is *way* too expensive -- even the pro line. Sure, you can play games like giving away free IDEs, but who cares? Microsoft's compiler is free. Compare the prices of reasonable development computers and you'll find that the price is in favor of Microsoft even including the dev environment. Not to mention the problems getting decent RAID in the current Apple towers, which is practically necessary for data safety on dev boxes. (Yes, we use a SCCS, but with hard drives so cheap, why take any risk at all?)
(4) They need cheaper computers. I bought a Dell on sale for my roommate -- she got a 2.2Ghz P4, 256MB Ram, a DVDROM, a CDRW drive, and a flatscreen 17in CRT for $430. Shipped. As near as I can tell from Apple's site, you can't touch them for less than $800. That's a *huge* difference.
I just checked Dell's site and a similar computer w/ the current special (they always have free shipping + a free CDRW or some such) is $560. While closer, that's still $250 or the Apple is almost 40% more expensive.) These are the computers most home users buy -- and the $250 difference matters. It's not even worth mentioning how much faster the Dell is. Now, Apple could probably compete if it was *either* more expensive or much slower -- I just don't think home users find both compelling.
~Louis
Posted by: Louis at May 3, 2004 02:32 AM
Oh, to be clear, the company didn't do the port to Mac. Apple's attitude / reluctance to relinquish their profit on their computers for us to do development on was just part of the dealbreaker. A large part of it was general lack of confidence in the future of Macs, especially WRT the cost of the port. The fact that they refuse to hand out long-term roadmaps, both for hardware and even more for the OS + development tools, was a major contributer. Contrast this to Microsoft: they have roadmaps extending a decade or so. They may or may not hit the map exactly, and they can and will add or remove things, but they at least work hard to give you a general idea of what they think / want to see happen. Intel + the rest of the PC industry does as well.
Apple needs to stop playing their cards close to their chest to Jobs can play little games "surprising" people and start sharing information.
Posted by: David C. Oshel at May 3, 2004 02:55 AM
How optimistic can you get? Apple is going to Osborne on us, and nothing is going to stop that. Mac OS X is a just a thick pane of sparkling glass obstruction that keeps those of us who learned Unix from Linux out of the sandbox. Obj-C is even worse than AppleScript. I will never willingly buy another Mac, especially since I learned the Sony VAIO spouts haiku.
Posted by: Dotgnu nerd at May 3, 2004 06:45 AM
I saw some cool screenshots off DotGNU Website
Aqua# (see ilrun in the native menu)
and
MacForms.
Both are screenshots C# programs ....
Btw, this article looks like a PR stunt for Mono
:) .. As long as mono doesn't dump Wine as their
winforms model , it'll never get anywhere ...
But that might affect Gtk# adversely, if winforms
works better than Gtk#
I'm trying to get someone to teach me Objc so ,
I can make a wrapper of Cocoa with Reflection +
Remoting , so that it's a transparent wrapper.
With DotGNU's current architecture it should
be easily Possible.
Posted by: PainKilleR at May 3, 2004 08:25 AM
Just a note regarding .Net and the languages available for it:
There is an implementation of the Java syntax for .Net, called J#, distributed by Microsoft. For the first release of VisualStudio.Net it's available as a download from their website, and it ships with VS.Net 2003. It also comes with big disclaimers regarding the inability to build applications for a Java VM and the lack of licensing from Sun, to avoid those pesky lawsuits (which may be a thing of the past with their recent cross-licensing agreement with Sun).
Posted by: gorgeous at May 3, 2004 09:47 AM
Seems to be getting a lot of links, I got here through blogs linking to other blogs talking about it. Hard not to like this guy, he seems equal opportunity in who he pisses off. :^) What I like about this article is everyone is thinking this stuff but no one says it, at least not the regular mac websites. What I don't like is he is pushing the threshold for how big something can be in one sitting. Someone else said this could be broken up into many different topics and that makes sense. There is a lot of value here even if he is wrong on some things to warrant a revision for the future.
The market analysis is spot-on, all the questions he asks make sense and need to be brought up. He did miss one thing that arstechnica got. sales of 10.3 are dropping fast too, faster than 10.2 dropped. Maybe people are tiring of the yearly updates? Having to support yearly OS changes would be harder for a developer too.
Posted by: Mike@work at May 3, 2004 10:47 AM
Meh... Another good article fron Drunken Batman :)
2 things on this ...
1) My company did ports for Mac OS... we are doing games for everyone... thing is, we can't assume Cocoa, we must use Carbon... because we want our games to be backward-compatible to your grand-dad's computer. What we require is QT3 and CarbonLib. So we are still stuck in coding for 9. Yayyyy... That shows a great problem, there is still a big user base that got their old Macs and are happy with 'em.
2) Java is interpreted. And seeing from the comments, not all Java interperters are JIT. I do mobile games and I can definitely tell you that only desktops are JIT-interpreted... But if you go to JIT-aware stuff, it's very interesting because a JIT-interpreted software do have the potential of going faster than a conventional C++ software. Why? Because it can optimize itself depending on use, and not depending on generic optimization process. That was shown on some benchmarks of different Office suites.
Again, great article.
Mike
Posted by: Oliver at May 3, 2004 10:48 AM
I think the grammar nazis are missing something about this post because it weaves in and out from so many styles, and they may disagree with his commentary. I've shown it to several people and if you know a little it builds you up so you understand what he is saying. And if you know lots he puts in little bits and humor to keep you from getting tired. And the jokes that are there are crass but really sum stuff up. Anyhoo I don't agree with all of his commentary with but that I've still shown it around. I'd link to it but I wouldn't know how to begin a synopsis of it. And that Elizabeth Taylor comment is priceless. Cut him a break he's going to hell for that already.
Posted by: K_sharp at May 3, 2004 02:39 PM
Under 3% marketshare? I call bullshit. Oliver, dont be a fanboy.
Posted by: Paul R. Potts at May 3, 2004 06:22 PM
Hi,
I enjoyed reading your piece. I'm willing to cut writers a lot of slack for weblog entries; I don't expect them to be edited down to razor-sharpness, or come to complete and final conclusions. So please don't be disheartened by those who gripe about that. No one forced them to read it to the end.
I've been developing Mac software on and off in one form or another since about 1986; most recently, I developed a whole suite of software to support a hardware product, including drivers, daemon, and GUI applications. Yes, it is frustrating to be a Mac developer, but I've also been a Windows developer. On balance, I prefer the Mac platform.
If anything, I think your comments underestimated how frustrating it has been. We tend to get seasick a lot from the yawing and pitching of the good ship Macintosh (sorry about that...) After attending a WWDC that was all about MacOS 8 (Copland), it was very disheartening indeed to be told that the way to get learn how to develop software for the new MacOS X was to develop for Rhapsody, which initially meant having to buy... a PC.
I imagine a lot of developers did just that, and while at it, started to take a look at the benefits of using that shiny new PC to develop Windows software, and wandered away.
That's just one example of the dispiriting string of cancellations and failed development efforts. I was a Newton developer. I never did much with, but studied, OpenDoc, QuickDraw GX, Cocoa (the kids' programming environment, reused). I learned how to write scriptable applications in C++. Does anyone remember AOCE?
And the processof getting support from Apple, as a paying and registered developer, is if anything even more painful than you imply. It's easy to understand why Apple doesn't have the staff to keep their API documentation in top shape and up-to-date, but that doesn't do anything to help a developer trying to follow their recommendations, which have a decent likelihood of being (a) obsolete, (b) not really implemented that way after all, or (c) broken in a late change between the beta OS you tested on and the one that shipped.
Regarding Objective C: well, Objective C is very nice; I've looked at it myself a bit, and people whose opinions I respect a lot have told me so. The syntax is a bit of a barrier to entry, but developers who dive into it for a project generally find they like it. The frameworks are widely acknowledged to be world-class. The posters who criticized Objective C on the grounds of garbage collection are displaying simple ignorance of the Objective C language, frameworks, and garbage collection in general.
So why am I not using it? Simple: I haven't needed to use it in order to develop for MacOS X. I've got enough to learn without taking it on as a hobby, and I've been able to use CoreFoundation (C++ API) calls instead. I just don't see a future in Objective C, no matter how nice it is. If I'm going to use a language that provides a real message-passing and dynamic environment, I'm going to try to use something like Python or Ruby or Dylan (my personal favorite), not a set of odd extensions to C.
So, do I have advice for Apple? Not really. I'd like to see some of the technology behind the Newton get resurrected in a new form. Few people really know what they had there, including Apple; it is easy to ridicule, but in many ways it was simply ahead of its time. I'd like to see Dylan make it one day. It is always hard to see superior technology lose in the marketplace. I guess my best advice is for Apple to continue to be driven by usability.
They've got a good thing going with MacOS X. Part of the problem is just getting the word out in a market that seems dominated by a race to the bottom. I'm not very sanguine about porting MacOS X to PC hardware; PC buyers don't seem to have the same priorities that Mac buyers have. There is too much of a willingness to sacrifice stability and reliability for bottom-line. I don't think a MacOS X ported to cover the bazillions of ugly motherboards, chipsets, and hardware cards that make up the PC hardware world would necessarily be able to deliver a stable MacOS X experience; instead Apple would just find itself frantically trying to debug a million video-card drivers. The cost would eat up the advantage, and 75% of PC users would never be able to, or want to, install it anyway.
Posted by: GPSNavX at May 3, 2004 07:22 PM
Enjoyed the post.
I am realtively new to Mac dev (1 year). I did CP/M, then MS-DOS, then Windows then Java. I find the Obj/C Cocoa so much better then all of that. I had no trouble ramping up to Obj/C Cocoa. It works without hassle. There is a decent market for OS X software. Pick an area that is flooded with Windows app and you can find a niche as we have done. I am glad I didn't have to deal with Pre OS X or have to port a "Classic" app.
Posted by: Lauren at May 3, 2004 08:38 PM
As a cross platform developer (mostly in Java, some in C++) who has developed for OS X, Windows and in the future for Linux (I am currently sitting in front of three machines – one Windows, one RHL, and one a Mac), I found this article interesting and overall on track with my perception of reality. A couple of observations though:
1) Developers for the most part want to develop for the largest market share they can. This you noted already, but missed several simple conclusions:
a) We would prefer to develop with preferably one, or maybe at most two languages. The more languages we have to learn, the less proficient we will be in any one language. So, given rule #1 (largest market share), I am going to be sticking with Java and C++. No Objective C, no C#, no VB, etc. – as those are minority languages support on a minority of platforms. Java and C++ are present and supported on almost every platform out there. Oh sure, I may dabble in Python/Jython, but only for special projects.
b) Ditto for platforms. For most people this means Windows, but many people are tired of being locked into MS tech, and there is the new wide world of server side programming, most of which is Linux. So for me, this again means Java (and maybe C++) because I can target Linux, Windows and Mac OS X in that order.
c) Double ditto for APIs. Again, for most people this means Windows, but increasingly it means one or more of the OSS APIs (many of which are available from Java), and Linux on the server side. Because some of the Linux effort can be leveraged for OS X, we are seeing an increasing interest in Macs – but that interest mostly comes from the ability to port to the underlying Unix base, not Cocoa/Xcode/etc. on top of it (that may come later – if at all).
As such, I have much less interest in OSes that only run on one kind of hardware, and APIs that target one OS (or category of Oses). For the minimum amount of effort, I want to develop for the largest audience – as do most employers. It would be nice if I no longer had to worry about what language, or what OS, or what API to target so that I can get and keep a job, but rather concentrate on learning new patterns, problem domains, and how to write/design/develop/test good code.
2) Given that, I spend most of my time using Java to target the widest range of platforms (and yes Virginia, if done right, Java can be used to develop decent desktop apps – I’ve seen it done [with or without SWT]).
3) I would personally prefer that Apple provide a version of OS X that runs on non-Apple hardware. I am fairly sure it can and has been done – but I am not going to hold my breath. Apple is still sticking to the outdated notion that they can continue to grow the company and their market share by primarily selling hardware – and as we have seen, this already proving to be a fallacious assumption. As much as I dislike Bill’s biz practices, he is a very smart guy, and he is right that the future is practically free hardware. With some exceptions, most of the money to be made in computers is in software, not hardware.
To get around the chicken and the egg problem, some eggs have to be scrambled. If Apple wants market share (if they are going to survive long term and be any kind of force in the market, market share is what they need), then they are going to have to offer their software on the largest share of the market’s computers. That means running on Intel boxes (or at least most Intel boxes – such as the major names, like Dell).
Until they do, they can capture all the developer mind share they want, but developers will not be able to market their offerings to those people who are currently using Wintel boxes. They will never reach a critical mass and Apple’s market share will always stay below 10%. That said, I just don’t see this happening – or if it does happen, it will be too little, too late. Linux will continue to dominate and grow on the server side, Windows will dominate on the desktop, but slowly lose some to Linux as its desktop offerings mature.
4) I haven’t been following the .NET/Rotor/Mono efforts closely, so correct me if I am wrong, but the Rotor/Mono efforts at this point in time look like they are going nowhere. Rotor is not complete, and my understanding is that it is all but dead. Oh sure they run on non-MS/non-Intel platforms, but if you want to use them for anything that makes money forget it. The licensing of the CLR is still under MS’s thumb, and from what I remember, they aren’t allowing it to go any further than an academic exercise. Maybe DotGNU will help, but I am not holding my breath for any of these efforts to be a viable cross platform API that I would bet the company on (and almost every project a company starts nowadays is a “bet the company” project). So it is again Java (or rather the J2EE APIs) for me. I could be wrong on the licensing issues, but even so, I see no compelling reason to go with .NET/Mono/etc., and implementation wise, none of them are close to what Java offers today, much less tomorrow.
5) As far as I can see, the appeal of the Mac to the developer is the same as it is to the end-user; we get one and it just works. This is especially true of their laptops; how many Intel based laptops are easy to install and run Linux on? With a Powerbook, whether you are running OS X or YDL, it is brain dead simple – it just installs, runs, and everything works. This is primarily due to the fact that Apple controls the hardware platform, and there are limited number of models for both Apple and Terra Soft (or any other OS provider) to target. A lot of developers I know are buying and using Apple laptops for this reason, while still using Intel desktops. Yes I know that seems to contradict what I said above about Apple needing to target Intel boxes, but I never said that Apple should abandon their hardware, they should just expand their horizons.
Posted by: AlexRZ at May 3, 2004 11:42 PM
I didn't had time to read your long article, so I made a PDF on my PowerMac. But, it sounds like if everybody had your way of thinking everybody should use Windoze and everything else is not worth. I think Mac OS X is somewhere between Linux and a propietary *nix, but it's an interesting effort. Everyday I have to suffer the annoyances of Windoze, I know it from v3.1. It is pretty awful. Since I have my Mac (4 years ago) I can tell from a user point of view that I have peace of mind. I'm very happy with it. Mac OS X to me is a wonderful OS. I don't use Office. I have all the applications that I need. The idea of returning to Windows is unpleasent to me. It's a step backwards. About Developing I don't know to much, I remember writing BASIC programs on a Commodore 64. Then and now there are no limits, only the ones that you impose yourself.
Posted by: RevAaron at May 4, 2004 03:04 AM
Hmm... There are some slightly off facts in this. Good article, and for most people, probably close enough. But, it'd probably be a good idea to do some research while writing something like this to verify your facts- it never hurts.
Feel free to email me if you would like to know the things I noticed.
Posted by: cardbook at May 4, 2004 02:36 PM
This post hurt my head it was like being in school for several hours at a lecture. But there is much good here. This part is what is important "Apple may not have to choose a "desktop environment" to back, but the frameworks need to be ported to Linux eventually, and the sooner the better. Apple can either do it now, while they can still heavily influence the direction of the Linux stampede, or they can do it after it's passed and they're desperate and all that's left are the droppings from the herd."
Linux is maturing fast, and soon they wont need anyone. Window of opportunity is closing and Linux will flourish with an independant base of its own. If Apple or Microsoft moved in now they could control the APIs. If they wait too long they will be porting their applications to Qt or GTK. I will love to see that day.
Posted by: Jeffrey at May 4, 2004 02:58 PM
The one liners in this are hilarious. My .sig file thanks you!
Posted by: Lars Lewis-Wright at May 4, 2004 09:18 PM
15 "prollys" is 14 too many.
Posted by: Elixor 8 at May 4, 2004 11:03 PM
This is a little too big, I hit my space bar 32 times to the end, then 34 times to the end of the comments. Thats a little much. Site loaded fast though for that much. Maybe you should separate comments from the article? Or split it? Or just write a book so you could have an editor.
Posted by: Johannes at May 4, 2004 11:56 PM
It would be great if you actually knew how to write. Or if your criticism was original. Or timely. Or...
Posted by: Elliot Warren at May 5, 2004 12:01 AM
I came from MacNN. Now can somebody tell me where the fuck this guy come from? And why every fucking mac site is linking to him lately? First the G5 piece of garbage and now this. Its poorly written and poorly researched. The gaping holes in his logic are painful to read.
Posted by: J. Sculley at May 5, 2004 12:03 AM
I prolly woulda liked this rambling rant a little more if it wasn't so long.
Posted by: blusky31 at May 5, 2004 01:59 AM
Wow, that was intense. 'nuff said.
Posted by: Enrico at May 5, 2004 05:24 AM
¡Muy bueno, gracias! Pero sí, está muy de largo.
Posted by: Giles at May 5, 2004 05:58 AM
This article has be brought to you by the word... Prolly {NEW}
Posted by: John Milton at May 5, 2004 10:30 AM
Scripts start with "#!", not "!#"
Posted by: Dennis Cheung at May 5, 2004 02:38 PM
I had an entry kinda like this on my blog. And it was totally flamed. Of course it probably didn't help that my entry was hosted on http://blogs.MSdn.com
Posted by: Andrew Norris at May 5, 2004 04:41 PM
Interesting piece. I think all of this is irrelevant, because I think Apple is incapable of fostering a development community at this point. Java took a swing and a miss at the desktop, though it is nice technology for server side applications. The only viable desktop RAD tools that are really exploding in market share are based on the .Net Framework.
MS.Net is a pretty slick framework for Windows-only developers (which, lets face it, is most of 'em). And Mono is a monster. The plan is to migrate most of Gnome to run on top of Mono over time. If it works right, figure it to be a huge new tool for Linux development, because it will finally be quick and easy to build a slick GUI for Linux. And, in fact, if you architect your app right, you can plug in either the MS.Net GUI tools or the native Mono tools and have native apps on two of the three platforms that matter.
I think it's a lot more likely that someone will get GTK and Mono running on the Mac than that Apple will suddenly open up their tools and then succeed in attracting developers. That's why, in the long term, I think Macs will become a really stylish system for running apps that originate in Mono (along with the Apple-built tools and some legacy apps like Adobe and MS Office).
The good news is that having Linux desktop apps port straight across to the Mac would be great for Macs, and might drastically extend the life of the Mac platform. They could concentrate on being the BMW of hardware and operating environments and still be compatible with most everything out there. Frankly, that makes a lot more sense to me than Apple's current business model, which seems to be to kill off developer support and convince everyone that all they will ever need is either the shrinking set of very popular apps that still have Mac versions or Apple's own boutique iWhatsit products.
Sorry if I'm upsetting all the Apple fans, but I'm just calling 'em as I see em.
Posted by: T at May 5, 2004 05:23 PM
Lars,
I think you mean 15 "prollys" is prolly 14 too many, but then again I would say 2 last names is prolly 1 too many as well. ;-)
Great article! Good read, funny and 80-90% accurate. Can't ask for much more than that.
Posted by: pecosbill at May 5, 2004 08:44 PM
I get purple faced, apoplectic level of irritation by all of the people who say that Apple has got to port OS X to survive. Apple is a HARDWARE, yes.... HARDWARE company. They are a billion dollar (barely, it seems) company due to the hardware sales they have. If they were to drop from thousand dollar products to ~100, you could kiss that billion dollar label bye-bye (and the stock price right with it).
And as someone pointed out, why reinvent NeXT? NeXT barely survived. Were Apple to port X to Intel (or quality AMD & no Ghz faux processors from Intel), they would have to start supporting all those myriad combinations of PC hardware with the resultant loss of stability. Or, come up with a supported hardware list that nobody would be happy with.
So, how can they attract developers to that hardware? All I've read is what keeps them/you away.
Oh, and to the person who commented about Omnis Studio.. Awesome, isn't it!?!? Just wish they could test/fix their plugins for OS X.
Posted by: soosy at May 5, 2004 10:39 PM
Found this very interesting, read all the comments and found some of the other counter points very interesting. (and some of the comments very dumb--think for yourselves people!)
I agree Apple could use more developers and make development more enticing, but in the end I think the bigger problem is marketshare. Sure it would be nice if developers could push a button and have their app spit out for multiple platforms (and I also agree that this probably isn't the best anyway--lowest common denominator, etc, etc)... But I don't see people flocking to the Mac just because a few more apps are available. The problem on the Mac right now isn't lack of software, as I see it. I mean yeah, there are examples, but bring back marketshare and it becomes a non-issue.
Marketshare is not an easy thing to solve, and I'm certainly no expert, but I tend to agree that Apple's hardware prices are a big obstacle. People want cheap. Businesses want cheap. Most of my extended family uses Macs, but for the other 95% of the world, I don't think it looks too appealing to spend a lot more on something that none of your friend's use. And the consumer space is where I think Apple has done pretty well lately.
Wonder why the iBook's are doing so well? it's because they are cheap and a good value! Aside from the bulky eMac it's their CHEAPEST machine! Where's the big mystery?
And for Businesses, price is even more important. There are many factors, but price is a big one that I think kills consideration right off the bat. The need for a cheap headless iMac is very relevant.
Blah blah blah Apple is a hardware company. They could slash prices so they are even losing a little and live off their 4-5 billion in the bank (or iPod/software sales). It would be more than worth it to have the market share turn around. Too bad they are public and have shareholders to consider.
Posted by: John Granger at May 5, 2004 10:51 PM
:: Pecosbill said
:: Were Apple to port X to Intel (or quality AMD &
:: no Ghz faux processors from Intel), they would
:: have to start supporting all those myriad combinations
:: of PC hardware with the resultant loss of stability.
:: Or, come up with a supported hardware list that
:: nobody would be happy with.
Why do people comment on things they do not even read? That is what makes me purple.
This took me over an hour to get through and I don't think you read it in its entirety. Where in this do you see DBM say to port Os x to intel? I would say to reread it but I dont think I could ask anyone to do that. He actually says not to port the operating system to AMD or X86, but to port the blocks that make the applications work. You would have to have an Apple computer to develop but then your developed applications could run on windows also. That is what I got but I wont reread to make sure.
Posted by: beavis at May 5, 2004 11:43 PM
Shut up about the prollys, it can't be mac people commenting about this! Buy an iPod and get hip grandpas!
Posted by: pecosbill at May 6, 2004 02:43 PM
Clarification: I wasn't referring to DBM for porting to X. I was referring to the comments. Sorry for not being clear even though it was obvious to me that DBM isn't talking a full OS X port. (I read every line of the blog incl. comments.)
DBM & Cocoa for Windoze et. al. does make some sense though I don't know what the ramifications would be. It probably would be a safe bet for Apple as big developers would be working towards multiple platforms (Win/Mac at least) anyway. Cocoa for Windoze was pretty cool as it provides a framework layer that provides the Windoze GUI controls without effort, or at least that's what I saw years ago. That way, you still get the hellish experience ;-)
If they were to do that, they would have to -somehow- put in the licensing that the vendors would have to release a Mac version of any public (free/commecial, etc) software.
Posted by: John Granger at May 6, 2004 09:49 PM
:: Clarification: I wasn't referring to DBM
:: for porting to X. I was referring to the
:: comments. Sorry for not being clear even
:: though it was obvious to me that DBM isn't
:: talking a full OS X port. (I read every
:: line of the blog incl. comments.)
Ok! Sorry I did also and got too sensitive reading some of the comments. Most seemed to be responding to anything but the article and my anti-troll alarm was on high alert by the end. My take is it is 95% accurate in the facts even if his conclusions are dubious. This is still one great conversation for the mac community to be having.
:: DBM & Cocoa for Windoze et. al. does make
:: some sense though I don't know what the
:: ramifications would be. It probably would
:: be a safe bet for Apple as big developers
:: wouldbe working towards multiple platforms
:: (Win/Mac at least) anyway. Cocoa for Windoze
:: was pretty cool as it provides a framework
:: layer that provides the Windoze GUI controls
:: without effort, or at least that's what I saw
:: years ago. That way, you still get the
:: hellish experience ;-)
I'm with you on that one. At least he didnt bring up the Mozilla type frameworks either for cross-platform development. With things like Qt and others it isn't native controls but a skin that tries to look native. That really shows and is very "distasteful" as DBM put it. Even for a web browser.
:: If they were to do that, they would have to -somehow-
:: put in the licensing that the vendors would have to
:: release a Mac version of any public
:: (free/commecial, etc) software.
Thats a really good point. And they could charge. You have to pay Trolltech some good $$$ to do windows or closed-source Qt development.
Posted by: Jordan at May 6, 2004 10:57 PM
I feel like I just got several credit hours for free. Lots went over my head, but the encyclopedia links made it accessible. Thank you. I'll second the request for you to either take parts of this and expound upon them.
Posted by: Reece at May 7, 2004 10:43 AM
Second this being awesome, and third the request for a revision but without the humor. I busted a gut, but there are people I'd like to show this to who won't appreciate much of the humor. :D It really was funny, so you should keep it. Maybe a PC and non-PC release.
Posted by: John Morgan at May 7, 2004 04:39 PM
Very astute analysis and commentary on the state of Apple-land. As a new "switcher" it was just great.
Count me in the camp that is unsure of how to proceed. I have been doing VB and VC++ on windows for several years, a picked up an iBook as my first mac for its price and portability, but most of my developing is supporting Win32 and more recently VB.NET and C#. I've been looking through Carbon and Cocoa to see how difficult it would be to bring some of my code over as I love Aqua, but it would really be hard.
What people seem to be missing from Cocoa is that they are great RAD tools, but you still have to do the work and for a large application this does not make things any faster. Your GUI prototype may be off the ground faster, but the are of limited value if your needs don't fall right into what the framework expects you to do. In Win32 this wouldn't be so bad, its so huge chances are someone has wanted to do the same thing. Not so with Cocoa.
There is also the issue of speed for my app and optimization which DBM touched on. I've been doing some time tests and Objective-C just doesn't seem to be as fast as I would expect compared to Java. It isn't as fast as it should be and having to drop to C for basic string handling and others makes Obj-C just a wrapper for C code. I am sure this has to do with my code, but there are many performance pits in Aqua and OpenGL that seem inexplicable at first glance that make a good, fast Aqua port prohibitive without the users.
Posted by: Emilio at May 8, 2004 04:16 AM
I have to say this piece is very underrated from the comments. If you disagree with his conclusions thats one thing, but as a history and analysis it is fantastic. Normally it is "bad", this is "bad because..." and then there are links and then a real explanation. I've never heard the BMW argument put to rest so fast.
I've already seen people using the term "Network Effect" and "Reeds Law" with the same link at sites, so even with people bashing they must be listening!
As others have said, this is big enough to warrant breaking it up, or titles with anchors. I'd like to point people to parts of this, but that is difficult in its current form.
Posted by: Jay Stanton at May 8, 2004 06:17 PM
Hey! Came here from codepoetry, and I already left a comment there... but some of these posts amuse me. What exactly are people expecting from a site named drunkenblog done by someone named DrunkenBatman? I would have been disappointed if it wasn't a little far out.
Posted by: Michael at May 8, 2004 07:39 PM
I fault Apple's half-hearted embrace of the open source (GNU, BSD, etc.) tool-chain. They've managed to "innovate" so many little things that little builds without porting and mainstays like a true package manager are still absent. The success of the Fink project suggests this is true. An open userland on an open userland. GUH! Unless killed by the MS/Sun deal, why is OpenOffice.org taking so long to port? How about Evolution? (and other GNOME tools?) In short, why aren't Linux's killer apps (good enough to replace Windows eqivalents) just as available on Mac OS X?
The open source crowd is USED to weak or non-existent "official" developer support yet produce some very good software. The success of Yellow Dog Linux on TiBooks suggests that many developers simply want Apple's elegant hardware but are finding Mac OS X less "open" than it claims to be.
In the end, I suspect that far more "Linux" developers have "Switched" to Mac OS X than Windows developers and that THEY are who Apple should be drumming up excitement with. I do recall a few ads to this effect but the "white headphones get you laid" wing of Apple's marketing deparment is clearly controlling the budget right now.
FWIW: Note the recent onlamp.com article "Component Object Model (COM) Development on Mac OS X" for those trying to bridge the gap.
M
Posted by: steve at May 24, 2004 12:25 PM
Thank you for this blog, I found it interesting, entertaining, informative.
One thing that keeps circulating in my head: Windows has won the OS wars. Linux will win the next round.
But what are the two biggest successes outside the Windows world lately? Palmpilot and iPod. Both hardware with software, dedicated standalone devices, that talk to Windows. And talk to Macs. And could talk to Linux with little trouble (I guess).
My point here is that maybe Apple should look more intently at the post-PC world.
Posted by: Paul at June 10, 2004 03:01 PM
# KDE isn't free, unless you use it for free things. You can essentially develop for KDE for free, as long as your app is for free. If you want to charge for your app, you have to pay KDE.
Interesting artical, exept the truth of the matter is you have to pay QT. KDE is gnu, it just uses a propriatry toolkit
Posted by: pont at June 10, 2004 03:18 PM
Also you mention the portability that was included in the early rhapsody, this is a dissapointing loss i think. But its also interesting to note that one of the main advantages of QT is that its runs on both linux and windows, this is a great step forwald for people who want to have an easytime developing for multiple OS.
I think in the future the OS market will get more segragated and therefor libarys like this will be needed.
One can compile OSX apps made using objective c and the NeXT step headers using GNUstep
I personly am hoping that more people will start using GNUstep, since i think its a nice enviroment
I think you can also use it to compile them under windows .. you might need Xwindows to run your apps tho
Posted by: Geoff Perlman at July 3, 2004 09:34 AM
Why do you believe that REALbasic doesn't fill the VB niche on the Mac? REALbasic is very similar to VB. The IDE and language are similar enough that VB users are quite comfortable in REALbasic and can port their applications to the Mac. In fact, a well-known VB author (Hank Marquis) did a session on porting VB projects to the Mac with REALbasic at WWDC this year.
VB developers would NOT be comfortable in XCode and with Interface Builder. It's just to alien.
Posted by: Renard Hoffman at July 17, 2004 01:27 AM
Hey is this thing on? Came here from Sci-Fi Hi-Fi. I hope you have this backed up, with the comments its a treasure. I don't really read scifihifi, but calling this half baked is a little half baked.
I've been following and using macs for 5 years and I didnt know half of this. The only thing I could say is I clicked the link two and a half hours ago and have been glued to my chair reading the post and the comments. Could have been a mini series.
Posted by: at July 28, 2004 07:03 AM
What is the status of updating this?
Posted by: Petard at July 30, 2004 07:16 AM
There is no status on updating this, DrunkenBatman is a l00ser who doesnt know what he is talking about. This post was really half-baked.
Posted by: Matej at September 14, 2004 04:01 PM
My beloved Linux-only notebook is in repair (spilled coffee over keyboard :-) and so I had to settle for a iMac (with Jaguar, true) for some time.
I was thinking hard what next computer I'll buy for myself or for my wife and after all hype around Mac OS X, I was willing to settle for it. After the experience of the last couple of days, I hugely prefer my KDE (and KMail) to Mac.
I would really want to love Mac, and I have to admit that what it supports it supports well, but I feel all the time limited contrary to KDE.
Thanks for the post, it really opened my eyes.
Matej
Posted by: Dan at October 15, 2004 05:05 PM
VB is for losers, and you are an idiot. Not having automatic garbage collection gives you more control over you code. It is a feature. Sure it might require more focus, but the pay out is worth it. Plus it's nice to have control over what your program does. I don't really look at Cocoa as a RAD environment. Sure it allows you to get things done quickly and elegantly, but you have to know what you're are doing. Obj-C is a little different, but its roots are clearly in C. Anyone from an OO background could pick it up in a day. All it does is add nice layer for OO programming. Obj-C and Cocoa are what draw programmers to the platform. Yes, the development community IS small, but that has its advantages as well. For instance, the Disc Recording API (Carbon) is barely documented, and there isn't much help on the web. However if you go to Apple Developer Mailing lists (free), you can post a question and you'll get an answer almost immediately. In the case of Disc Recording usually from an Apple Dev. Apple will NEVER have as many developers as Microsoft. Apple market share will NEVER be number one. The sky IS NOT falling. Once you accept can that, it's great being on this side of the PC world. Learn some new phrases, you use "writing on wall" and "long in the tooth" way too often.
Posted by: Dan at October 18, 2004 01:48 AM
I apologize for my rudeness, it's shameful. Cocoa+Obj-C has re-sparked my love of programming and I took some things a little personally. I just wish it wasn't so difficult to find work programming Cocoa. Many developers on the lists share the same sentiment. A lot of the problems you described are very real, but I would argue it is not due to a lack of developers. There are plenty of devs foaming at the mouth to trade in their Java jobs for Cocoa, but there isn't much opportunity outside of shareware development. At the same time I don't think the solution is to migrate to C#. I think the reason people want to develop for the Mac is to work with Cocoa, and not so they can do their work using a Mac. Of course, if Apple was able to draw more Java or any C# devs, a good percentage of those would explore Cocoa, so perhaps you're right in the end. Apple seems to be doing pretty well right now, so I'm hopeful. The Cocoa world is pretty exciting right now, as it can feel that you're on the frontier of something new. X-Code + Obj-C allow you to do some pretty magical stuff, and it would be nice if Apple was successful in drawing more people out here. Anyhow, I have to get back to my non-Cocoa work. :)
Sorry for the nasty comments.
Posted by: Andy Dent at October 28, 2004 04:25 AM
I'm a long-time crossplatform developer with varying amounts of Mac work since 1990.
I have to take issue with your REALbasic condemnation because I think you're condemning the tool by the actions of the hobbyists. Any opinions about a version prior to 5.5 are way outdated.
It has the best cross-platform application framework I've seen (compared to most C++ frameworks) including Linux. It is easier to write a clean UI than with PowerPlant or Cocoa.
The remote debugging is more solid than most versions of CodeWarrior have managed.
The language hits a lot of sweet spots:
# operator overloading including the equivalent of operator= and the ability to write RHS operators for arithmetic, eg operator_AddRight, but with a safer version of construction overloading that avoids many of the c++ issues
# Java-like interfaces
# the equivalent of Objective-C class categories ('extends' on the first param to a method)
# an in-language solution to the perennial problem of how to attach bits of code to event handling per-window without writing new classes all the time (events)
# strict typing required - you do have to declare all variables (although as a frequent Python developer this is no longer the big deal it used to be for me)
# reference-counted memory management (smart-pointers) which I find much less stressful than Objective-C retain/release logic. It just works!
# overriding of method lookup via operator_lookup so you can add unknown method handling (call this Objective-C, Smalltalk or Python-style message catching if you like - it's very cleanly done)
# scope control for global constants, functions and variables equivalent to a c++ namespace (but not nesting namespaces)
Posted by: nerkles at December 15, 2004 03:51 PM
Looks like the fink project has a version of mono that runs on OS X. I haven't tried it, but that's something, eh?








Jesus! I'm not completely sure what this is but I am pretty sure its cool. You should put a pdf download of this, it is huge.