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.So when you learn a new language like python do you get all the syntax to create a class as a template?
> 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 ;-)
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
and? you still can use Pool even if I do not really understand why we need them since we have classes and messages.
>>>> 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.
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.
You are mixing things. So I will not comment on it.
> 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.
Then create a class
> 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.
MyRessources and define class methods and you are done. No need to use SharedPool + initialize + poolDictionary….
Come on, do you know in EBNF the * notation zero or more or optional?.
> 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!
You do not write your method using all the constructs of your language, don’t you? so this is the same for class definition.
since you are an experienced programmer this is simple. Look for trait template and send a fix to get an extra menu.
>>> 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!
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.
When is the last time you learn a new language for real? I started Python recently because I need some fresh air :)
> 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.
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.
You are wrong and you can trust me on that.
> 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…
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