Andrew and Avi just gave me a Squeak/Smalltalk tutorial over lunch. Okay, I had previously liked the syntax and the ideas, but Smalltalk is freaking cool =) Aside from being shown how I was approaching Squeak totally backwards, there are some language-isms and cultre-isms that deserve note.
Exception handling doesn't unwind the stack, it traverses up the stack looking for a handler and invokes the handler. This is so much more useful than unwinding as you can pick back up at the point the exception was thrown!. It does open up capabilities for some nasty dynamic scoping hacks, but... it opens possibilities, doesn't encourage their use. Oh yeah, and exception handling is a library. That is sweet.
The image thing was finally internalized. Despite knowing it isn't text based, I kept approaching it that way out of a force of habit. Bad Brian!
The browser makes way more sense. I thought the crippled thing I was used to in Java development environments is what I was working with. No. Bad Brian!
In the realm of the absurd, a year or so ago a bunch of folks in Stuttgart came up with the SubversionClassLoader. It actually started as the MavenClassLoader in that it would understand maven repos and fetch libraries as needed, then got silly. So, umh, someone is actually implementing the equivalent for Smalltalk. This is bizarre, scary, and cool. Know how I mentioned exception handling is a library? Raise an exception, have the system go fetch an exception handling library to deal with it. I kid you not.
So, Squeak is still kinda weird, but may be worth working with =)
1 writebacks [/src/smalltalk] permanent link
Sun, 07 Nov 2004Avi gently chastised me for displaying my lack of knowledge about Seaside. Anyway, lead me to doing some investigating and found, A) that Avi blogs! Gah, I didn't know this somehow. Subscribed. B) Seaside is totally different from the Cocoon/Struts-Flow/Original-Scheme-Paper implementation of continuation-based (er, I mean modal) web app design. C) Seaside has been conceptually ported to Ruby in ~500 lines of code!
Also grabbed latest Squeak and started playing again =) My Smalltalk is weak, but right now I think it may have nudged out ocaml and haskell for my 2005 language-to-learn. I am reminded that the default Squeak editor is... er, not vim, though.
Anyone know of a way to externalize text editing in Squeak? I know you lose the whole environment then but... oof. May be worth it =)