The first couple days of OSCon are the tutorial sessions. These have abit different feel than the standard talks: if nothing else, they aremuch longer at 3 1/2 hours, where the later talks will be 1 hour each.This much time lets you get a pretty good initial sense of a particulartechnology. At the same time, a reporter cannot make it to as manysessions when each one is half the day.
In the morning I jotted between several sessions to try to get a feelfor each. Steve Holden, Chairman ofthe Board of the Python SoftwareFoundation (to which I was recently elected as a plain, lowly member), all around good guy, and Python advocate, gave an introduction to Python intended for people with some programming background, but not necessarily ever a line of Python. It seems like a daunting task. This session was packed; it's a good sign, I think and hope, of the growing popularity of Python.
Other than noting that Steve did a good job, there is nottoo much new to mention about the session; it did what a first threehours of Python training should do. I did notice that we are startingto get close to that slightly uncomfortable point where deciding betweenPython 2.x and 3.0 becomes a real issue. 3.0 is still in beta stages,but soon it will be out, and it just might be time to start training newusers in 3.0 rather than 2.6 around now. Steve's session, however, wasdefinitely a 2.x tutorial... with just some discrete mentions ofupcoming changes. Of course, I am partially guessing on what wascovered, since I split my time within the three hour block.
This leads me into another curiosity of the day. I saw both
Having only popped in and out of the session, I am certainly noexpert at Vim script; barely a novice even. I was impressed, however,at just how much slicing and dicing it really is easy to do with Vimfunctions (not only with sed/awk/grep-like syntax rolled into dauntingsingle commands). Many readers will know more than I did about thepretty nice list manipulation capabilities, the filtering and mappingconstructs (almost functional programming!), parameter parsing infunctions, and a good variety of string processing functionality. I amnot surprised, just embarrased how slow I have been climbing thatlearning curve. Like some other things, however, Conway made a bigpoint of observing just how very much non-orthogonality has grown intoVim script, with multiple ways to do the same simple-seeming actions,and pitfalls for almost-but-not-quite the same variations. Hmmm... doany readers know of other languages that suffer that danger?
During the morning, I also hopped into a talk called "GIMPdemystified" by Akkana Peck. I only heard a bit of it, but Peck did agood job as well. Neither she nor Conway's talks attracted nearly thecrowds of Holden's Python intro though. I do not do much graphicsmanipulation, but it was helpful to see just how sophisticated GIMP'smasking and layers really are.
During the afternoon, I heard Randal Schwartz talk about the
Schwartz' talk was quite interesting, as is the Seaside framework.The most notable thing about Seaside is that it is written in Smalltalk;that and the fact that it is actually pretty widely used (according toSchwartz) by big corporate sites. Schwartz' talk spent the first halfas a general introduction to Smalltalk: a cool language that not enoughprogrammers have ever played with. I am very ambivalent about theimposed GUI/development environment/interpreter that Smalltalk (Squeakspecifically in the tutorial) imposes on you. Smalltalk code focuses onultra-short methods that really require the Smalltalk environment tobrowse and develop. I still feel a purity in separating my text editorfrom anything about the underlying language mechanisms.Smalltalk/Squeak is as far from that as it is possible to get: thinkEclipse on steroids, and without any close button.
The framework itself is based on continuations and maintenance ofsession state. As with other rapid-development web frameworks, a verysmall amount of template code does a lot of work. In contrast to, sayRuby or Django, Seaside gives you far more capability of poking insidethe running sessions, and even greater dynamism in seeing your codechanges reflected on web pages. As a development feedback process, thisis great. You can build your applications in baby steps, seeing thechanges and improvements at each one, and getting immediate notificationand feedback on bugs and glitches. Another respect in which Seaside isunusual as a web framework is that its "templating" language is justSmalltalk itself. While somewhat novel as a concept, in practice itseems little different: it is really just a matter of sticking somemethod names where you might put various meta characters and escapesequences in other frameworks. In the end, I am not really thatimpressed that the framework knows how to escape and unescape ampersandsin values "behind the scenes." That part of Schwartz' presentation wasa little bit "been there, done that." On the whole, however, I thinkSeaside is worth checking out, and has some definite and interestingadvantages over other popular web frameworks.