Is SmallTalk a real option?

There's a nice little back and forth developing over at Cincom Smalltalk blog (Yes, it is a smalltalk'ish blog):

Over on QLOD, a new Smalltalker asks:

"What makes me wonder though: Are Smalltalkers really that much more productive. In contrast to C or C with a bad IDE and without libraries maybe, but in contrast to a more modern language ? (Think about something like AS1 with additional runtime typechecking and a big library like java, probably a bad example :)) Can anyone provide some pointers ? "

A large part of the productivity comes from consistency. In Smalltalk, everything is an object. No primitive data types, no special rules on certain types of methods - which means you spend more time focused on the actual problem, instead of on how to fight the system to allow you to solve the problem. Another big thing is extensibility. We can extend any class in Smalltalk - need a new method in String? Go ahead and add it. No need to start wrapping all your string references with a new class, and wondering how to get third party libraries to play ball. Blocks add some capabilities that neither Java nor any CLR language have as well. Anyone else have answers?

(You'd do well to read some of the comments on that post and also this post for more reasons)

I've tried Smalltalk before and had problems with it. The main problem was that I didn't "get" it. As a developer, I'm always looking for ways to be productive. f someone says to me that SmallTalk is more productive that my current .Net infatuation, I'll believe it. Provided proof of course. There are many good reasons over there why SmallTalk is more productive, but what happens when you move it into the enterprise application space?

How well does it cope with creating web services? using distributed solutions? talking to other applications? integration? Maintenance? How widespread is it? If I learn SmallTalk, will I be able to get a job in it? will I be able to leverage my current skills in .Net using SmallTalk, or just write some of my business logic in it while the other parts using a .Net language? (Isn't there a SmallTalk.Net out there?)

Published Tuesday, January 20, 2004 10:16 AM by RoyOsherove
Filed under:

Comments

Tuesday, January 20, 2004 8:43 AM by James Robertson

# Is SmallTalk a real option?

I was about to post a long comment, but instead posted to my blog. Have a look over here: http://www.cincomsmalltalk.com/blog/blogView?showComments=true&entry=3252040914
Tuesday, January 20, 2004 11:55 AM by Darrell

# re: Is SmallTalk a real option?

A quick search on HotJobs.com:
- Number of Smalltalk jobs in the US: 16
- Number of .NET jobs in the US: 956

I'm not saying that it won't help you as a developer, but you probably won't get a job "in it."
Monday, January 26, 2004 12:21 PM by Tony Nassar

# re: Is SmallTalk a real option?

Well, there have been postings to the extremeprogramming group on Yahoo, recommending learning SmallTalk (over C#!). If you do not *now* know SmallTalk, and you are not *now* part of the SmallTalk community, how would you teach yourself SmallTalk in such a way that it would help you get a job? Perhaps this objection applies to any language one doesn't already know. Still, one has only to type "Smalltalk" into CareerBuilder.com and see how few postings show up; there may indeed be SmallTalk jobs out there, but there are manifestly not that many.
Thursday, July 15, 2004 3:51 AM by tj hooker

# re: Is SmallTalk a real option?

... i would say that smalltalk, as a commercial language or not (a shame if not), should be learned (by anyone who can type) for the simple sake that it will give you insight into problems and develop your programming skill...

i'll say the standard line: smalltalk is object oriented.... i will also say that this is NOT the same as in c++/java... c++-style pedagogically static-heirarchy trolly-car objects are only related to smalltalk's objects in the sense that a peice of bread with a glass of v8 is LIKE a pizza. c++ leaves a bad taste in the mouth everytime one tries to convince himself it's not wholey ungood by actually eating it...

that aside, i've been programming in c++ for 4-5 years, actively pushing my abstraction/pattern-recognition/philosophy-of-objects and i can testify that i learned more about programming from smalltalk in the first month than i did all the while in c++/java... the fact is, smalltalk directly facilitates the mindset that EVOLVES while TRYING to program effectively in c++, but which can simply NOT be conveniently realised (lispers like to say that a programmer usually winds up writing a lisp interpreter at some point... well, i'd claim that smalltalk is more to the point, from an object-oriented programmer's perspective...). what's exotic, innovative, and painfully intuitive in other languages is elegant in smalltalk, because, for the most part, other languages emulate smalltalk's execution model, but never simply commit to it (how could they... they'd just be smalltalk...)...

there is a potential to under-appreciate smalltalk due to a lack of requisite head-on-wall banging; if you've never felt the shackles of c++ and only seen smalltalk, or only seen c++ and never seen smalltalk, you may not say it's worth anything (i mean, how can simplicity facilitate me more than complexity??)... perhaps it's impractical to expect the world to appreciate smalltalk while they still have a full head of hair... maybe smalltalk books should have a disclaimer: "if you haven't pulled out at least 25% of your hair, move along..."

yeah, smalltalk could use some library support... it may never appear to be a commercial tool without the marketing hype to foster library activity (but the technology lives on in emerging hardware design)...

my point is just that smalltalk will make you better... better than you can be from where you are... it will make you better where ever you go FROM where you are also... learn it, and be prepared to appreciate it; bring your coding scars and headaches and let lady smalltalk massage them away... (i'm done... no really :P)