Andreas

did you realise that pools are just static cached version of (simple value) 
returning messages?


>> How many lectures did you give? It is annoying to have to explain something 
>> that usually people do not need to know.
> I don’t give any lectures to students but I often try to „teach“ Smalltalk to 
> some of my colleagues and friends. And with that I have hard times.
> Typically „experienced“ software developers think about themselves as being 
> experts in object orientation and programming languages,
> even if they have only experiences with C, C# and C++. „Teaching“ them about 
> Smalltalk’s idea of object orientation is VERY hard, almost
> impossible because they already know everything (read: they are ignorant) and 
> lazy. I guess there are some similarities to students.
> So, no I don’t teach but have my own problems ;-)

So when you learn a new language like python do you get all the syntax to 
create a class as a template?
Or just the non optional parts? 
To me smalltalk class definition forgot the be designed, else variables would 
have been first class objects like in CLOS MOP

>>>> Newcomers don’t use a lot of things but that should not be a reason to 
>>>> hide them. In my experience newcomers need guidance and rules but
> „oldtimers“ need freedom.

and? you still can use Pool even if I do not really understand why we need them 
since we have classes and messages. 
Because Pool are just a static version of that. Did I miss something obvious? 
Pool may have they place in 1980 to optimize for speed but I would be curious 
to see if a modern languages using a decent JIT
would keep them. Especially since class names should be dynamically looked up. 

> This is one of the reasons I really enjoy dynamic typing and Smalltalk. I 
> don’t like to obey to artificial rules that only
> put permanent burden to me in order to protect me from something I might do 
> wrong sometimes.

You are mixing things. So I will not comment on it.

> At the moment I am considering pool dictionaries for a solution of a problem 
> at hand: I need to collect some information (warnings, errors, and reports) 
> over lots of related and unrelated classes.

Then create a class 
        MyRessources and define class methods and you are done. No need to use 
SharedPool + initialize + poolDictionary….

> For the moment I have parameters, but that is getting inconvenient with a 
> growing number of things to collect…
> So, if you need something it should be there and not necessarily obscured and 
> hidden! 

        Come on, do you know in EBNF the * notation zero or more or optional?. 
        You do not write your method using all the constructs of your language, 
don’t you? so this is the same for class definition.

>>> So, a -1 for this change from my side.
>> 
>> We just need a full class template menu item.
> Yes, but it’s not there yet but this change already took away some power 
> without giving me back something in exchange!

since you are an experienced programmer this is simple. Look for trait template 
and send a fix to get an extra menu.
I will go to sleep now but I guess that I can do that in 10 min and we are 
talking about making our system more accesssible to people.

> I am able to ignore some parts of class creation message easily (I also don’t 
> use class variables that often) and I don’t see why students
> shouldn’t be able, too.

        When is the last time you learn a new language for real? I started 
Python recently because I need some fresh air :)
        and I could define a class in 3 4 lines within 5 min.
        Without needing class var, static, delegator... (and if you know python 
you know that it can be UGLY and COMPLEX) 
        I found blogs of people explaining wrongs some advanced features still 
many people are able to define a class 
        within the 10 min they started to learn python. 

> Quite contrary I think if you hide these things from students they won’t see 
> it, won’t get curious and in the end will only
> learn the boring parts of Smalltalk…

        You are wrong and you can trust me on that. 
        We want to make sure that people can build fast great stuff and feel 
good and powerful and not
        good because they succeeded to jump over the barriers in the middle of 
the way.
        Pharo is not an obstacle run, it should be smooth and great.
        
        Pharo is not for pedandic programmers or smalltalk bigots, it is for 
making people been able to build things nicely.
        Simplicity, simplicity, this is why one challenge for Slot is to enable 
super users without breaking simplicity.



Stef






Reply via email to