<< Type inferred completions and more | Home | Dynamic GroovyEclipse >>

Crazy Sensible Smalltalk

Recently I've had the good fortune to be exposed to Blain Buxton, a long time Smalltalker. Initial exposure to Smalltalkers can be rather confusing. At first you think you understand them, after all they are speaking of an object oriented language. Then utter confusion, they are not talking about a language so much as a whole world. Stange talk of 'messages' and 'images' and crazy talk of changing objects on the fly without restarting anything. In fact, not even having the concept of an application to restart. Not saving files. Files? They don't even exist!

A whole parallel computing universe that I, having been on a C/C++/Java path, would not have been exposed to. After some digging and reading, and after a nice demonstration using Squeak, I am starting to understand things and want to be in this lively Smalltalk world. I also see how terminology has been misused. The very word 'method' is too often spoken of as something 'like a function but in an object'. Odd that the meaning could become so twisted: method, aka, process, plan, system, strategy ... algorithm! The misused phrase 'calling a method' when it really is 'executing a method'. Small and perhaps trivial things to some, but for me, my perception has changed. How nice after years of programming to have a few small ideas force a huge paradigm shift.

A while back when I used Python, the dynamic nature was very nice. And now that I am enjoying Groovy, I am enjoying crafting code more than ever. But the feeling that something is missing has always been with me. I created various hacks to auto reload code as I created it. I even started on a hack to have a magic metaclass reload objects on the fly. But hacks are hacks. Not matter what the hack is, the environment is still dead. And when debugging Groovy, it is rare when I can get away with changing a bit of code without having to restart my application. Countless hours and days lost due to restarting applications and having to get back in the flow of things.

What to do? For one learn more - Design Principles Behind Smalltalk is a very easy but thought provoking read. What else is to be done? Well, Java is now open source ... anyone for hacking 250k lines of C++ ?



Re: Crazy Sensible Smalltalk

Executing a method? Sending a message!

Re: Crazy Sensible Smalltalk

I was very fortunate to read Kent Beck's Smalltalk Best Practice Patterns.

When I first learned Smalltalk in an extremely condensed/accelerated  one week-loing class and suffered from information overload, I missed out on the major points of Smalltalk. I was still using Smalltalk in the old-style programming techniques that I used for C++ or Visual Basic for several months. I still didn't completely understand OO programming either. After I read that Kent Beck's book, I finally came to grips how to use Smalltalk effectively. To me, that book was a turning point.

Re: Crazy Sensible Smalltalk

The future is the past is the future again, eh? It can be earth-shattering for some (like me) when first discovering just how advanced some programming languages and environments were 30 or so years ago.

And then rather saddening (maddening, even) when you get deeply into one of them and then have to come back to the "real" world and use an "acceptable" language again.

In my case it was Common Lisp. And while open source distributions don't have all the neato gizmos that Smalltalk has (the commercial distributions come close), underneath it's an incredibly powerful and beautiful language.

Lispers and Smalltalkers (get the connection?) have a deep respect for each others language, and often you'll hear one say "If I had to program in any other language, it would be Lisp" (or Smalltalk, if it's a Lisper).

You will no doubt find this rather interesting...

Discovering Smalltalk

It's allways the same when Smalltalkers talk to users of other, typical C-style programming languages. As long as there are ...

Add a comment Send a TrackBack