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