I recently ran across a weblog discussing the demise of the hobbyist/enthusiast computer book. The average tome seems geared toward techies - or wannabes, in many cases. The blogger's point resonated with much of what I've been dismayed with for years. Put simply, it seems that programming - working with computers - has become harder, not easier over time, and that this is the grand failure of the technology. While I've felt this way for years, my recent readings of and about Alan Kay have reinforced my dismay.
It seems that there is a disconnect between "using" a computer and "programming" a computer; not in function, but in difficulty. Ordinary people do very complicated things every day (i.e., perform a search on Google), yet moving beyond the "basics" can be extremely challenging. Moreover, productivity tools with flashy GUIs look like they would make things easier for the would-be developer, but instead may add to the levels of difficulty. There is a recent article in Dr. Dobbs Journal discussing a plug-in for Eclipse that simplified using the application since the complex sets of toolbars and buttons presented to the user could be more scary than a blank UNIX command prompt. Personally, I don't know that a command prompt is daunting - one just needs to
know what to say.
The unfamiliar is daunting. How we interact with a computer today is limited by how we did so yesterday. In essence, we build a box. This reminds me of reading Dryden, Milton, Chaucer, etc. One must study the first 20 or 30 lines before one gets the "hang of" the language. Read more the next day and one can get "into" it right from the start. Of course, stay away from it and there will again be a brief session of "getting to know one another again." Yet, the second time around, or when one moves to other poetry from a similar time, in a similar genre, there is an advantage: experience. With a background knowledge, one can quickly begin building internal and external references, criticism, etc. Once one has read a few of Blake's poems, "The Marriage of Heaven and Hell", "Visions of the Daughters of Albion", and "The Book of Urizen", then one can more easily attempt a work such as "The Four Zoas".
These texts are complex and rich. Not necessarily kid's stuff. Developing an application using the Apache Software Foundations products such as Maven, Cocoon, and/or Avalon is likewise complex, rich, and "not kid's stuff." However, a quick look at Squeak or VisualWorks, derivatives of Smalltalk - a language, as the name implies, written to be a David in a world of Goliath's; a language easy enough, as Alan Kay hoped, for children to develop relatively complex applications in it - demonstrates that complex and rich does not need to be opposed to ease-of-use.
Part of the solution lies with the developers and the evangelists. Those books showing eager kids writing software, not just playing games or using the web, could make a comeback.