tags:

views:

712

answers:

5

Every time I see a discussion on software development, always someone suggests or exalts the qualities of Smalltalk, be it the beautiful language constructs or the better implementation of basically everything.

So I was curious, is anybody developing in Smalltalk? can Smalltalk actually be used to develop software on the Mac? Or what is the target platform for Smalltalk? What is the poster child for this apparently fantastic but unpopular language?

+12  A: 

Smalltalk isn't really used for GUI application development on the Mac in any major way. The only distribution that could produce native apps was Ambrai Smalltalk, and that died in beta AFAIK. Squeak is the most popular Smalltalk variant nowadays, but you will be torn limb from limb if you release a Mac OS X app that looks like Squeak. It's worth checking out if you're interested in learning the language (which is still unique in a lot of ways), but you're probably not going to be developing OS X apps with it.

If you would like something similar, check out MacRuby. Ruby is as close as you can get to Smalltalk without actually being Smalltalk — total object orientation, dynamic, 100% message-based, heavy use of blocks, etc. MacRuby is an implementation being developed by Apple specifically for making OS X applications.

Mac OS X's native Objective-C is also heavily Smalltalk-inspired (it's basically a big chunk of Smalltalk's object system and syntax bolted onto C), but owing to its extreme C compatibility, it falls a little further from the tree.

Chuck
++ MacRuby looks really exciting. I hope the abstraction layer is really as thin as they claim though. Glue projects like this have a nifty habit of getting abandoned and then dying slow deaths as the platform marches on. If it's not thin, and hence maintainable, it really won't be worth investing too much time into.
guns
There is an Objective-C binding for Squeak/Pharo, which is being rejuvenated as part of the iPhone port of Squeak (isqueak.org).
Damien Pollet
+3  A: 

I still believe that Squeak is well worth investigating, if only to broaden your mind a little. As for the poster child for Smalltalk, it's probably Seaside.

anon
+4  A: 

Luis: do you want to do desktop application for Mac ? or you want to program in Mac? If you want to do a web application for example, you can perfectly use Squeak or Pharo. If you want to do native mac applications, you should see the Mars project for Squeak:

http://smallworks.com.ar/productos/Mars

As an example, most of the Pharo users and developers are under Mac.

http://www.pharo-project.org/home

download and try it at least for a couple of hours!

+5  A: 

Take a look at fscript, which is essentially a smalltalk-like language for Objective C.

Randal Schwartz
+2  A: 

Squeak isn't its UI. You can configure Morphic heavily (look at how similar Pharo's is to OSX, for instance). Or you can just use native widgets with wxSqueak.

Frank Shearar