On Thu, Feb 5, 2015 at 2:31 AM, Thierry Goubier <thierry.goubier@gmail.com> wrote:


2015-02-05 10:55 GMT+01:00 Sven Van Caekenberghe <sven@stfx.eu>:
It is obviously a compromise (or a continuum) between abstractions and performance.

I agree. With a special view in that we are in a sub domain where simple things well designed (Smalltalk, that is) are amazingly good at supporting complex designs.
��

But there should remain a focus on efficiency (not just speed but also memory), it is hard to fix these things years later.

And I like the fact that efficient code and design is often a pleasure to read and learn from :)

Now, being radical: could we get rid of pragmas ? The only reason I see to them is that they allow extension by external packages, because we can't have methods which belong to two protocols (*).

They are a Smalltalk-centric way of adding arbitrary metadata to methods; Smalltalk-centric in that a pragma is a Message instance, may be queried for senders, performed, etc, and that it can be parsed using the standard compiler (they add no new syntax).�� They have been broadly used.�� IME they have simplified and reduced code where ever they have been used.�� They don't have to be there but they're a good thing.�� Why do you want to get rid of them?
��
(and yes, I'm biassed)


Thierry

(*) I tried to get rid of them in some of my stuff, where it is used in the same way GTInspector and GTSpooter uses pragmas, and I had to stop because of that feature. All other uses of pragmas are replaceable (and often, as in the gt stuff, redundant).

--
best,
Eliot