First, I've been neglecting this blog for far too long. Part of this is because I have been busy working on Teachscape's Reflect product, which released just last week. While not directly related to languages, at least I'm getting some experience with supporting classroom software.
Next, most of my entries here have been my discussions of software to support language instruction from the naive perspective of a software geek. This is going to be more along the lines of a software geek talking about software.
This week, I'm at the SPLASH 2010 conference in Reno, Nevada (well, Sparks, actually). SPLASH (Systems, Programming Languages, and Applications: Software for Humanity) is the successor to OOPSLA (Object Oriented Programming, Systems, Languages, and Applications). And yes, as goofy as "OOPSLA" was as a name, I think that SPLASH is much worse. There's a whole debate about the appropriateness of the "Object Oriented" piece there, none of which justifies a name that sounds like a water park.
That aside, here are the highlights:
Monday's workshop on Architecture in an Agile World: A full day with a diverse and very intelligent group of software architecture and agile processes experts (neither of which I consider myself a member). For those who haven't had to work with an agile software project, architecture is usually deemed to be something that will emerge over time. However, too may of us had seen projects that ultimately failed at achieving that goal.
Discussions included the architect's place in agile computing, scheduling architectural design in an agile project, how different agile teams affect the architect's role, and "architecture smells". The workshop organizer, Dennis Mancl, and man of infinite energy, facilitated the all-day workshop, presented the results to the larger SPLASH audience that evening, and then found time to post this summary of the results. One of the participants, Kenji Hiranabe, also spent the wee hours of the morning recording this video presentation of the workshop's findings, in Japanese.
Tuesday's sessions have been informative. Most memorable for me was walking into the "Software for a Sustainable World" panel discussion on green technology, to see Ron Gremban's Giant Head on the video display. Ron and I worked together at TIBCO twenty years ago. Ron was sharing his experience as an expert on developing plug-in electric cars at the CalCars initiative, which involved converting a Prius to a completely electronic car. It always struck me as appropriate that Ron has made his mark on the world by taking some technology and then fiddling with it until it did something far beyond what anyone else expected it could.
Though it has not been stated as a theme, the subject that seems to come up regularly so far is software testing. In the Agile Workshop, we agreed that designing tests to reflect the software's business requirements was essential. However, there was something of a glossing over questions about how you can test complex (and often vague) requirements like scalability and performance.
In the first keynote on Tuesday morning, Stephanie Forrest made a case for extending Genetic Algorithms as a means of fixing bugs or even improving larger programs. I have rarely heard of genetic algorithms extending into real-world applications. (There are a few exceptions.) I believe the major stumbling-block is in creating sufficient fitness tests. At the presentation this morning, it was argued that even minimal fitness tests could result in better code, but I can't help feeling as though there are potentially serious problems to ignoring some aspects of them.
More later on tomorrow's sessions, including Art, Science, and Fear, and Rubber Ducks, Nightmares, and Unsaturated Predicates.