Day one must have ended with lots of beer because people were quite late for day two. 15 minutes late Carl Lerche finally started his Ruby presentation. One thing I found interesting was Ruby Modules vs Monticello extension methods (in some ways I presume this is how Modules are often used - to extend other classes with behavior). Evidently “method extensions” to the class side in Ruby doesn’t work like extensions to the instance side, it does in Smalltalk of course :). Then Carl described ways to still do this, but it looked complex, and also explaining there are lots of “hooks” when messing with the MOP. Is that a good thing? If Rubyists use this a lot, then I presume utter hopeless confusion might occur.
Obviously there is a difference here I think between the Smalltalk and Ruby mindset - in Smalltalk we are always in runtime, but that doesn’t mean we go crazy on the dynamic axis - that would pull the rug out from the development environment and its capabilities in navigating and describing the code base, in much the same way as a macro system does in C/C++.
Next part was about various techniques using Ruby blocks, like for example messages taking optional blocks… hmmm, trying to figure out what I think of that. “File.open” was showed as an example. Reading on the net shows that there is a lot of… complexity regarding blocks in Ruby, doesn’t look nice. I hate needless complexity. Evidently Ruby 1.9 is cleaning up blocks - curious if anyone could elaborate on that compared to Smalltalk.
Next up was Tom Hughes-Croucher from Joyent presenting Node.js. In essence this is about hard scaling of network applications. He began by talking about scaling issues with regular forking architectures and V8 and the AreWeFastYet website etc. Javascript is indeed getting an awful lot of performance attention these days and that of course makes it the “assembler of the Internet” and a compelling base platform for more and more things.
Although I do understand this I still don’t really see how Node.js would be extremely better than say Nginx + a backend that doesn’t allocate insanely much memory per user session? For example, using Nginx (or Cherokee) with a Squeak backend running AJP, it would be fun to compare performance wise.
Sergi Mansilla then presented Cloud9, a web based IDE for Javascript. Mmmmm, well, I don’t get excited about that because I am a Smalltalker and the things I can do with Squeak/Pharo … sorry, I don’t want it in the browser! What about interactive graphics visualization? Really good browsers? Sure, it can be done, and compared to vim/emacs it might be cool. But I want to be able to hack my IDE for example. It is clearly a really ambitious project though and worth keeping track of since they are pushing the boundaries of what you can do on the web.
Robert Virding doing another presentation around Erlang, similar to the one Joe did yesterday but still different. Focusing more on principles but also with some code examples. Somewhat interesting, but I didn’t follow it too closely.
After lunch Björn Eiderbäck started his presentation on Smalltalk directly in the latest version of VisualWorks from Cincom. The style of Björn’s presentation is to interactively using the Smalltalk environment trying to quickly “dig into” code and using its tools. This style easily gets side tracked but in order to make non Smalltalkers understand the “beauty” of Smalltalk it might be the way to do it in a short period of time, Shock and Awe. :)
The day continues but I am posting this now anyway.