smalltalk

Objects? What are those?

March 9, 2004 20:11:39.098

Ian Bicking is somewhat confused about Smalltalk. Yes, Smalltalk looks different than C - but then again, so does Basic (and oddly enough, people seem to be able to use it). Here's the part that caught my eye:

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)

Gosh, there's so much misinformed confusion there that it's hard to figure out where to start. Too many frameworks and not enough libraries? I suppose this guy has never heard of Taligent or the STL. Everything being an object is a problem? Other than making an assertion, I don't see a real argument in his post. Ahh - here it is "you can't make a function". Translation: "All this object stuff confuses me. Give me a few globals so I can feel safe again!". He then rants about not being able to script Smalltalk or use it to create CGI scripts - first off, I've created Smalltalk images that support scripting on Linux - it's not a huge challenge. The issue here isn't capability so much as culture - Smalltalkers haven't put any effort into supporting scripting, because - for the most part - they haven't been interested. CGI Scripts? I could create one in VW, although having a persistent application server that gets invoked via web server services is simpler and more efficient. I can't run Smalltalk from the command line? Apparently, he hasn't seen any of my Linux server images.

I just love it when people without any recent Smalltalk knowledge make wild assertions like this. I don't spout off about Python or Ruby - due to the simple fact that I don't know a lot about them. I think Ian needs to download a Smalltalk system and ponder it awhile before the next time he lets loose with uninformed silliness....

Update:Patrick Logan comments

Comments

Untitled

[Ng Pheng Siong] March 9, 2004 20:31:55.786

Listening to the yakking of some Pythoneers and others like the ones in Joel Spolsky's thread about Lisp reminds me of Paul Graham and his Blub programmer.

Untitled

[Notarianni] March 10, 2004 7:46:56.867

Very interesting critics of Smalltalk! It remember me that the term "Impressionist" was invented during 19th by somebody that did not like this kind of paint. He said something about the fact that the paint was not representing sharp detail, but just giving a kind of global "impression". He got it! He understood the message but that was too much for him and decided he was not good. Here, I have the same feeling about Ian Bicking. Looks like he understood the concept, but that's too much for him. The thing is too powerfull. He prefer to stay with global variable and static functions. Paint was nice before 19th, but personnaly, I prefer abstraction of the 20th.

Re: Objects? What are those?

[James Robertson] March 10, 2004 8:21:03.529

Comment on Objects? What are those? by James Robertson

Wow, this has engendered some conversation. Have a look at the comments on Ian's site.

Re: Yes, I know what the hell objects are, thank you

[Ian Bicking] March 10, 2004 13:22:57.236

Notarianni: Thanks, I think you understand where I'm coming from. But unlike painting, programming is a social affair. None of us starts with a blank canvas, none of our products are finished and hung on a wall. In art you can be an unappreciated and solitary artist, but still be revolutionary. Maybe the world won't realize it during your lifetime, but your art is justification in itself. (This itself is questionable, and no doubt many artists have been mislead into obscurity this way, but at least the possibility exists.) Because computing is functional, because it is social, I think it must develop in an incremental and continuous fashion. Revolutionary ideas have to be parseled out in small packages, or be optional, and Smalltalk doesn't seem to offer that. BTW, I've written another entry that I hope will correct misunderstandings from my previous post: http://blog.colorstudy.com/ianb/weblog/2004/03/10.html#P68

Swig Bindings?

[Gordon Weakliem] March 10, 2004 15:49:55.376

I don't know what kind of effort is involved in writing an interface to C code from ST, but one place that ST/VW could benefit is by having the ability to generate a binding from SWIG. This seems to be the defacto tool for doing this sort of thing, SWIG currently supports the big 4 scripting languages (Perl, Python, PHP, Ruby) and various Scheme implementations. Even if building a C binding from scratch is easy, I think it'd be good PR at the least, and even better, a nice convenience for people who already know SWIG. Just a thought.