6 ms·
Beside objects one true revolutionary idea in Smalltalk is the uniformity of meta facilities - an object knowing about itself and being able to tell you. I see
by torstenB 10y ago
Beside objects one true revolutionary idea in Smalltalk is the uniformity of meta facilities - an object knowing about itself and being able to tell you.
I see so many dev resources burnt just because people build boring UIs or persistence bindings by wiring MANUALLY in traditional languages. All this is a no-brainer when enough meta infos (objects and relations) are available and a program is reflected as data as in Smalltalk (not dead text). You can not only transform data but also your code. Pharo now makes some more additonal steps to enhance reflection (metalinks, slots, etc).
What do you see as next steps in using metadata/-infos for (meta)programming ...
- alankay1 10y agoI think one of the biggest blindnesses of our field is scaling (and I'm not sure quite why). This leads to an enormous amount of effort at roughly the same scales of some good ideas decades ago. (I think my background in molecular biology -- which continues to a very small extent -- helped this a lot. At some point one has to grapple with what is more or less going on and why it more or less works so amazingly well.) What would a programming language be like if we actually took the many dimensions of scaling seriously ... ?
- heurist 10y agoWould you consider the actor programming paradigm to be a good scalable model? It largely matches what I observe in both nature and where we seem to be headed with software engineering (containers in the cloud, near-trivial redundancy, stability, and scalability when properly designed). When I consider society I see a complex network of distributed actors, and when I consider my mind/brain I see the same. At this point in my philosophical development I am definitely resonating with the actor model, but I'm sure you are more familiar with this paradigm than I am - if not actors, where would you recommend searching?
- alankay1 10y agoI have every reason to like Actors! But think about scaling for a while, ...
- heurist 10y agoGreat advice, I am currently lacking there. Thank you! Edit: A follow up if you don't mind - have you investigated multi-agent autonomous systems or agent based modeling?
- alankay1 10y agoSure ...
- heavenlyhash 10y agoCan you share some more seeds of thought on this? I sense you have better questions here than anything I can yet think to ask, myself :) I'll take a crack at some things: Actors are great patterns for encapsulating concurrency, but struggle in scaling -- because failure domains and persistence/forgetfulness on an intergalactic network aren't always lined up on the same borders as the actors? What are some of dimensions of scaling would you identify as under-understood?
- alankay1 10y agoJust to bring up one possibly helpful analogy: Suppose we have a good model of atoms -- how much of this will be a good way to think about living systems? (Or should we come up with better and more useful architectural ideas that are a better fit to the scales we are trying to deal with -- hint: in biology, they are not like atomic physics or even much of chemistry ...) A point here is that trying to make atomic physics better will only help a little if at all. So trying to make early languages "much better" likely misses most if not all of the real progress that is needed on an Internet or larger scale. (I personally think that much enterprise software even today needs architectural ideas and languages that are different in kind than the languages of the 60s and 70s (meaning most of the languages used today).