Friday, July 06, 2012

A shoutout and thanks to the Pharo Smalltalk developers

Pharo is a fork from the Squeak open-source Smalltalk and provides an incredibly rich development environment. As a consultant people pay me to design and write code in Ruby, Clojure, Common Lisp, and Java. That said, for non-work related experiments, Pharo is a lot of fun to use: a modern and free Smalltalk environment. I just wanted to say thanks to the Pharo team: great work! I recently downloaded the 2.0 development build - exciting to see new features. One thing in particular that strikes me as awesome about Pharo is that it is very light weight, using little memory and CPU resources. I wrote a blog 5 years ago about deploying Squeak to Linux servers. I am a little surprised that Pharo is not more widely used for rich web applications but with so many great languages and frameworks (Rails, Sinatra, Clojure Noir, Java Play Framework, GWT, etc., etc.) there is a lot of competition for developer mindshare.

My personal interest in Smalltalk started when I got a Xerox 1108 Lisp Machine in 1982 and the Xerox SIS salesman gave me a one month license to try Smalltalk.

7-9-2012 update: I just posted some Pharo code to a new github repo.

4 comments:

seandenigris said...

Thanks for the shout, Mark! Given how much you've enjoyed Pharo so far, I think you'll be really impressed after the 2.0 release - I'm sure it will be a game-changer.

Much of the work the past few years has been in improving Pharo under the hood, like the new compiler, class builder, vector graphics, keyboard shortcut framework, and countless cleanups. This has been coupled with great leaps in infrastructure, like the CI server testing many variants of Pharo and its VM on Mac, Window, and Linux with every commit.

Now, all these investments are starting to payoff for Pharo users:
* Continuous integration has given us the confidence to replace the uggggly File library with FileSystem, a beautiful object-oriented library which is a joy to work with.
* Nautilus, the new browser, has long-awaited features like a history and custom groups.
* I've been playing around today with Vim bindings for Pharo tools, made easy by Keymapping.
* Fuel is a new fast object serializer
* Fuel might soon allow near-instantaneous bootstrap times for Metacello, the new package-mananagement system, which is getting closer to RubyGems (plus tools) every day
* The Pharo Kernel is driving the system to become more modular

I feel that we are close to a tipping point where the system becomes so easy and fun for developers that we will see a self-perpetuating revolution in the IDE. For me, Vim bindings are something I've sorely missed since finding Smalltalk two years ago. It's only now that I've seen in Pharo an opening to make that dream a reality…

Mark Watson, author and consultant said...

Thanks Sean. I hope that you are correct about Pharo reaching a tipping point. It is a great project and a lot of gutsy decisions seem to have been made to move forward by tossing old code and ideas.

It is not just Smalltalk that seems to be reinvented. Other older programming languages like Common Lisp (the free compilers are so good and we have a good package manager in Quicklisp) and Scheme has, I think, been rejuvenated with Racket.

Unknown said...

Hi Mark

I would be really interested to see new libraries around your expertise coming to life in Pharo. I know that this is a lot of work but starting to invent the future is by building the foundations :). Now did you check a bit the existing libraries because this could also be a first start.

Thanks for your blog post.

Mark Watson, author and consultant said...

Hello Unkown, I would like to do that. I'll see how much time I have. About 4 years ago I wrote some natural language processing (NLP) code for Squeak/Pharo, and I might be able to package that up.