I haven’t been paying enough attention lately. I just found out that Juan Vuletich has created Cuis Smalltalk. It uses the Squeak vm but is pretty darn small. I haven’t played around with it yet but it seems cool. If you check it out, let me know what you think about it.
I’ve been using Ruby now for over half a year so I feel like I have a big enough time sample to be able to roll up my impressions of Ruby from a Smalltalker’s perspective.
Ruby the language was easy to learn. I knew Smalltalk, Java, C# and various other languages. The syntax is like Java. The concepts are like Smalltalk. It wasn’t much of a transition at all.
The IDEs are bad. Working in a text editor is skinny but the different between skinny and naked isn’t much. I also use Eclipse with the Aptana plugin loaded and that makes Eclipse only slightly better for Ruby development. Senders, references, implementers are all missing. File search feels like a step back to the C# style of development. Ugh.
Documentation is good but… I miss using the code as documentation like you do in Smalltalk. I don’t want to go look at the Rubydoc website to see how to read a file. Instead, like I would in Smalltalk, I want to look at the implementation of File.new() and then find senders of it to get examples. All in the same code. Still, the documentation is pretty good.
Scripting is easy with Ruby. It should be but that doesn’t always mean much. In Ruby’s case, it really is easy to write scripts without a big IDE in your way.
There are too many ways to do the same thing. One of the things I hate most about Ruby is that there are several ways to do everything. This makes it easy to write code the way you want. It also makes your code messy as different developers write different sections of the code using completely different syntax styles. Yuk.
Libraries in Ruby are similar to Smalltalk or Java. Rake (like make). UnitTest (like SUnit or JUnit).
Debugging in Ruby is terrible. I haven’t found a interactive debugger. Debugging via print statements is like working 20 years ago – it works but not nearly as well as using a good interactive debugger.
Checkout airflowing.com a new Seaside application written in Pharo. The site allows you to organize all your creative work in one place including sales, tasks and finances. I haven’t tried it out but if you do, please post a reply here with a review to let us know what you think about it.
I just read and liked this article about Dan Ingalls which included tidbits about his contributions to computing and Smalltalk:
I made the switch because I like the cleaner look of Pharo and the general direction – to make a clean, lean, Smalltalk development environment. Also, I am working on another project to produce investment banking tombstones at tombstonecreator.com so I needed better font support and the Pharo font support is nice.
I had to make a few minor changes to my apps and to the HttpSsp framework for Smalltalk Server Pages but it was all very minor and easy to do.
So far I’m happy with my switch.
- I wanted to switch from Squeak to Pharo but the new vm needed CentOS 5 or I needed to build the vm myself (which I did not want to do) so
- I wanted to upgrade from CentOS4 to CentOS 5
- I wanted more memory/disk so I could run X windows and vncserver
- I wanted to save money if I could
- My existing VPS provider could not help me upgrade without me having to go through nearly all the same pain as a switch to a different VPS
So I moved and managed to:
- Get 50% more memory
- Run X with vncserver
- Run CentOS5
- Switch from Squeak to Pharo
- Save $300 per year
- Move everything for all of my sites over to the new server in a week with very few hiccups
My old VPS provider had pretty good support. My new provider (VPS Land) so far has had pretty good support as well. I hope they keep it up and that I don’t need much support going forward!
I’m trying to figure out which Squeak flavor I should be using for my sites and for application development – Squeak or Pharo. I’ve been using Squeak but more and more of my Smalltalk friends are telling me to use Pharo. I don’t follow the Squeak list or the Pharo list so I’m not sure which one will be better for me.
Can everyone please post a response with the pros and cons of both Pharo and Squeak? Thanks for the help!