[Cuis-dev] Language constructs

Erik Stel erik.stel at gmail.com
Fri May 1 02:14:58 PDT 2020


Hi Phil,

Thanks for explaining the history there. Helpful insight!

What is your motivation for using backticks (or actually the ad hoc literal creation)? Is it performance?
And I am intrigued by the ‘full macro system’ you envision(ed). Could you elaborate a bit on that? What would you have wanted? And what does it offer the current language (constructs) and tools don't offer?

Squeak and Pharo compatibility are no concern here (for me). I was referring to it as explanation that backticks did not arrive (historically) in Cuis because of possible ancestors/nephews/… My earlier question about naming referred to Pharo because IF possible I would like to write code that does not require much ‘porting’. But keeping compatibility is again not a major concern for me.

I’m in the proces of building a learning environment for kids based on Smalltalk. So I would prefer a Smalltalk-implementation that is very 'simple', lean and mean (and therefore Cuis seems a good candidate). Maybe it is difficult to have a single language that fulfils both a role for learning as well as a role for skilled and experienced developers that want a high efficiency in/during coding. Because the idea behind Smalltalk is to learn from the system itself, having more language constructions is ‘unwanted’ because more has to be learned. I wonder whether the tool support could help here. What if the CodeEditor would allow for quickly creating things like the Array (or Set) construction and have a pleasing way of displaying this for reading, while still being very clear in that it is actually a regular Array (or Set) construction? As you might understand from this rambling I’m still searching for some answers how I want to do things.

Thx for taking time to explain!

Regards,
Erik

> On 1 May 2020, at 10:19, Phil B <pbpublist at gmail.com> wrote:
> 
> Erik,
> 
> On Fri, May 1, 2020 at 3:46 AM Erik Stel via Cuis-dev <cuis-dev at lists.cuis.st <mailto:cuis-dev at lists.cuis.st>> wrote:
> Maybe I wasn’t clear (because it was part of another topic, see below) or tread on a sensitive subject, but I’m still eager to hear the reasoning for having backticks (which are not in Squeak nor Pharo) from the simplicity point of view. Would anyone care to elaborate?
> 
> 
> Years ago I noticed that we had a lot of pointless dynamism in the image especially since moving to local coordinates (i.e. we had 0 at 0 all over the image.)  In an attempt to *not* extend the language,  I proposed Point class>>zero for effectively a singleton 0 at 0 instance.  Juan surprised me and effectively said 'I don't like that, let's go this way instead' (i.e. backticks).  It was a pretty elegant and minimal solution so I didn't have a problem with it at the time and it has definitely grown on me.  While addressing 0 at 0 was the initial motivation, it is useful anywhere you want to create ad hoc literals.  I use it a ton and only wish we went a little further and had a full macro system in Smalltalk ;-)
> 
> As far as compatibility with Squeak and Pharo... well that's extremely problematic IMO.  Pharo changes things all the time (and not always for the better) seemingly based on the weather.  So any attempt to keep in sync with it would mean breaking Cuis whether or not we thought the change was a good idea.  Squeak has the opposite problem: it doesn't change much at all.  To some, this is an asset, to me it's a liability: I don't mind working with an obscure/fringe language, I do mind working with a dead language.  To me, Smalltalk-80 was great 40 years ago but should not be the final stop in language evolution.
> 
> 
> I am also eager to know what others think about language constructs such as #(), {} and `` for daily usage. And I mean this in the sense ‘Do you use these often? Could you live without them?’. I do understand how they can be used and what their meaning is ;-). And I can also lookup their current use in the default image, but that does not answer how you/we use them in our (application) code.
> 
> I tend to use {} more than #(), but I do use both of those as well.  My only gripe is that all of the damned brackets have been used up by Smalltalk (as most other languages do as well)... I really would have liked to have at least one set of brackets that were available for 'user-defined' purposes but, oh well.
>  
> 
> Kind regards,
> Erik
> 
> 
> Thanks,
> Phil 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20200501/7d9a19a2/attachment.htm>


More information about the Cuis-dev mailing list