I have been interviewed on how to become a (real) computer scientist…
Programming
On living software…
I’ve just come across Steve Yegge’s latest rant on the fact that most software is crap!
He then names some software which are not crap and tries to identify which caracteristics they share and…… BANG! They are all living!!!
According to Steve,
“Living software has a command shell, since you need a way to talk to it like a grown-up. It has an extension language, since you need a way to help it grow. It has an advice system, since you need a way to train and tailor it. It has a niche, since it needs users in order to thrive. It has a plug-in architecture, so you can dress it up for your party. And it is self-aware to the maximum extent possible given the external performance constraints. These features must be seamlessly and elegantly integrated, each subsystem implemented with the same care and attention to detail as the system as a whole.”
The software becomes a living entity because it does not need to be rebooted. The software can be customised, enhanced, corrected, changed (whatever…) at runtime.
Philosophically, I’m 100% with him… but, technically speaking, building a living software is a big challenge.
And how am I going to teach this to my poor students?
An update: Keith Braithwaite has his own opinion on this and, for him, the essential property is that “[i]t’s about being [able] to interact with computational objects (“object” in the broadest possible sense) in the same way you interact with physical objects.” Essentially, all the “objects” in the software become as accessible and tweakable as any Smalltalk or Squeak object.
Now I know how I’m going to teach my students how to build living software: I’ll let them play with Squeak!
What do you want me to talk about?
Update: Here is the presentation I made in HTML format and in Open Document format.
I will give a short technical presentation of Mac OS X this coming Saturday 13th at the LinkByNet office in the A1 building at Vacoas as from 10:00. This presentation will take place during the Linux User Group of Mauritius monthly meeting.
Now, I can talk a lot about the Mac and Mac OS X (both from an “envangelism” and from a technical point of view) but I don’t want to be too long and, hence, boring.
I’ve, with the help of some other people, identified the following topics:
- History of the Mac and of Mac OS X
- Apple, Mac OS X and Open Source Software
- An overview of Mac OS X and common applications
- An overview of digital life and iLife
- An overview of some interesting third-party applications
- Technical caracteristics of Mac OS X
- Administering Mac OS X
- Software development on the Mac
- etc. etc. etc.
(PS: I’ve highlighted the most probable topics I’ll touch tomorrow…)
As I’ve said, I want to do a short presentation (1 hr max) and therefore I won’t be able to cover all those topics. Help me choose the 3 most interesting topics. Of course, you can propose new topics…
Be quick! I need to finalise everything tomorrow.
Thanks.