Animorphic ST (Strongtalk) released!

Stefan Matthias Aust sma at 3plus4.de
Sat Jul 20 17:49:06 UTC 2002


Andreas Raab wrote:

> I found the type-system the most unnatural part about StrongTalk.

For me, Strongtalk *is* the typesystem.  It's nice, if the Animorphic ST 
release is also fast, but IMHO the static type system is the more 
interesting  part.

 > It
> feels displaced and if you look at methods like "->" in Object you can
> see that there are some rather nasty complexities associated with it
> (not to mention readability issues).

One can always argue about syntax.  That's something you have to get 
used to.  All it says is that an Association's type is created from the 
receiver and the parameter type.  I don't understand why that isn't 
written as

  -> other <Y def> ^<Association[Self, Y]>

Instead of <Y def>, I might prefer 'Y.  I once saw a Smalltalk dialect 
which used {} instead of <> to declare types.  That could be more readable.

However, types don't become easier just by not writing them down...  You 
have to understand them to program.

>>In Smalltalk (without types) no tool can exactly know the type of an 
>>expression and code completion (with is IMHO the best 
>>productivity tool of a modern IDE) cannot offer a valid
>>selection of applicable method names.
> 
> That has been said many times and yet, I disagree. To the best of my
> knowledge nobody has ever tried to build a simple type inference system

Perhaps, because it wont't work?

> which just goes along with you as you are writing code and tries to
> discover what the types might be.

Just a little bit of type inferrence doesn't work.  Once, I tried it and 
also had some discussions with somebody who thought about writing is 
master thesis about this topic and we finally agreed upon that you'd 
need either a full features type system or stay with no types at all.

 > Name completion and other utilities
> can even be used to tell such a type inference system about what types
> of certain objects are and I still think that you should be able to
> trivially figure out  the types for 90% of the system

  someMethod: param
    param .

Okay, please tell me the methods applicable at the "." ?  That's 
impossile if you don't want to show *all* method names of the system - 
which are probably 8000-10000.

Code completion is IMHO the most important and best way to learn a class 
library.  VBA is a good example.  Using the simple built-in IDE of MS 
Word, I can script the whole program without much problems, just by some 
guessing and the code completion.

> I would hope that some better syntax can be found than
> is currently in both StrongTalk and SmallScript.

Here, I agree.

> But of course you do realize that *optional* types

Sure, but it wouldn't be Smalltalk if you couldn't simply make the 
optional mandatory and set the requirement of type in your project.

In addition, I could document my assumption by annotation types which 
would be then checked by the system and eventually get a better 
documented, well formed program.


bye
-- 
Stefan Matthias Aust   //
www.3plus4software.de // Inter Deum Et Diabolum Semper Musica Est





More information about the Squeak-dev mailing list