Squeak 4.3 released / SOB minutes — 23 Dec. « The Squeak Oversight Board Blog

Welcome to the release of Squeak 4.3.

There aren’t any applications bundled with this release. Instead of working on applications to bundle with the image, core developers have been inspired by the Cog virtual machine to look deeply into the image for things they wanted to change. As a result, the image is becoming smaller, tidier, and nimbler.

New Smalltalk Seaside operation goes live: Airflowing

This also means that airflowing isn’t invite-only anymore. Since today, anyone can sign up and have an account for its own company joining a community of innovative and creative people. That have left us with the privilege to have a community of roughly about 35 companies and 140 people that are using airflowing every day to run their business more creatively and more efficiently.

Sebastian Sastre even credits me for a bit of inspiration later in the blog post, but the best thing is that another commercial venture is being launched with Seaside! Yeay!

Smalltalk at Rio Dojo, and Los Angeles Smalltalk User Group

Just realized I hadn't posted here in a while.  Two items to get caught up on.

I was recently invited to speak at the Rio de Janeiro "Dojo", which is apparently a regular meeting where people get together to practice modern programming techniques. I started with my "Smalltalk in an hour or so" presentation (same as the one I gave at OSCON last year), and then began the exercise. Although the group normally breaks up into small teams, we decided to do the FizzBuzz exercise as a group, letting me drive the keyboard and mouse.

To rehearse, I had done the exercise earlier in the day, so I had a sense of where the code was going, although the actual solution from the group effort was a bit different. We finished in about 45 minutes, and with the remaining time, we tackled the second stage (decimal values containing a 3 digit, not just numbers that are multiples of 3). After completing that, I showed that we could put the logic for #isFizz and #isBuzz over in the Integer class, which was pretty amazing unless you've seen it before, and even got the protocol category right so that the MCZ package contained the monkeypatches. Finally, I loaded the MCZ into a new image, and ran the tests. All green. It was a fun experience, and they later told me that they'd never even started the second stage question before with other languages, let alone getting it to a place where a file could easily be handed around with the solution (including tests).

And now, page 2.

I'm mostly in LA these days, so when I was checking out the Los Angeles Tech Events calendar, I spotted "LASTUG", which I further discovered meant that LA had its own Smalltalk Users Group!  Unfortunately for my Culver City proximity, the meetings are at Caltech in Pasadena... a bit of a drive. I attended last night's meeting, and gave a talk about my history with Smalltalk (all the way back to nudging Gemstone into being Smalltalk and not Smalltalk-like and playing with the Tektronix Magnolia), and about my experiences of leading the Dojo. Of course, there were also questions about FLOSS Weekly and Perl (especially comparing Perl to Smalltalk) as well. I'm definitely adding this group into my regular calendar scans.

Smallthought shuts down DabbleDB - the Seaside "mothership"

The big initial success story for Seaside, DabbleDB, is shutting down, based on email I just received as a user:

You are receiving this letter because you have been a user of Dabble DB.

We are writing to notify you that we will be shutting down the Dabble DB service on May 18, 2011. After exploring other options including finding another home for Dabble DB or continuing to try to support it ourselves, we've come to this difficult decision. We deeply regret any inconvenience this may cause you.

Although this in no way invalidates Seaside as a dev platform (many many other sites are successfully using Seaside!), it's a bit sad that the "mothership" never found a way to really take off.

Room 101: The Ministry of Nesting & Testing

Unit testing was part of the overall introduction of extreme programming/agile development, which is just one of the major trends Smalltalk has brought to the world. Along with refactoring (which we all know can’t be done without static types, which is why it was invented in a dynamically typed language), IDEs, reflective OO APIs, GUI builders, pop-up menus and bitmapped GUIs in general. Smalltalk is the veritable Prometheus of OO, and its destiny seems not dissimilar.

Silverlight Smalltalk

Silver Smalltalk is a revival and re-targeting of my “Vista Smalltalk” project of several years past.

The major changes have involved adapting the code to run with the Silverlight runtime libraries and removing dependencies on the file system (which is not available in a browser environment). There will be a future separate release with an SDK for desktop applications.

Vista Smalltalk used an Antlr generated parser. For Silver Smalltalk, I have adapted a lightweight hand coded parser that I developed for GWT-Smalltalk last year. There are still a few parser issues with characters ($A), literal arrays (#(a b c)), and temporaries within blocks. These will all be cleared up shortly.

SST’s interpreter is modeled after the Squeak VM and uses (mostly) the same bytecodes. There are several bytecodes left out (for example, those for bit operations) because they are not needed in the .Net environment. So far, I have not added any new bytecodes.

My focus for the next several weeks will be creating basic developer tools such as class browsers and object inspectors.

Smalltalk -- Language of the gods - David Pollak's Blog

A side note... Smalltalk has a rich, deep, and beautiful class hierarchy. I looked at it. I was blown away that Smalltalk's classes are richer, more beautiful, more understandable, and all-in-all better thought out than any class hierarchy in Java, .Net, or any other O-O system I've seen.

I found myself writing "better" code in Smalltalk than I ever have in Java. I found myself refactoring early and often. Then I started asking myself why I was writing better code. I realized that Smalltalk is that a language of the gods, I was in Mt. Olympus, and I was doing as the others before me did: coding more thoughtfully.

Smalltalk is an amazingly well designed system/environment/language. It's clean, clear, precise, understandable, and in general done right. I found that I was doing things the way other Smalltalk programmers do things. I was following the example and lead of the amazing folks who wrote the beautiful classes I was browsing and learning from.

Definitely read the rest of the post as well.

Smalltalk Solutions 2011 is *charging* speakers to *attend*? Are they nuts?

The conference fees and sponsorship information for Smalltalk Solutions ’11 have been determined.  Please see the chart below for more information on the conference fees.  If you are interested in becoming a sponsor, you can also check out the cost for the Gold and Silver sponsorship programs.

  Early early Early Advance On-site Speaker Spouse
  12/15/10 1/15/11 3/12/11      
Regular Fee $493.75 $681.25 $868.75 $937.50 $200.00 $250.00
STIC members $395.00 $545.00 $695.00 $750.00 $160.00 $250.00
This is insane. Note they are charging (albeit at a discount) speakers to attend a tech conference. I can't imagine even applying to speak at a conference that is that removed from reality.

WriteStreams of Consciousness: Going to Xtreams

Smalltalk is home to perhaps the first truly elegant streams implementation, particularly when compared to other approaches developed around that time, such as those in C and C++.  You can’t get much simpler than ‘myfile.txt’ asFilename readStream contents to open and read a file, and yet there’s significant power in the classes behind that.  But new designs for stream libraries since followed, including pluggable/chainable I/O stream architectures, such as those found in Java, C#, and even advanced parallel stream processing frameworks.

Not to be outdone, Michael Lucas-Smith and Martin Kobetic have recently developed a new pluggable stream framework for Smalltalk called Xtreams, and I couldn’t resist giving it a try.  In the authors’ own words,

Xtreams is an abstract producer/consumer pipeline over arbitrary source and destination types… you get a unified API for accessing files, sockets, pipes, strings, collections and many many other kinds of things.

I've been anxiously awaiting the use of XTreams (and the parsing tools built on top of it) for a while with Squeak. Looks like that's also getting close to reality too.