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.