PS. Get me in your feed readers! 'Surfing' is so 2004.
First off, on his only Canadian stop, Bill Gates stopped at Waterloo. Of course, being such good friends with the Big B (well... at least with his underlings), I got a special invite. A good thing too: this event was unbelievably hard to get access to unless you were one of the lucky few to exploit their connections to get tickets through a student society. I heard there was a waiting list over 5000 people!
Still, for such an anticipated talk, BG didn't say much of any noteworthiness. It was essentially a big public relations move. It worked; I appreciate that he came here to "rally the people to his cause" so to speak, and can appreciate that he needs to do so if he wants bright students to come work for him.
The questions are where the useful tidbits came out, including his opinion of open-vs-commercial (commercial will be the value-add on the open base? that was my interpretation of his answer), the issues of format proliferation (standards tend to emerge eventually anyways), and the need for programmers to understand hardware vs abstractions, and practice vs theory ("it depends").
The executive summary: software is good, software will be what drives all the cool tech of the future, and we should do all the good software we can.
Entertainment: A short comedy video of BG with the guy from Napoleon Dynamite (I think; I never saw the movie). BG playing Project Gotham on the XBox 360. Badly. A neat application of a "smart-space" style table which interacted with a projector and his cell phone.
Of XML fame. Now with Sun, as Director of Web Technologies. A much more technical talk, addressing the "five big open problems in network computing". In my opinion, it should have been "five big problems for developers: IDEs, debugging, bloated standards, naming, and XML". But, all creative re-interpretation aside, his five big open problems were:
- Parallel computing: since processors are growing more parallel instead of faster, how do we compile legacy apps, write new parallel apps, and debug parallel apps?
- Web services: how do we do this well without overloading on the glut of beastly oozing standards?
- Dynamic languages: how will we make IDEs, efficient VMs, and all the other goodies for dynamically typed languages?
- Syndication: how do we get people to agree on a format and protocol, and can we use it for more stuff?
- Storage: can we move stuff more into a distributed redundant network with lots of RAM and bandwidth, then just forget about disks? Will we use in-memory databases, or something else?
Not all these problems are all that "open" really. Really it's more along the lines of getting people to agree on which of many techniques to standardize on to close them.
And he called PHP a kludgey hack. HOORAY! I was about to mock him relentlessly for supporting dynamically typed languages until he said that. Perhaps PHP is the exception instead of the rule? I'll have to go try Python or Ruby sometime.
Name filtered, since she's not world-famous... yet. The most technical talk, talking about the use of Ecological Interface Design in the design of interfaces for a power plant's turbine systems. The opposing approach is User-Centric Design, I think. The key metric for this research will be "situational awareness", itself a novel evaluation criteria. I apologise to the presenter if I've already butchered it.
It was the most technical talk of the day. At the end of the day, no matter how much these evangelists say the tech is good, J.K. was the one I felt had done the most USEFUL WORK recently to make technology a reality. But that's just me. I didn't need convincing to know that technology is good, but I could certainly use better interfaces, especially on my computer.