I was very skeptical coming into OSCON this year and electing to stay here for 4 complete days when I only have a 45 minute session on wednesday. Particularly, given the smaller number of tracks and audience for Java at OSCON.
Then I attended the evening speaches organized for today between 7 and 10pm. I am sure many would question my sanity of sitting in a chair voluntarily for 3 good hours at that time. I wanted to hear Larry Wall. So that tipped the balance. This may not be what he said word for word. But this is what I took and remember from the speach as I am sitting down now at 11:30pm and trying to write the finer points of the speach down.
The talk is called "state of the onion". Not being a perl programmer I am not sure of the connotation except that it may be somewhat related to perl, and perhaps relating to the new releases of perl.
Every topic he wanted to talk about he introduced a screen saver to provide a metaphor and a visual cue. This worked very well, I believe, for multiple reasons. The movement and colors in the screen-savers provided an extra stimulant to the audience. This variation between his speech and the changing well chosen images kept the speech interesting through out.
He said that perl is in good hands going forward as he pointed out the structured thinking of Damian Conway and how he can navigate the logical labyrinths with precission and decissivenes. Ofcourse he referred to this with a friendly jest. In the same vein he mentioned how his creating thinking process jumps around and always in a constant flux. This fact is fascinating to me. I think this idea of uncertainity or rather the possibility of other choices is a side affect of the creative process. Creative process needs these multiple-choices all the time to invent new or different ways of doing things. This apparent inconsistency arises because the mind is actively seeking various ways of doing things. He also brought up the point how he jumps in the thinking process from one cluster of ideas to another cluster of ideas in a very random manner.
He narrated then his bouts with hospitals soon after last year's OSCON and made it equally interesting through the screen savor metaphor. It goes to show, and stays as an inspiration, that despite the traumas and travails of everyday mundane life, creative minds seem to continue to innovate and create.
In the end he concluded that the perl modules that are being written all around the world are like screen savers. They are treated the same by perl but nevertheless each one is different and a signature of the creative process that created them.
Unfortunately at this late hour for me, despite serious raking, I could not remember the other significant facts from the talk. I am planning on getting a transcript if I can, tommorow. But what struck me was how intelligent, reflective, thinking-aloud, and thoughtful the talk was.
He also pointed out that he rarely brings up topics or talk about things. And that all his writings over the years on the usenet have been replies or postbacks to someone else's questions. This brings up two important insights. Coversation is a very effective process to build communities. And a powerful incentive for an author. Having developed a small tool, I came to think that as an author of these tools one has to take considerable efforts to write and publish so that people will know about it. From Larry's talk it seems there is a flaw in that argument. The real issue may be to fix the product so that it exhibits the qualities of simplicity and comprehension so that one might be inclined to ask more about it. So the key may be "Simplify, Simplify, Simplify" and not "Document, Document, and Document".
Paul Graham followed Larry's talk. An excellent speaker. If Larry is about reflective intelligent thinking, Paul has an extreemly keen sense of observation. I am planning on reading his book about "Hackers and painters" to know more about his ideas.
He started out seeing how technology allows a small number of talented and dedicated people to accomplish an inhumane amount of work with the tools they produce. More importantly he seem to know the mindset of good programmers quite well. He points out the love and passion that is evident in a hacker (used in a positive sense).
He pointed out how one programmer wrote something very substantial in just a day in Python. This is a very interesting observation and emphasis. This puts the focus on programming environments that are flexible, fluid, transparent, and effortless. I don't know why the word "literate programming" keeps suggesting itself. The idea is you should be able to pick a pen and a paper and start writing programs like you write a story. The languages and infrastructure should disolve into the background. Compilers and IDEs are wonderful to have but they should not be mandatory to implement your ideas. Data and logic should present themselves in readily manipulatable vision. A question begs itself: A mathematician, or a physicist is quite productive with a simple pen and paper. We the computer programmers seem to need expensive machinery even to start thinking, forget about doing any work.
He also pointed out how unthoughtful the policies of companies like CISCO where everyone dons a cubicle including the CEO. He correctly points out how unproductive such an environment is to all workers, not to mention programmers. There is a certain class of people that needs a good space to get their creative juices flourish. Lack of this understanding encourages companies to think only frugal needs while completely ignoring the creative process.
He also correctly pointed out how good hackers knows other good hackers. He is very correct in pointing out how great institutions are great because they provide an environment for great students to come together. It is the conversation between these students that catalyzes them to greater hights.
Damian is an orator first and he happened to pick Perl to defend, develop, and promote. Exceptionally confident, uncommonly knowledgable, wickedly witty, he demonstrated the new features of perl and wrote a perl program in klingon.
This is how teaching should be
I am quite humbled by these speakers and their ability to zero in on what is relevent and what they are trying to communicate. Although I know no perl, no python, and no klingon, I see how this is quite relevent to java. It just shows how java can rediscover its spirit and allow what I call "literate programming". My wish is that java will be in such a position that one can develop a substantial application in a single day. One should consciously aim for simplicity even in the face of complexity.