20 comments

[ 3.4 ms ] story [ 58.6 ms ] thread
I really dig smalltalk, especially the Pharo project, which I believe is a fork of Squeak.

The development environment is a joy to use, although unfamiliar to the uninitiated, but very powerful indeed. Some people do not like the image idea or the fact that they can't bring their tools with them, but I love it. Pharo lives on my USB stick and is ready and willing no matter what type of system I am on, or whose for that matter.

It's funny because I had a really refreshing experience with Pharo lately. A part of the workspace threw an exception and I was presented with the option to debug it. Hitting debug brings up a debugger with the full stack available and the source of the error. Within a few minutes I was able to track down the error, fix it and have the fix go live immediately. Compare this to what it would take to debug and fix an error in, say, Eclipse. The difficulty of checking out the Eclipse source, dealing with potentially confusing and convoluted source code, wrangling with a labyrinthine ant or Maven build process etc. makes it not worth your while to fix the problem.

Whatever the pros and cons of the image based system may be the immediacy and transparency of it is really enjoyable. It's a shame that the idea has been pretty much abandoned by all but a small contingent of developers.

I agree on the goodness of image development. In the early 80s I had a Lisp Machine, and I would use an image for months before rebuilding it. Also, when I do Common Lisp using SBCL (not often), I have images pre-setup that I grow over time.

Unfortunately, my Smalltalk skills are weak, but it is a great language. About 8 years ago, I signed up as a Cincom Smalltalk VAR, spun up on it, but never had a customer want me to use it (except for Cincom itself: they paid me to rework some of the documentation).

Anyway, I just downloaded a Pharo + Seaside installer, and may play with it while visiting family next week.

> A part of the workspace threw an exception

Did this happen with the standard workspace as it was distributed? This typical smalltalk experience might be acceptable you. There is a chance though that your customers won't find it similarly enjoyable.

Pharo is still maturing, but I've encountered the occasional exception.
For one, this was Pharo Smalltalk; a fork of Squeak that's still in beta. For another if I was shipping an application to a customer I probably wouldn't ship it with the workspace, or any of the development tools really. I would also consider buying a license for a commercial Smalltalk if that was the case.
No more so then a customer seeing an exception in a program written in C++.
So Smalltalk is not dying because someone who sells Smalltalk IDE says so?

- Wait -

I am not trying to be anti-Smalltalk, but that seems analogous to Spolsky, who sells bug tracking software, downplaying TDD.

- Wait -

I am not trying to be anti-Spolsky, but that seems analogous to person X, who sells product Y, downplaying Z, in order to persuade people one way or another.

...So this must of been what my professor was talking about when she said it is important to take into account who is providing you with this information

Or it is merely someone who sells product Y saying 'our sales are up' and extrapolating from there.
The reference to increased sales is true for both VA Smalltalk and Gemstone. Also noted: this growth is consistent in prior years. Those are not opinions without regard to the fact that they did not release sales numbers. I know and have worked for the CEOs of both companies (long ago); they are very honest businessmen. If they claim the growth is real, I do believe them.
I picked up Seaside and Magritte recently to build a demo. Seaside is a refreshing change from the Rails/Django/Pylons style frameworks. I found the abstractions Seaside provides (continuations and components) to be much more powerful than what the other frameworks gave me.

The downside is that it's a drastically different development process than I'm used to. Squeak and Pharo take a lot of effort to get used to.

Did you try GNU Smalltalk (http://smalltalk.gnu.org/)? It's a command-line smalltalk that interfaces well with unix. I find it simpler to grasp than seaside because there are less things to understand at the same time.
Thanks, I did briefly switch from Pharo to GNU Smalltalk and then back. I don't remember what my reasoning was, so maybe GNU Smalltalk deserves another look.
Don't you mean "simpler to grasp than Squeak"? I doubt Seaside and GNU Smalltalk have much in common...one being a framework and the other a smalltalk environment.

What I'd be more curious about is whether GNU Smalltalk can run Seaside...

It can, as of the recent releases.
Avi, do you use Pharo as your main development environment?
gnu smalltalk can run seaside but it tends to lag behind pharo as pharo is the target platform ( gemstone, cincom et al also lag behind to some degree ).
Did you try GNU Smalltalk (http://smalltalk.gnu.org/)? It's a command-line smalltalk that interfaces well with unix. I find it simpler to grasp than squeak because there are less things to understand at the same time.

edit: replaced seaside with squeak

once you dont have all the nice smalltalk tools which gnu smalltalk is still lacking a number of right now, you basically have something that is rather like ruby without anywhere near as many libraries.
I've been reading about the demise of this framework for over a decade. Glad to see it's still going strong.