2007/06/16

WWDC: Oh what fun I had!

So the WWDC is done and I am on my way home. This post is my wrap up of the experience: what I thought, what I learned, and what I recommend.

The Keynote


I saw a guy with this little LED badge that scrolled "Worst Keynote Ever." Very Comic Book guy. I'm not sure it was the worst. On the other hand, this is my first Keynote I heard in person. I think people's expectations were too high. In January, Steve hinted at all these "secret" Leopard features that couldn't be announced yet. Leopard then got delayed because of the iPhone. As a result, there was a lot of high expectations and the "10 of over 300" features schtick failed to impress. Most of the 10 were features announced at Macworld in January. So people kept muttering "please, be big, be big" each time the slides changed and they were mostly disappointed. The new desktop, while cool, wasn't something that shocked and amazed. I think it is actually very cool, but in a subtle, "grows on you" kind of way.

And then there was the fact that all the rumor mills were feeding people something they wanted to hear: that an SDK was imminent. Well, it wasn't. You make web apps for the iPhone through the built-in Safari browser. People were very upset. How are you going to get at the camera? No file uploads? No Flash (think YouTube, MySpace, etc)? A web app? What?!?

Anyways, what I'm saying is that I think there was quite a bit to be happy about, but that most of it was mentioned at Macworld and people had come with some seriously high expectations. Sure, I was thrilled to get an "almost ready for release" seed of Leopard. But all of us were developers—we would have gotten the new seed eventually through the ADC. What we had all secretly hoped was that Steve was going to tell us there was a booth down stairs selling early release iPhones to us all. We didn't really think it was going to happen, but we seriously hoped it was going to happen. Like someone who goes to the Oprah show and really, really hopes it is the Oprah-giving-away-cars episode, we all hoped to be walking away with iPhones. So crazy high expectations were met with a "reasonable" WWDC Keynote, making for some disgruntled developers.

Seriously, with the Leopard release coming soon and the iPhone imminent, how sexy can you make a retooled desktop and some developer APIs? I thought it was all cool, but there was no way to meet those expectations.

And about the iPhone


I think the whole "develop web apps for the iPhone" approach is crazy—like a fox. I'm ticked I don't have access to the native apps, but not surprised. I expect to have JavaScript hooks or an SDK in a year, once Apple has secured their footing on the whole iPhone product line.

Now here's the thing: while the iPhone is sick-awesome, no one sits down at a corporation these days and says, "Let's make a client-server app". All corporations these days make web applications. All of them. So for all those people who had said, "The iPhone's worthless for business," Apple just handed you a big helping of smack-down-a-roni. Being able to use your corporate web apps on the iPhone with some simple CSS tweaks is a seriously good strategy. I think corporate customers will be very pleased when they think about: seriously, with a few tweaks any bank not using stupid IE tricks could offer their customers on-line banking anywhere they have AT&T cell coverage. That's pretty crazy!

Does this strategy work for consumer apps? Not so much. Apple needs to code up some ways to save local state from within the iPhone Safari browser before this strategy will work for consumer apps. Here it falls down, especially if you are a game developer or a Cocoa-superman. If you can do crazy cool things with ObjC, you are not very happy about this announcement. And if you are a JavaME developer, you are now truly depressed (that's me—oh well).

Give Apple some time. I suspect the "use a web app" is a stop gap measure. I expect APIs and SDKs next year at WWDC. Those APIs may just be JavaScript hooks at first (allowing your web app to tap native apps), but something will come out in time. But it would not surprise me if you have to pay some ludicrous developer registration fee to get it or to get your app on the phone—that's what all the carriers do now. I'd like Apple to be different, but I don't expect it.

Exciting Leopard Features


I'll tell you what: I am all over Leopard. As soon as I can figure out how to get Eclipse working on it (it doesn't—I logged a bug about it), I'm there—beta or not. While I found the Keynote a little underwhelming (I wanted an iPhone!), that doesn't mean the new stuff isn't uber cool in its own right.


  • Time Machine

    Simply put, it will be the biggest "stealth" seller of Leopard. Spotlight is great, but no one really knew that they needed it. I mean, the feature made sense, but most people just shrugged and thought, "Big deal." But use Tiger for 6 months and then try to go back to Panther without Spotlight and you suddenly miss it (a lot). I think the same will happen with Time Machine: with the first time it saves someone's bacon, it will become a cherished and much heralded feature.


    Me, I'm upgrading my home network now for it. I plan to buy a couple of 500G drives to connect to the 1G network. My wife and I need more space for movies and such anyhow; we'll just start using them now and use them for Time Machine when Leopard comes out in October.

  • Xcode 3.0, Objective-C 2.0, XRay, and DTrace

    I don't develop Mac apps. I will now. This stuff is awesome. In every session, my only regret is that I don't do ObjC apps now, so I could use the features. It's some seriously cool stuff. The changes to ObjC 2.0 are pretty great; I think they'll make it a lot easier for people to get into ObjC if they don't know it already. And Xcode 3.0 is just great. All the stuff I found confusing or limited in 2.x they have fixed—and they have added some great features to boot.

  • Core Animation & Core Image

    I'm just flat-out stunned with the kind of apps you can write for the Mac. These two frameworks are amazing. I don't know if I'll ever leverage them fully, but I am sure going to try and find some time.

  • Memory Protection, Sandboxing, Finer-grained Locks, etc.

    Leopard has a whole ton of improvements in how the kernel is put together and how it works with apps. Simply put, Leopard is going to be harder to break and perform a lot better than Tiger (and Tiger was a huge improvement on Panther). Awesome job, Apple!

  • New Desktop (especially Quick Look)

    Ok, no one was really awed by this in the Keynote, but everyone who had a seed installed got used to it very quickly and missed it when they went back to Tiger. Quick Look and Cover View seem to be this incredible combination that you wouldn't have guessed would work so well. Toss in Time Machine and you have just an incredible way to work with files. Oh, and they fixed the broken Finder refresh in Tiger with FSEvents. Most excellent!

  • Dashcode

    I brought this up in the presentation, but this is just a killer Web 2.0 dev app. If I can get it to work with non-widgets, I may start working with JavaScript :-)



My tips for next year's newbies ...


As a first time WWDCer, I have a few tips for the next year's newbies:

  1. The Keynote line starts early. I arrived at 7:30-7:40, and there were easily 1000+ people already queued up. It was my understanding that people arrived early, waited outside Moscone, then immediately went in, registered, and then got in the new line in the main conference area. So arriving at 7:00a ain't going to get you any great seats. If you want to sit really close, you need to get there early. Me, I'll settle for arriving at 6:45-7:00a next year and maybe getting in the first 500-1000. I figure I can get into one of the first sections if I am willing to sit in the middle somewhere.

  2. Apple provides food (of a sort) for every meal except Wednesday dinner and Friday dinner. So if you are coming on your own and trying to do it cheap, you should have all your meals provided. And they really aren't too bad (the morning stuff is pretty dry, but just wash it down with some coffee and you're good).

  3. Bring good "standing" shoes. I spent so much time standing in lines it was crazy. I mean, the Keynote: yes, we expect that. Some random session on using Cocoa? What the heck? The "line nazis" are a real pain and they will insist on making you stand in a line for no good reason.

  4. The lunch sessions are good. Even when they are on topics that may not be about what you are working on, they are worth the effort. There was only one so-so session (the speaker almost put me to sleep), but the content was great and I hung in there for it.

  5. On the topic of topics and work, don't plan for yourself a track that is all "work relevant". Go to some stuff that is outside your immediate concerns. Apple has some crazy stuff, and you can find out about it by going to sessions you might not normally think of as "useful to you". I'm not a graphics guy, but the Core Animation stuff was just amazing. I'm really glad I went to the WebObjects session, even if I'll never use it—I learned about some interesting ways of solving the problems I solve every day from another technology.

  6. Eddie Rickenbacker's is a fantastic place to pick up a pint and a burger. Check it out on Wednesday or Friday.

  7. Buca Di Beppo has fantastic Italian and a lot of it. If you have a large party and are looking for a good place for grub, this is a great spot. Get there at 6:00ish if you can—it starts filling up quick. Oh, and the Men's Room gets a big thumbs up—the art is very "inspirational" :-)

  8. Bring either lots of free HDD space or a spare firewire drive. You are going to want to install stuff (say the new developer release of OS X), and you're going to need space to pull it off. In my case, I had neither and it turns out there was a Carbon bug in SWT on Leopard—which meant no Eclipse, my tool of choice for bringing home the bacon. Don't expect to buy one there: everyone else does. The Apple store and the CompUSA were both sold out. Yeah, WWDC attendees can be a little bit like technological locusts.

  9. Go with friends or put on your socializing hat (or both). The WWDC is getting big, and it makes it hard to strike up conversations if you are shy. Bringing a geek buddy can make it a bit more chummy. Me, I just struck up conversations when I heard interesting conversations in progress or I started my own—but then, I'm a chatty dude.

  10. For the love of all things sacred and technological, bring some freaking business cards. I ran into 4 separate people who didn't have them. That's almost half of the people who I exchanged cards with. VistaPrint makes it insanely easy to have good quality business cards. Go get some and make sure to bring them. I found I handed out about a dozen. I'd say 50 is more than enough, even for the social butterfly.

  11. Be nice. Sure, Apple might not be doing what you want or making exactly what you want. Sure you pay them money. But that doesn't make them your vassals. Be polite at the mike and you'll get more bang for your buck—err, question.

  12. Bring cash for Apple apparel. You know you want some cool Apple shirts. Wearing Apple shirts all week is definitely a fashion statement (of a sort). I got lots of complimentary stares on my "I'm cuckoo for Cocoa Apps" shirt.



In Summary


I had a great time. I am definitely going back next year, armed with more experience and knowledge about how to get the most out of WWDC. And hopefully I'll have some Cocoa apps of my own to show off (who knows, maybe even enter for the design awards?).

2 comments:

Peter Michaux said...

> I may start working with JavaScript :-)

Noted!

Glad to hear you had a good time.

GlenPeterson said...

This sounds fun and inspiring! If you were only to go to one technical event a year, would this be it? Why? Would you recommend it for a programmer even if they don't own a Mac? Why?

I'm new to this blogging thing, so if this is a dumb comment, just email me instead.