We are all familiar with extended guitar solos. Until a few years ago, I didn't realize that instrumental solos at rock concerts were a modern day form of cadenza. A cadenza is simply a section of music where "the others" stop playing so that a soloist can take the spotlight, often showcasing tremendous virtuosity. Even if you aren't a classical music buff, you may have seen situations where the orchestra stops and the violinist lets 'er rip (e.g. in a violin concerto).
The concept dates way back to at least the Classical era (circa 1775). Interestingly, in those days, improvisation was a key component. (To quote an old professor: the notion that jazz invented improv is "one of the many lies you've been led to believe".)
While reading a post on Neal Ford's blog, I realized that the modern day cadenza for computer languages is undoubtedly Web Frameworks. It is a chance for a given language/platform to really show its stuff. I suppose that it is a relatively beefy opportunity: showcasing MVC, persistence, a web presence, etc.
For one, I would like to see some new problems as cadenzas. At a recent talk on Scala by Tim Dalton, the audience was treated to an excellent exposition of the language. During Q&A, someone mentioned Lift, a nascent web framework for Scala.
Under my breath, I said "oh oh". Now, I haven't used Lift and wish them the best, but I'm not sure that I have room in my brain for another web framework. Plus, I'm enjoying the dueling guitars contest between Rails and Grails.
A New Cadenza?
I haven't used Scala, but of all the features presented in the talk, the true standout is the Actor concept, a type of abstraction for concurrency. For my money, that might be a big opportunity for a new Scala concerto: featuring a MapReduce cadenza.
That would bring me to a standing ovation.
Tuesday, January 15, 2008