Tools, Languages, and Squeak
Recently Peter Burns tweeted about an interesting article named The IDE Divide by Oliver Steele. Its creates a dichotomy of developers between Language Mavens and Tool Mavens.
Language Mavens are typically using Emacs or VI1, and focus on using specific languages' features for enhanced productivity. They would be using OCaml for writing compilers, Perl/Ruby for text mangling, Erlang for reliable systems. The Tool Maven is less language oriented and instead has mastered a set of tools, usually packaged under the auspices of their IDE.
What really struck me about reading this article was that it gave me the vocabulary I've needed to succinctly express my frustration with with Squeak. Squeak is a Virtual Machine and a programming language, which means new developers have to simultaneously abandon their language and their tools.
If you are a Tools Maven, then you are going to be frustrated because you are no longer able to take advantage of all the tools you have invested time into mastering. If you are a Language Maven you'll be frustrated because you are being forced to use an IDE (when you desperately want to just use Emacs/VI instead). This cognitive dissonance is coupled with having to learn new libraries, new syntax, and a new style as well.
Its simply too much to cope with at once. A Language Maven expects their language to change frequently, but not to have to adapt to a mandatory and less flexible IDE. A Tool Maven also expects their language to change, but doesn't want to use the new IDE either, and really doesn't want to have all of their tools become inert in their hands.
I'll end with my final thought when I put Squeak on the intellectual back burner for the time being: If only they had an implementation of Emacs, this would be so much easier.
And I suppose some of the less pure (as in, everyone except me on OS X) might include TextMate in that club.↩