Thoughts from an outsider

Ramon Leon ramon.leon at allresnet.com
Tue Sep 5 16:27:48 UTC 2006


> This cancerous, destructive idea of "self documenting code" 
> is a big barrior to people new to the language, and I would 
> be willing to bet that is the main reason it isn't taking off faster.

Dude, seriously, chill with the negative language, it isn't cancerous, stop
insulting the other side.  You can ask for more docs without being
insulting.

> I can tell you I have done various projects in various 
> languages to get a feel for it, and never before have I felt 
> like I could do so much so fast, and yet not been able to do 
> very much at all.  Why?  Because the state of documentation 
> right now is almost impenetrable.  Anything I do, I feel like 
> it is probably already there in some system that I don't know 
> about and have no way to find out about.

OK, I get it, you aren't comfortable with Smalltalk as a self documenting
system.  There are other places to get info, try the Swiki
http://minnow.cc.gatech.edu/Squeak, or any of the various mailing lists.  

> The main documentation right now, as far as I can tell, seems 
> to be the mailing list.
> 
> "self documenting code" as a source of documentation is 
> simply not valid.  I am pretty surprised that such an obvious 
> statement has so much resistance.

It is valid, you just don't like it, or don't get it.  OK, just because it
doesn't work well for you doesn't mean it doesn't work well for others.  As
far as I'm concerned Squeak is the best documented system I've ever seen,
because I read the Class Name, methods names, browse example code, read the
unit tests, ask a question or two on a mailing list if I'm stuck, and away I
go.  I find it far easier to learn how to do something new in squeak than in
say .Net, or Ruby, where I don't have easy access to the code directly from
the development environment.

> If source code is the documentation then the bar for 
> becomming productive in the language is the amount of time it 
> takes you to absorb the entire Smalltalk class heirarchy from 
> the browser.  And if you download a new system, then you have 
> to read through every line of source code from that system.  
> And that isn't enough, simply reading the code isn't enough.  
> You have to wrap your brain around *why* it does what it does.
> Otherwise any change you do is probably not going to be helpful.

Yes, you have to grasp the basics of the Smalltalk class hierarchy, once,
but once you get it, you'll get very productive very fast.  It's not like
you have to do this for each program.

> As an example, I downloaded 3.8 from the web site and started 
> trying to run a cool 3d example I saw on one of the 
> tutorials.  Everything worked fine until I tried to bring up 
> a viewer for my fish so I can make it move and stuff.  It 
> brought up a debugger because the "costume" message wasn't understood.
> 
> I took your advice and went all around trying to understand 
> the code.  In the end it looks like maybe the 
> "WonderlandActor" class might have been a subclass of Morph 
> at some point and isn't anymore.  Maybe it changed to a 
> composite patern.  So I tried to see if there was a reference 
> to something I could forward the message too.  But I didn't 
> see any morph's in his instance variables, so at this point what?
> 
> All I can do is post a message on a mailing list.  I don't 
> know who changed what or why, I don't know how it was suppost 
> to work and I have no clue where I would look for some kind 
> of documentation.

Yes, this happens, but documentation won't help this, this is more likely
you bumping into a bug, all this code is so Alpha this happens all the time.
Yes it's frustrating, but this is the kind of thing the mailing lists are
for.  Buggy code isn't exactly newbie friendly, I do sympathize.

> I spent at least an hour tracking through this and came up 
> empty handed.  
> That is bad
> enough for playing around, but in business that would mean 
> not using what ever component it was and writing our own from 
> scratch.  And if we have to write everything from scrath then 
> we are not getting the efficiency from the language.

In business, I doubt you'd be using Morphic, Morphic is an experimental
system, hardly anything I'd be writing biz apps with.  Squeak's main use for
biz system's, I'd think, would be web apps, where Seaside is useful.  For
desktop apps, Squeak isn't what you need, Visual Works or Dolphin would be
more appropriate.

> Smalltalk has some good momentum right now because of what 
> various folks 
> have done with
> Seaside and the subsystems based on it (Pier and co.).  But 
> momentum doesn't 
> mean anything
> unless you can sucessfully turn it into something else before 
> you lose it.
> 
> All the other languages will steal everything you have.  

Great, as Ruby has shown, stealing from Smalltalk works, and makes
everyone's life easier, and brings more interest to the Smalltalk community.
I'm not worried about Smalltalk's future, it looks quite solid to me, it was
good enough to hook me in a very short time, I'm sure it'll be the same for
many others.

> Anything good, 
> revolutionary, etc. will
> be recreated in those languages and then they don't feel the need for 
> Smalltalk anymore.  It
> happened with Steve Jobs in the beginning, it happened with 
> Java when it 
> started and it will
> happen with Seaside eventually.
> 
> And I am not just throwing out insults, I intend to help fix 
> the problem.  
> But first the problem
> must be identified and acknowledged (no one will work to fix 
> something they 
> feel is not broken),
> then possible solutions have to be explored.

Great, I'd rather see people contributing, you don't need to convince
everyone that something is broke, you simply need to get like minded people
to help your cause.  You could probably do this better by not using negative
language (cancer, lying, fooling ourselves) and insulting those who
disagree.  




More information about the Squeak-dev mailing list