Hi.
IMHO the Smalltalk system is very difficult to learn. For one reason this is because it's so different to all other languages, people might already know. But the main problem is that you must understand the full picture before you can start. This is a big disadvantage compared to other languages. Once you got it right, it's a very powerful environment but until then, people might give up.
Yes, there's a much bigger than usual critical mass needed to start understanding what's going on. But Dan Ingalls' '81 Byte article is a great compendium that anyone can read in little time. Still ok, you first need to assimilate a new set of axioms and start using them right away.
This looks like church history... either the patch shutting up Galileo (easy) or the revolution that allowed scientific work (hard, now you have to study). Not that I objectively mean Smalltalk is right and the others are a Bad Thing, I feel that but it's my personal opinion. After all, the results of this revolution are to be seen...
A console window which allows to evaluate expressions without doIt menu but just by pressing return would be also useful.
Workspace and alt-d, alt-p is not that traumatic! And notice that with enter... what would you like? Printit or showit?
The browser needs wizards to create classes and methods.
Nahhh...
Then the debugger: Stepping by menu is a pain (we need buttons here). Stepping over and in blocks also. I think, Microsoft's and Inprise's
IDE's
show how a debugger should look like. Where are real break points?
Break points I don't know... maybe not. I guess they're most probably conflictive. On the other hand, Visual Smalltalk's debugger is a nice debugger with buttons and variable inspectors that update themselves with each step or trace. I miss that from Visual Smalltalk... if I understood better the debugger, I would do one for myself in Morphic. Maybe in some time...
If you target Smalltalk to children, don't forget that english isn't the native language of all children, what means, it would be good if the enviroment had national language support (including class and method comments!).
Several attempts to obtain translated Smalltalk systems to Spanish and Portuguese failed miserably because of gender. In addition, in Spanish almost every word translated from English is longer. For instance, consider Array new. First, most computer words were created in english speaking environments so translations look hopelessly horrible. Let's say we use Arreglo, which is masculine. Ok, then
Arreglo nuevo
where nuevo is the masculine version of new in Spanish. Array is kind of Collection, and then what happens? The selector #new is also understood by Collection, but collection in Spanish is female, so the #new in Collection turns out to be #nueva! Inheritance breaks down with stuff like this. And Collection is subclass of Object, which in Spanish is masculine... you could choose to use words with equal gender (masculine because of Object) until you want female classes. Moreover, the simple printOn: for Object won't work any more.
anObject should be unObjeto aCollection should be unaColeccion (because fraction is female) aNumber should be unNumero (notice the nN)
And from Spanish you have the character Ò and accented vowels. And for instance, in Spanish these words have different meanings:
si and sÌ, if and yes te and tÈ, "to you" and tea mate and matÈ, "an argentinian beverage or would killed or chess' mate" and "killed"
So the previous ones should be
unaColecciÛn unNmero
Accented vowels are extremely irritating in any programming environment. So spelling is also broken on the way. Simple words as child, year, tomorrow, morning and even Spanish in Spanish contain Ò. And by the way, in Spanish some kernel selectors simply don't have a translation to allow receiver then messages order. For instance, in Spanish this is awkward:
Objeto nuevo Matriz nueva Numero nuevo
English doesn't complain about this... furthermore Spanish alone has many different variants, and what's nice for one is unacceptable for the other. For instance, in Spain this is fine:
hand grab: anObject mano cogÈ: unObjeto
But here #cogÈ: would be obscene to the max! And imperative doesn't apply to the first person. For instance, it's quite common to see:
self doSomething
Self is another big problem to translate. First, because no word really matches self. And second because conjugation of the verbs changes from person to person, not just by an s. Then self doSomething is impossible in Spanish. Suppose you don't use imperative. Then the verb do, hacer, conjugates like this in simple present tense:
[I] Yo hago [You] Tu haces, or Vos hacÈs informally [He/She] Ella hace, El hace [We] Nosotros hacemos, Nosotras hacemos [You] Vosotros hacÈis, Vosotras hacÈis [They] Ellos hacen, Ellas hacen
The verb to go, ir, is even uglier:
Yo voy Tu vas Ella va, El va Nosotros | Nosotras vamos Vosotros | Vosotras v·is Ellos | Ellas van
The verb to be is one of the worst ones:
Yo soy Tu eres El | Ella es Nosotros/as somos Vosotras/os sois Ellos/as son
To be in simple past
Yo fui Tu fuiste El | Ella fue Nosotros | as fuimos Vosotros | as fuisteis Ellos | as fueron
Decent translation of Smalltalk to Spanish and Portuguese, along with similar languages as French, Italian, Latin and Rumanian should be extremely difficult if not impossible.
Andres.
Andres wrote:
Yes, there's a much bigger than usual critical mass needed to start understanding what's going on. But Dan Ingalls' '81 Byte article is a great compendium that anyone can read in little time. Still ok, you first need to assimilate a new set of axioms and start using them right away.
I like that critical mass metapher ;-) It might be possible that the '81 article would help, but then need to get it first. Perhaps all you need is to republish the old articles. But I'd count this on the "contents is more important than form" argument I tried to make.
This looks like church history...
Well, I don't think so. At least I wasn't forced to deny Smalltalk :-) I think it better compares to either the people who thing that the way is the goal or the other people who just want to reach the goal.
Workspace and alt-d, alt-p is not that traumatic! And notice that with enter... what would you like? Printit or showit?
You're right. I was ranting mainly because of my experiences teaching VW and there, you don't have even simple keyboard accelerators (Unless you file-in my EditKeys feelpolicy of course ;-) When teaching Cobol-people, I noticed that they'd severe problems with that select&action pattern of Smalltalk. They were keyboard-centric people.
The browser needs wizards to create classes and methods.
Nahhh...
Never said that you must use them, but try to explain the funny effects that occur if you make some errors filling out the class creation pattern. Strange error messages or even system crashes because somebody just redefined Class upto recompilations of the whole system can occur.
Break points I don't know... maybe not. I guess they're most probably
Well, just because I want to stop the execution, I don't want to modify a method and "polute" the change set. And again, while "normal" break points are intuitively usable, people have to understand the full set of Smalltalk syntax before they can correctly insert "self halt" statements.
Several attempts to obtain translated Smalltalk systems to Spanish and Portuguese failed miserably because of gender.
Same here in Germany. However, you misunderstood me (or I didn't make the point clear). I just suggested a translated IDE where the browser has a "Ausführen/Ausgeben/Untersuchen" menu instead of "doit/print/inspect." Have you ever tried to teach Smalltalk to people who never learn english? Once I tought VisualWorks to some East German ladies who eventually confessed on the third day (as if that would be something you'd have to be ashamed about) that they never learned English but only Russian at school. Well. Now at once, it's not only a strange language where every message selector must be learned like a strange vocabular but also the whole IDE is alien. All other major programming languages have IDEs which are localized.
Arreglo nuevo
Feld neu (as "neu" is an adjective it's independant of gender)
eineCollection := Collection neu. eineCollection tue: [:jedes | jedes anzeigeZeichenkette]
(Arg, this sounds really strange, even if it's somewhat German. :-)
Accented vowels are extremely irritating in any programming environment. So spelling is also broken on the way. Simple words as child, year, tomorrow, morning and even Spanish in Spanish contain ñ.
All I want in Squeak is, that $ñ isLetter or $á isLetter or $ä isLowercase all answer true instead of false. I think, that shouldn't be difficult to add. As Western European, I'm happy with Squeak default font which resembles ISO Latin1 (I don't know), but I can hear the complains of Russians (not talking about people of Far and Near East) who demand their letters. Perhaps the best solution would be to switch to Unicode.
Happy New Year! bye -- Stefan Matthias Aust // Are you ready to discover the twilight zone?
squeak-dev@lists.squeakfoundation.org