« Radio on the Internet | Main | WWDC 2003 »

Ken Arnold MacHack keynote

Well, last night MacHack started, and keynoting was Ken Arnold. He delivered what was clearly originally two presentations that had little to do with each other. He was at least using a PowerBook to do the projection even though his content wasn't Mac-related.

"If it's that complicated, something must be wrong."

His first talk was about the design of objects in a system. At first, he went on a minor ranting spree, working his way from UML ("What's easy to draw? Circles, Xs. Not diamonds. Or drop shadows.") to XML ("And now that things are ten times slower because of the parsing, they're working on an binary version of XML!"). Working from the principle of "the perfect is the enemy of the good" he tried to apply the techniques of good UI design to objects.

His main example was the JButton from Swing. It has... about 300 public methods. No one uses about 80% of them. So why not split them off? Make a ButtonKnobs class, and a getButtonKnobs() function on the button class so that anyone who needs to do advanced button tweaking can, but the 99.44% of developers who don't can ignore the massive number of functions to control settings where they couldn't before. It's a great approach, and I'll certainly try to use it on my projects, but I seem to currently be stuck in other people's designs that aren't nearly as clean.

His second presentation was on Jini, an introduction. It's talking about devices on the network and how they can talk to each other. If you code a wire protocol into a device, then every new device has to interoperate with every old device, and eventually you get choked on the combinatorial explosion. So how do you cope? Realize that the wire protocol is just an implementation detail that the clients shouldn't care about. Design a clean interface, and have the target device send to the sender some code to implement that interface that talks the correct protocols, etc. Make that stub that's sent Java, and that's Jini. It's fundamentally simple, I guess. I'm still a bit wary about other code running on my devices, but I guess that his point about it all being sandboxed is correct.

Q&A focused mainly on the first part. Programming principles and object design.

"Any architect who doesn't code isn't worth shit."

q Agile programming have same goals. Successful at improving situation?
a Sure! He has some issues with it, but in general the strategy's purpose is sound

q about rogue

q what up to?
a Chief architect of Event Monitor, for hedge fund monitors. Does consulting for several Jini companies.

Comments

Who won machack and what was it?

Post a comment