Archive for February, 2007

Squeak or: how I learned to stop worrying and love the browser

Tuesday, February 27th, 2007

Being a diehard emacs zealot my biggest problem with Smalltalks has always been their heavily mouse driven IDEs and lousy editors, and since Smalltalk systems are pretty much married with their IDEs and image based development model there is not really any reasonable way around it. So it’s adapt or give up…

So, for the past few days I have been adapting. And boy has it been a painful experience; I have had to learn new and confusing editor concepts (like moving cursor with those… ‘arrow keys’?) , I need to use that ‘mouse’ thing to move and close windows. Actually I need to use that damned box for almost everything. Argh.

Of course since it’s all written in Smalltalk and the source is there for you to see and modify I could make it behave exactly the way I want. And here we are getting to the part of Smalltalk I’m starting to love. Lets take the Squeak window managent for example: out of the box it’s about as bad as the one that you have in Windows, but unlike Windows, Squeak is infinitely modifiable. It took me less than an hour to add in a simple physics system that makes the windows bounce around while being attached to each other with springs. Of course that is funny but useless, but adding actually useful features is as easy (altough I’m still a bit lost with the way Squeak handles mouse and keyboard events…).

Altough the languages share many similarities, working with Smalltalk is fundamentally different experience from working with Common Lisp(+Emacs). With Squeak I’m constantly browsing the class hierarchy or inspecting objects, as opposed to the more traditional code-as-text approach. At first it feels like a waste of time, shuffling windows around and trying to make sense of the class hierarchies and tangled method invocations. And when you finally get to the coding part it’s only 2-3 lines typed with a notepad-like editor.

Slowly it dawned to me that while I was shuffling windows I was actually getting things done (and of course learning). Things like changing class hierarchies and methods at runtime were done and organized by the system while I was innocently clicking thru the browsers. Things that would actually need a lot of keypresses in a conventional editor happened almost by themselves, no need to worry about what goes in what file, about build dependancies or outdated code lurking somewhere. Most of the time everything Just Works(tm).

That’s not to say I still wouldn’t want a more advanced window management or keyboard shortcuts, but that’s probably something I’ll have to do myself after I get a bit more familiar with the environment…

Being busy with life

Thursday, February 22nd, 2007

Millions of dead UFOs

Saturday, February 17th, 2007

Lets Squeak again

Friday, February 16th, 2007

Resource management considered painful

Wednesday, February 14th, 2007

Slowly moving on

Tuesday, February 13th, 2007