Solipsism Gradient

Rainer Brockerhoff’s blog

Browsing Posts tagged WWDC

While we’re setting out on our vacation in the Central USA, I’ve been thinking about what I should write in a WWDC wrap-up post – and it’s been surprisingly difficult. Update: also read John Gruber’s excellent wrap-up.

As usual, most of the juicy details are under NDA, and I try to be careful with that. Some details about Xcode 4 and LLDB have been published, others have been leaked, and this is indeed the parts I liked most; and I don’t doubt more will be made public Real Soon Now.

I can say some general things about the sessions. While there were relatively few Mac OS X-only sessions – Damien Sorresso’s excellent launchd talk was the one I found most enlightening – to my surprise, there were many sessions that applied both to iPhone OS/iOS 4 and to the Mac. I did audit some non-Mac sessions and most of them were informative and well-presented, and I find myself quite interested in doing an iPad app.

While over 2/3rds of the developers present, supposedly, were doing only iPhone/iPad development and were new to that platform, quite a lot of Mac old-timers were present and I had great fun meeting most of them. I was also gratified to, again, being told several dozen times that someone likes and is using my RBSplitView framework.

As usual, I found San Francisco is a great place to visit – and to eat! Special thanks to Russell of the San Francisco Apple Store for helping me buy my iPad and a brace of accessories, and to all of you – you know who you are – who helped me commemorate my birthday.

Looking back over my WWDC predictions here, I was struck by how boring they were. The same sort of expectations every year, only everything was twice as fast, or large, or whatnot, than the year before. And this year, coming into a conference which is almost completely not about my main platform – the Mac – I noticed I didn’t even have enough information or interest to do the obligatory prediction post.

I was told that over 60% of the developers this year were newbies both to WWDC and to developing for Apple. This seemed, even, a low estimate; I did meet friends from years past, some of them real old-timers, but there weren’t as many as I’d expected – and almost none of the people I didn’t know, that I talked with, were doing anything on the Mac, although some said they’d try to do so sometime in the future.

Indeed, the Mac OS was conspicuous by its almost total absence in the session list, and it was mentioned only offhandedly by Steve Jobs during the keynote – only once, I think. Another, more unexpected, absence from the keynote was the iPad: this, too, was mentioned mainly regarding sales figures, and the rest of the keynote was all about the iPhone 4 and the newly christened iOS 4.

On consideration, however, it makes sense not to talk about the iPad in the keynote: Jobs is notorious for presenting exactly what he wants the press to publish, and distracting them with too many topics is counterproductive. The iPad has had its presentation a few months ago and is selling so well that they’re probably scared that more people will want one; the factories are at max, and cases and other accessories are back-ordered for days or weeks.

Also, an upgrade for the iPad might be a little premature at this point. Any new version would raise protests from those zillions of people that just bought one; the Flash RAM industry is barely keeping up; a faster CPU would need to be dual-core. Regarding the new fancy Retina screen technology, an iPad screen at about 300 dpi would be 2400 by 1800 pixels! I don’t think any mobile video chip can handle that today. iOS 4 is about the only upgrade that’s reasonable to expect to come out quickly.

The iPhone 4 looks good indeed. I don’t need a cellphone myself but the dual cameras and other goodies are tempting; I find myself wishing that Apple would go into digital cameras again. Still, to me, the real star of this WWDC is Xcode 4, the existence of which was also released to the public today; it’s a major step forward, and – as I said several times in the past – many of its features seem to have been enabled by LLVM and its various side projects. One of them, the lldb debugger, is the one I’m particularly interested in; I never liked gdb much.

Many people asked me if I, too, am afraid that Apple will drop the Mac and Mac OS X entirely in the future. Well, I certainly am not! After all, what else would you use to develop for iOS? Xcode 4, for one, seems positively need a 27″ screen for best use – I’m glad I bought a 27″ iMac not too long ago. While the iOS devices might eventually be the tool of choice for consumers to do most of what they on laptops today, laptops will still be useful, and powerful desktops will always be necessary for anything that needs more CPU or graphics power. That said, I can see the laptop line compressing to, say, two models next year, and the Mac Pro going away entirely, or at least replaced by a model seriously more powerful than the high-end iMac.

To close for today, it is safe to say that – without violating any NDA in the process – is that, at least during the next 4 days, whenever any demo hits a glitch, the presenter will ask the audience to turn off its WiFi devices. I saw it happen already, in fact. 🙂

WWDC2010: tips

No comments

Just got an email from Apple that my iPad reservation was fulfilled, and as soon as the store opens, I’ll be there to see if it’s true; I was resigned to waiting for at least 5, possibly 7 days! At least I already a good man-bag for it; not the one Matt‘s wearing in that picture, but this one:

It’s got lots of pockets and zippers, and the main pocket is almost big enough for a MacBook Air. That said, it’s not specific for the iPad, and I’ve already thought about putting in some extra padding in the bottom. But the upscale larger bags are all on back-order.

OK, now for the WWDC tips for newbies. I recommend also (or first) reading the tips from John Martellaro, Brent SimmonsMarco Arment and Peter Hosey – not necessarily in that order. There’s also Apple’s official FAQ.

  1. Come in a day early, two or three if you’re from outside the US. It’ll give you some time to get over the jetlag, explore the area around Moscone Center, and meet some people early.
  2. Pick up your badge on Sunday in the afternoon. Don’t come in on Sunday morning; although registration opens at 9:00AM, that’s when I will be registering, and I don’t want to stand in line… 😉
  3. Take care of your badge. That’s important; if you lose it, there’s no replacement unless you pay again for the entire conference. You may be able to wheedle some Apple employee to give you his badge if your name is Steve Jobs, but otherwise, it’s a huge hassle. What I always do is to bring some small cable ties. Cole Hardware on 4th Street carry them, just a block from Moscone. The trick is to fasten two ties to the badge in a way that locks it to the neckstrap, and I leave the two tails sticking out, one to a side, which keeps the !@#$% thing from flipping over (which it otherwise will do constantly).
  4. Unless you’re a legend in your own time, you’ll notice people constantly sidling up to you and stoop to squint at your badge – that’s why it’s important to keep it from flipping over. Even if you go up to someone you’ve talked to a dozen times before, they’ll do that, so don’t be offended; many geeks look alike, and geeks aren’t good at face recognition, anyway. So my tip is to make a special T-shirt for the conference. As long as it’s not too blatantly commercial and/or mentions some direct competitor, they’ll allow it – I recall one of the last WWDCs held in San José, where someone onstage at the keynote mentioned “Brand X” and the next day, all Microsoft employees showed up in “Brand X” T-shirts. Anyway, I have my shirts done at Zazzle, and I use their microfiber shirt; it’s not cheap, but it’s light enough for tropical climates, washes easily on trips, and the colors keep vivid for over a year, even if you use them almost daily.
  5. Network. Don’t be shy – almost everybody at WWDC is. Well, you’ll notice the exceptions immediately, anyway. If you’re in a boring session, either walk out and find a better one, or sit down at one of the corridor tables and talk to people there.
  6. The WWDC lunch wasn’t too bad in the San José days but has gone downhill steadily since then. Even so, the lunch is also an excellent networking opportunity; don’t waste it. Find some marginally acceptable liquids and solids and sit down at a table, and talk to people. Unless you really need to have that particular meeting right there, avoid going with your old clique.
  7. Parties. Well, you should go to at least one – I’m going to sfMacIndie on Sunday (which falls on my birthday, ahem 😉 ). However, YMMV, as they say here; most parties are too loud and crowded, unless you enjoy that sort of thing. If you go, keep your badge on and/or wear that T-shirt. There are partial lists of more parties; just google for wwdc 2010 party list. The same goes for the beer bash on Thursday evening; last year the food there was actually good, but the lines were long, and the music was loud and not to my taste.
  8. Bring a laptop and the extension cord for the charger; there are lots of outlets, but not always within reach. Bring a travel surge protector or at least an outlet splitter, so you can ask someone to share an outlet if none is free. Pack a long ethernet cable just in case.
  9. Many fellow developers will be glad to talk to you, but won’t take kindly to in-person bug reports; more efficient to send an email. If you have a bug report for any of my products, please do email. However, if you have questions about my source code, we can set up a meeting.

That’s about what occurs to me now; be sure to read the other tip pages, though.

WWDC2010

No comments

I just arrived in San Francisco a few days before WWDC, which starts next Monday, June 7. By a coincidence, June 6 is my birthday – will turn 0x3B. 😉

Let’s hope Uncle Steve has a nice present for me; I just came from the local Apple Store, where they don’t have any iPads in stock.

(This was a good question asked of me at formspring.)

So far, I haven’t done anything for the iPhone, for three reasons.

First, I don’t own a cellphone, and I find it quite difficult to write an app that I won’t use myself. I do have an iPod Touch, and I carry it with me on trips, but it seems I use it strictly as an alarm clock and as a normal iPod – the only apps I have installed are PCalc Lite and the Flycast internet radio. I look at other apps now and then, without finding any that give me that “wow I need that” thrill. (For the record, I’ve also owned the first Newton, the first Palm Pilot, and the Sony Magic Cap – all with their development SDKs – and I couldn’t think of a single useful app for them either; I suppose it’s a mental deficiency.) Also, recall that where I live there’s very little public WiFi, and 3G charges are ruinous… any app I’d use would need to work offline 99% of the time, which narrows things down considerably.

Second, the current AppStore model is extremely different from what I’m comfortable with – ideally, I want to distribute and support it myself, and be able to post updates immediately, without waiting for approval from anybody else.

Third, my main interest is in writing utilities – applications that extend or change the way “the system” or other applications do things. There’s no space whatsoever for that on the iPhone, and it doesn’t look like there’ll be space for it on the iPad for now.

That said, I do plan to attend WWDC 2010 and it’s possible that until June I think of some mainstream application that I’d like use myself. The larger screen could make all the difference. Send in suggestions!

Re: WWDC 2009

No comments

Ted Landau of MacFixit fame interviewed me last Wednesday and the interview is up now on the Mac Observer. Many thanks to Ted for this opportunity to get word out about the upcoming Quay plug-in SDK.

A few small corrections:

…I also had a job working with the Macs installed at a medical equipment company…

what I said was that, at that company, I designed medical equipment based on a Mac-like architecture (68K processor and all) and used a Mac as a development workstation.

…The staff here at the WWDC have always been helpful, although probably a bit more so back in the 1990’s than now…

I actually was referring to the people at developer relations, not at WWDC, and the situation is reversed; they’re a bit more helpful now, since in the 1990’s they hadn’t quite gotten their international act together, and I depended more on personal acquaintance with some of the Apple folks.

Re: WWDC 2009

No comments

The conference will be over tomorrow and I’m quite satisfied with the outcome. Now for some comments about the announcements and (NDA permitting) about what I learned.

I had some vague idea of going to some iPhone sessions and letting presenters (or friends developing for the iPhone) convince me that I should start developing for it. No such thing happened; session overlap was so severe, and there were so many labs to go to, and people to talk to, that I skipped any non-Mac session or discussion. What little I heard in the corridors confirmed my notion that the current state of iPhone development and the AppStore deviates too far from my preferred position as a utility developer – a niche Apple still keeps closed on the iPhone. Maybe when the tablet comes out… icon_neutral.gif

Speaking of tablets, while everybody agrees that one is in the works, it seems to be a year or so away from announcement. (Ditto for the new CPUs I hinted at, in my last post.)

Snow Leopard is the small new thing. Small for the user in a sense; it’s just refinements and greater speed. For developers, though, it’s the BIG new thing. And, as variously described as early as a year ago (can’t find URLs right now), much of the new stuff is driven behind the scenes by open-source projects Apple is driving: the Clang compiler, the LLVM back end, and the technologies made possible by Grand Central Dispatch, blocks and OpenCL. So, most of the sessions either expanded on this directly or offhandedly mentioned “there’s an API for that now – and it’s fully XYZ-enabled” (insert one of the technologies above).

These things have become possible because CPU chips had run into a clock frequency “sound barrier”; 3GHz is about the maximum current silicon can do without extensive and expensive cooling or exotic technology. So multicore has become the solution du jour: all Apple computers now have at least 2 core, and the top machine has 8 (16 virtual). Expect that number to double every 2 years, at least.

But for years multi-processor machines were hard to program. About 14 years ago, at another WWDC I bought a Genesis MP 528: this Mac clone had 4 PowerPC 604 processors running at a blistering 132MHz. It didn’t have much caching on those chips, and only Photoshop and a few other specialized apps could see more than one CPU, and that only for image filters. In two years the first PowerPC G3 CPU card, with a single processor but caching, running at 300MHz, had about the same Photoshop performance – and that performance was then available to all apps. So why didn’t more apps take advantage of the 4 CPUs? The classic Mac System 7 (to 9) had no easy way to allow for this; there was a very primitive multiprocessing API but the system was pretty much locked out of it.

As said in the keynote, Snow Leopard will support only Intel Macs; PowerPC Macs are, therefore, stuck in the Leopard era, and only some few bug fixes will appear on 10.5, then it’s over. I couldn’t find hard figures comparing the installed base; I’ve seen percentages quoted of between 10 and 35% of Macs Macs still in use being PowerPCs. I personally didn’t think this would dip below 25% before 2011; then again, as a stockholder, I’m glad Apple sold so many new Macs recently… icon_wink.gif

Some people question why PowerPC users will be left out of the Snow Leopard advantages, and I think I know why. While the top 4-CPU PowerPC machines still can hold their own with more modern machines under certain circumstances, the vast majority of PowerPC Macs have only 1 CPU; only a few big desktops have 2, and even fewer have 4. Most advantages of Snow Leopard come into play when you have at least 2 CPU cores, and there’s serious testing and bug fixing to be done for supporting an entire architecture. Apple probably just weighed those factors (with better numbers than I have available) and decided it wouldn’t work out.

Positives of the new Clang/LLVM combo: better compiler speed, better code optimization – both still starting out but they’ve more power in reserve, while the current gcc compiler and backends are pretty much maxed out; way better error messages, the Clang static analyzer is just awesome (a word I usually hesitate to use, but this really is!); lots of goodies to come from tighter integration with Xcode. Negatives: may still generate wrong/inefficient code in some circumstances; no C++ support yet (I don’t care myself about this one).

A sleeper advantage is, also, that the intermediate (LLVM) bytecode generated by Clang could possibly be stored as such inside executables, and be just-in-time compiled for execution on any target CPU. In other words, the same executable could run on a new machine Apple puts out, even if it has a new CPU chip/architecture, as long as the JIT compiler is in place for that; application developers wouldn’t have know (or care).

Regarding blocks (or “closures”, as they’re known in other places), they’re a syntactic convenience for programmers to pass executable code as data. As such, they make programs more readable. What makes them inordinately powerful in Snow Leopard is that they’re also the basic executable units for all of the cool new multiprocessing stuff in Grand Central Dispatch. Therefore, with a little discipline, it becomes easy for developers to chop up tasks into little slices than can be executed in parallel by however many CPU cores (or, with OpenCL, GPU units) are available to do them; and for the first time anywhere I know of, this facility is available throughout the system, even at a quite low level.

So, am I running off to convert all of my code to the new technologies? Well, yes and no. Many things still have to be done in a serial manner, and the system will do others in parallel behind my back. Also, it seems that writing a generic application that runs on both 10.5 and 10.6 (using the new stuff) is tricky; I’m still investigating how to best do it. Stay tuned for developments…

Re: WWDC 2009

No comments

So much for regular posting; either no connection, or too much to do when I have one.

Still, everything else’s been good so far. The weather’s been quite good for San Francisco, though a little windy at times. I met a lot of old and new friends already and took some more nice pictures of downtown San Francisco.

In a couple of hours I’ll be in the WWDC keynote queue. Most speculation I’ve read so far has been about iPhone hardware/software, which I’m not too interested in. However, one nice rumor I’ve heard is that they may unveil a highly scalable CPU from the PA Semi group Apple acquired a year or so ago; one or two such chips could power the iPhone, with (say) 32 in a laptop, 128 in a desktop, and 8 or 16 in a hypothetical tablet. Will a tablet be announced? No idea, though I hope so.

Regarding Snow Leopard, I think the most likely announcement is going to be about price and availability; my tip would be between $39 and $59, and September/October. The rumored “Marble” interface theme sounds unlikely to me.

That said, I’m very excited about the things in Snow Leopard’s underlying technologies, but those are visible only to developers, anyway. (Also: NDA…)

Photos licensed by Creative Commons license. Unless otherwise noted, content © 2002-2024 by Rainer Brockerhoff. Iravan child theme by Rainer Brockerhoff, based on Arjuna-X, a WordPress Theme by SRS Solutions. jQuery UI based on Aristo.