The Artima Developer Community
Sponsored Link

Python Buzz Forum
Where Smalltalk Went Wrong

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Ian Bicking

Posts: 900
Nickname: ianb
Registered: Apr, 2003

Ian Bicking is a freelance programmer
Where Smalltalk Went Wrong Posted: Mar 9, 2004 3:49 PM
Reply to this message Reply

This post originated from an RSS feed registered with Python Buzz by Ian Bicking.
Original Post: Where Smalltalk Went Wrong
Feed Title: Ian Bicking
Feed URL: http://www.ianbicking.org/feeds/atom.xml
Feed Description: Thoughts on Python and Programming.
Latest Python Buzz Posts
Latest Python Buzz Posts by Ian Bicking
Latest Posts From Ian Bicking

Advertisement

In a recent post, Christopher Petrilli speculates on `why people don't get Smalltalk`__. This response remains only half-baked, but I'm choosing to let it go anyway. To quote:

Also, it reminds me a bit of what happened when I worked on Zope and the ZODB (Zope Object Database), which contained almost everything originally for the system. People wanted to work on things as though they were files. There were two reasons for this.

First, the tools sucked in Zope. A HTML textarea is not an acceptable editor. This was eventually resolved with FTP and WebDAV support. The second, though, was an innate distrust of the object database for some reason. Even though it was an append-only, transactional, recoverable, storage system, people would rather store it in a brain-dead file system because they felt it was "safer." Irrational, completely and totally, and much of the same criticism is launched at the concept of system "images" in Smalltalk.

I think it's wrong to underestimate the problems with Smalltalk's system image and the ZODB. In fact, I'd say the image is perhaps the biggest problem with Smalltalk.

Well, starting from causes, I think Smalltalk's insularity is its greatest flaw. This is in part because Everything Is An Object, and objects have fairly specific conventions. There's a considerable barrier between The Rest Of The World and Smalltalk. It's not just that the syntax looks weird to people -- though that doesn't help -- but it also looks weird to other programming languages. You can't easily map C or other libraries into Smalltalk. You can't make analogous interfaces to the interfaces found in other languages -- you can't even make a freakin' function! Sure you can do everything you need to without functions, but you can't directly map other system's APIs onto Smalltalk syntax, which means you can't map people's past programming experience, or their past programs. (It doesn't help either that Smalltalk's OO nature encourages everything to be a framework, instead of building mere libraries, but that's a topic for a different day)

These could be resolved if someone really wanted to do so (though no group of people seems to want it enough to effect the basic culture of the language in order to break down that insularity of syntax). But the image provides other problems. The image isn't strictly required -- I believe `GNU Smalltalk`__ has no image, or at least got along without one at one time, and the Smalltalk-ish Objective C has no image. But the image has become an almost fundamental part of the Smalltalk environment, and the environment is hard to disassociate from Smalltalk itself. You can't write scripts for Smalltalk, except for scripts that work in the Smalltalk environment (doIt kind of scripts). You can't run Smalltalk from the command line or as a CGI script. (This is true of Java too, but Java succeded despite this due to extreme effort on Sun's part.) It's also hard to isolate a "program" in Smalltalk -- it's all one big heap of code, you may have added methods to Object, who knows what. This customization/localization of the environment is something where Python has successfully resisted, Ruby is backtracking on, while Perl is commiting suicide to allow total customization based on Wall's personal philosophy and that language's bizarre community.

I'm sure Smalltalk has tools that solve this too. But I think those tools are basic prerequesites to a successful language, and I don't know if the Smalltalk community has treated them as such. Many of Smalltalk's tools seem to be so commercialized that it doesn't seem like it matters much. Some happy Smalltalkers in the financial community get to try all this stuff out, while the larger world doesn't have access -- and so the rest of the world stopped caring. At least the part of the world that was willing to pay attention to cool technical stuff. The corporations that could shell out the cash aren't what drives technology advancements, because they are too concerned about risk, and anyway, corporations don't create things, only people do.

Well, that's a long diatribe. And I feel like I have only just begun. Anyway, I think Smalltalk is too perfect. Its ideas may one day have their time. Maybe the idea of a "program" will go away some day -- I personally would shed no tears if it did. But Smalltalk doesn't offer us a path from here to there, and the world isn't willing to jump all at once.

Docutils System Messages

System Message: ERROR/3 (<string>); backlinks: 1, 2

Anonymous hyperlink mismatch: 2 references but 1 targets. See "backrefs" attribute for IDs.

Read: Where Smalltalk Went Wrong

Topic: Static publishing debate Previous Topic   Next Topic Topic: God hates shrimp

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use