Tuesday, October 16, 2007
Thursday, October 11, 2007
The other day at a conference (ReMIX07 - what a great event) a couple of us had a brief chat about the old days. I think it was started by one of the speakers talking about managed code and garbage collection as if they were both new and part of object oriented programming. Of course both have been around for decades and pre-date object oriented programming by many years. BASIC-PLUS ran on a virtual machine and had garbage collection back in the 1970s when I first started using it.
This all started me thinking about the old days. I guess that is a sign that I am old. I hear people talking about being in the field for 20 years as if it were a long time and think "wow it's been a long time since I was only 20 years in the field." I read yesterday that 66% of Microsoft employees are under 40 years old; 18% under 30. Since I started programming in 1973 I suspect that something like half the employees at Microsoft are younger than my first computer program. Somehow I find that scary. But I digress - perhaps another sign of age.
At ReMIX I was hearing about a lot of exciting new technologies for software development. Silverlight for managing media. The Expression Suite of tools for design for user interfaces in all sorts of applications. WPF (Windows Presentation Foundation) for enhancing the user experience of client applications. Popfly for mashups. The list goes on and on. Don't even get me started on new dynamic languages like Ruby and Python. On one hand it is a very exciting time to be in the computer industry and in software development in particular.
On the other hand part of me longs for a simpler time. The introduction of the CRT as a viable tool started this mess off BTW. Before that most input was done in strictly formatted punch cards. It was all about getting the data in a form the program could digest easily. Oh sure we still had to validate data but getting it is was easier. And output was also simple. Your choices were basically to print a report on a line printer, punch things to still more cards or write things to a tape of disk in a format that was arranged a whole lot like that on a punch card. Input and output was simple.
Giving everyone their own terminal with a screen complicated everything. I don't miss having to specify the X and Y coordinate for every object (and I use the term object loosely for what we did in the early CRT days) on the screen. Windows Forms (which I first discovered in Visual Basic) were a huge advance and remain quite simple to use. Still once a program had to care about the user the door was opened for the need for real designers.
I guess my hope at this point is that people will use tools like Expression and WPF to allow designers to design and set up the user interface. That should let programmers deal with the easy stuff. The stuff that for me is more fun - working with the data.
In the mean time I sometimes feel a little overwhelmed by all the new stuff. It's great and it will make things better for the users of course. But I can't help but think that in some ways all this growth in tools, in options, in the whole field means that computing is becoming more and more a young person's job. I'm running as fast as I can to keep up. At some point one has to specialize I think. A little simplicity in the way of a narrower focus may be the best path to continued sanity.