I'm out in Salt Lake City right now, attending Novell's Brainshare. Well, admittedly Brainshare hasn't started yet, so we spent the day skiing, and will shortly be going to a press dinner. Despite not having gone skiing in many years, I managed to fall over only twice, both of which were in the last 10 minutes when my muscles had basically just given up!
I haven't blogged in a little while; I've been caught up with some phone programming. Speaking of phone programming, is the iPhone SDK the most hateful thing known to man, or do Reese's Peanut Butter Cups still hold that honour? Part of the problem is Objective C, which is compounded by videos of Apple engineers saying that Objective C is a thin layer on top of C. Well, I'm calling shenanigans: Objective C is almost as cretinous as Lisp, and looks almost nothing like C. When you look up flame wars between C#-ites and Objective C-ites, the ObjC people say thing like this:
"In C# you create a circle like this: "Circle foo = new Circle(5, 5, 15);" How do you know what the 5, 5 and 15, do, huh? Surely Objective C is better because you can write "[circle createWithRadius:15 withCenterAtX:5 Y:5 ]" That's much clearer!"
This confuses me greatly. I really dislike internet flame wars, but some day I'm just going to snap, and I'm going to post a message along the lines of "I know what the 5, 5 and 15 do because I don't have a brain the size of a squirrel." I hate typing stuff. Code completion means that as soon as I type a method name, I get a full list of parameters for the method, so I know exactly what it does, but I knew what it did anyway because I've used it a thousand times before and don't really want to do everything in longhand.
So, Objective C is a problem for me. You can use a thing called Objective C++, which is a blend of the two languages, but this still isn't good enough because - at least as far as I've discovered in the three projects I've made using the SDK - you can only use C++ for the Model and Controller aspects of your app; the View (the bit that interfaces with Cocoa Touch) still needs to be written in Objective C, and makes you want to weep and gnash your teeth. The Hello World example Apple provides with the SDK is over 120 lines of code, and yet virtually everyone is crowing about how the iPhone SDK is amazing and wonderful and impossibly cool. Yes, I'm aware that fanbois come into this, but it still irks me.
What *is* amazing and wonderful and impossibly cool is the App Store idea. You make your app, send it to Apple, and it gets put onto iTunes, where millions of iPhone owners - desperate to justify their overpriced contract - will almost certainly splash out big time to buy things to show off to their friends who don't own iPhones. So, I believe there's big money to be made with iPhone development, but only if you're willing to pay the price of headaches and an SDK that makes PHP look neatly ordered. As a side note, one big bonus of the iPhone SDK is that I think it's finally going to kill Java on mobile phones. With .NET on Windows phones and iPhone SDK on the Aspen platform, Java is going to be relegated to second-class-citizen status, and about time too. Java language = ace. Java platform = hideously slow, even after ten years of work. Or am I the only one who inwardly groans when their browser locks up for five to ten seconds because a website is loading a Java applet to do something inane such a a page counter or image rollover? Android is Java's last hope, and I'm not impressed so far.
This has - purely by accident, I assure you - turned into a bit of an iPhone rant; my apologies for that. To steer things back on track, let me talk about what I hope to get from Brainshare. It's a yearly event, attended by many Novell employees, partners and customers, and from past experience seems to be part pat-on-back ("aren't we great!"), part putting heads together ("how can we make more money?") and part training for end users ("look how much better your life would be with such-and-such product!") Not entirely unlike Red Hat Summit, except I expect the latter is a bit cooler.
So, what I really want to find out today is this: why is Novell really relevant today? Home users tend to use Ubuntu. Red Hat has a tight grip on the server room. OpenSUSE has really struggled to find a place for itself in the last few releases, partly because the Fedora team are getting really aggressive with their releases and partly because Ubuntu just keeps focusing on looking pretty (which for most people is all they want), leaving SUSE in the undesirable position of standing on tip-toes squeaking "pick me! pick me!"
Of course, what Novell does well is services - providing Linux solutions to companies who think that signing a patent protection act with Microsoft makes good business sense. Here Novell holds the best position around, leaving Red Hat to shuffle increasingly towards Stallman-esque zealotry. Now, if I had to choose between those two, I'd go with Red Hat every time, because I actually have a lot of respect for Stallman and his hard-line stance on software freedom - he might get a bit ranty now and then, but he's always honest, always sincere, and always aiming for the same goal he always has.
Novell's developers are doing great things for Linux, but I think a few of them (particularly those who really care about Free Software vs Open Source) are starting to have second thoughts about the company's direction. Jeremy Allison left for Google a while back. Robert Love did the same. Miguel de Icaza took a break from being the internet's favourite flame target and said he actually regretted the MS patent pact. I don't know where some of the other uber-hackers at Novell stand (Friedman, Greg KH, Meeks, etc), but I'd like to think they have their own private reservations. I'm meeting Miguel on Tuesday, but only for half an hour. I wonder whether his minders are limiting press access for the time being ;)
This has now turned into a Novell rant, so let me tie it up with this: I think Novell needs to be very, very careful, otherwise soon Sun is going to be able to beat it at its own game. If Sun can manage to back-end VirtualBox to Xen, they've got a killer app on their hands. And of course, there's MySQL, which continues to show up Oracle across the world. I think Novell may already realise this threat - today I was listening to a Novell chap explain to someone why Sun's new ZFS filesystem throws out years of Unix heritage, and therefore isn't good. Rubbish! And gratingly annoying rubbish too, because SUSE spent years thrusting ReiserFS on us all before realising that very few people actually wanted it.
A few last things:
- Hello Hilton staff! Demanding payment for WiFi internet access is not something considered acceptable in 2008. Look around: every cheap motel around offers free WiFi, so why do you still treat it like some sort of executive privilege rather than a basic need of mobile computer users?
- Hello Heathrow Airport! Why, why, why do you have 20+ shops in Terminal 3 selling women's shoes, handbags, and jewelry, and only a handful of shops selling anything under £50? If I wanted to shop at Armani or Versace, I would do so in London. But I am in an airport, so I am likely to want useful things, such as travel kits, entertainment and such. Go to Chicago airport and you'll see dozens of restaurants, but Heathrow Terminal 3 mostly does away with such frippery, because obviously what you want at an airport is a large stall selling caviar. No, really.
- Hello small children who ski much better than me and seem hell bent on making that clear at every opportunity! Damn yoooooooooooouuuuuu! (note: this is just bitterness talking; I think kids learning to ski is awesome)
- Hello nutcase man who says Linux is great because "it's fun to change all the settings, break the system, then have to go to recovery mode to repair"! There are many things I would like to say to you, but I'm afraid I've hit my two-rant limit in this blog post, so instead I shall let these two comments from the linked post speak for themselves: "The windows kernel is compiled for the lowest common denominator and doesn't take advantage of all of the features in your hardware." (AMD64, anyone?) " On Compiz alone I spend hours customising and playing with various effects." (I think a lot of people do this, but they do it once, then spend hours *uncustomising* it so they can actually get some work done - wobbly windows and maybe the cube are generally all that survive!)
- Hello Steve Jobs! Your SDK is the work of Satan. Deuteronomy 28:24 was quite possibly addressed directly at you: "The LORD shall make the rain of thy land powder and dust: from heaven shall it come down upon thee, until thou be destroyed."
Er... oops, I think I steered back to iPhone-baiting. Time to get changed for dinner...