Ask HN: Examples of elegant, non-trivial Smalltalk? | Hacker News
<Social Media Marketing> The following interesting question/thread could use some more comments/votes: Ask HN: Examples of elegant, non-trivial Smalltalk? | Hacker News
https://news.ycombinator.com/item?id=12185892 <https://news.ycombinator.com/item?id=12185892>
Sven
Hi Sven, I'd put RB + SmaCC among the lot. But I consider that really non-trivial : the pattern language of RB (and the underlying pattern matching and unification algorithm) is top notch, and how SmaCC builds on RB to virtually generate code / optimise code / then compile is nothing short of amazing. SmaCC comes with a pattern matching/unification algorithm over ASTs + auto-generation of AST code + visitor + tree equality + the equivalent of Flex/Bison(*) + a GUI in 11401 lines of code. Thierry (*) And a true equivalent, with LR, LALR and GLR ! 2016-07-29 14:05 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu>:
<Social Media Marketing>
The following interesting question/thread could use some more comments/votes:
Ask HN: Examples of elegant, non-trivial Smalltalk? | Hacker News
https://news.ycombinator.com/item?id=12185892 < https://news.ycombinator.com/item?id=12185892>
Sven
On Fri, Jul 29, 2016 at 2:23 PM, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Hi Sven,
I'd put RB + SmaCC among the lot. But I consider that really non-trivial : the pattern language of RB (and the underlying pattern matching and unification algorithm) is top notch, and how SmaCC builds on RB to virtually generate code / optimise code / then compile is nothing short of amazing.
SmaCC comes with a pattern matching/unification algorithm over ASTs + auto-generation of AST code + visitor + tree equality + the equivalent of Flex/Bison(*) + a GUI in 11401 lines of code.
SmaCC deserves definitively more advertisements and should be added to MOOSE platform I think. When I see all the buzz around languages workbenches like Rascal: https://www.youtube.com/watch?v=Ffx7VtEOSx4 with MOOSE+RB+SmaCC+Reflectivity+GTools we are close to these tools (or even better). Regards, -- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://www.doesnotunderstand.org/
I was at that talk, and I am not convinced that we are at that level, we are certainly not better in my opinion. The advantage that they have is the domain-specific language on top of the parsing infrastructure which makes it easy and fast to write (at least) the demos he is showing. We donât have that and his talk showed me that it is an important thing that is missing. -- Does this mail seem too brief? Sorry for that, I donât mean to be rude! Please see http://emailcharter.org . Johan Fabry - http://pleiad.cl/~jfabry PLEIAD and RyCh labs - Computer Science Department (DCC) - University of Chile
On Jul 29, 2016, at 08:38, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
When I see all the buzz around languages workbenches like Rascal: https://www.youtube.com/watch?v=Ffx7VtEOSx4
with MOOSE+RB+SmaCC+Reflectivity+GTools we are close to these tools (or even better).
Indeed.
I was at that talk, and I am not convinced that we are at that level, we are certainly not better in my opinion. The advantage that they have is the domain-specific language on top of the parsing infrastructure which makes it easy and fast to write (at least) the demos he is showing. We donât have that and his talk showed me that it is an important thing that is missing.
-- Does this mail seem too brief? Sorry for that, I donât mean to be rude! Please see http://emailcharter.org .
Johan Fabry - http://pleiad.cl/~jfabry PLEIAD and RyCh labs - Computer Science Department (DCC) - University of Chile
On Jul 29, 2016, at 08:38, Serge Stinckwich <serge.stinckwich@gmail.com> wrote:
When I see all the buzz around languages workbenches like Rascal: https://www.youtube.com/watch?v=Ffx7VtEOSx4
with MOOSE+RB+SmaCC+Reflectivity+GTools we are close to these tools (or even better).
On 29 Jul 2016, at 14:23, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Hi Sven,
I'd put RB + SmaCC among the lot. But I consider that really non-trivial : the pattern language of RB (and the underlying pattern matching and unification algorithm) is top notch, and how SmaCC builds on RB to virtually generate code / optimise code / then compile is nothing short of amazing.
SmaCC comes with a pattern matching/unification algorithm over ASTs + auto-generation of AST code + visitor + tree equality + the equivalent of Flex/Bison(*) + a GUI in 11401 lines of code.
Well, you don't need to convince me that there is some really magic code out there, thanks for pointing this out. People should really do more effort to promote the stuff they like, by writing some nice accessible article about it. (Hint, hint). The problem is that even though Smalltalk itself is simple, the whole environment, being super dynamic/flexible, is not. It scares a lot of people that they cannot really grab and hold the code. It is only once you get beyond that initial hurdle (which also requires you to unlearn/learn a new approach), that you can start to explore and appreciate all the good stuff. I am still not sure how we can make this clear to newcomers, but it feels like a critical step.
Thierry
(*) And a true equivalent, with LR, LALR and GLR !
2016-07-29 14:05 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu>: <Social Media Marketing>
The following interesting question/thread could use some more comments/votes:
Ask HN: Examples of elegant, non-trivial Smalltalk? | Hacker News
https://news.ycombinator.com/item?id=12185892 <https://news.ycombinator.com/item?id=12185892>
Sven
2016-07-29 15:32 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu>:
On 29 Jul 2016, at 14:23, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Hi Sven,
I'd put RB + SmaCC among the lot. But I consider that really non-trivial : the pattern language of RB (and the underlying pattern matching and unification algorithm) is top notch, and how SmaCC builds on RB to virtually generate code / optimise code / then compile is nothing short of amazing.
SmaCC comes with a pattern matching/unification algorithm over ASTs + auto-generation of AST code + visitor + tree equality + the equivalent of Flex/Bison(*) + a GUI in 11401 lines of code.
Well, you don't need to convince me that there is some really magic code out there, thanks for pointing this out. People should really do more effort to promote the stuff they like, by writing some nice accessible article about it. (Hint, hint).
Understood :)
The problem is that even though Smalltalk itself is simple, the whole environment, being super dynamic/flexible, is not. It scares a lot of people that they cannot really grab and hold the code. It is only once you get beyond that initial hurdle (which also requires you to unlearn/learn a new approach), that you can start to explore and appreciate all the good stuff. I am still not sure how we can make this clear to newcomers, but it feels like a critical step.
Maybe there is a question of coding style coupled with the tools? Thierry
Thierry
(*) And a true equivalent, with LR, LALR and GLR !
2016-07-29 14:05 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu>: <Social Media Marketing>
The following interesting question/thread could use some more comments/votes:
Ask HN: Examples of elegant, non-trivial Smalltalk? | Hacker News
https://news.ycombinator.com/item?id=12185892 < https://news.ycombinator.com/item?id=12185892>
Sven
Thierry I started a Smacc chapter in the PharoInProgress book. Stef Le 29/7/16 à 15:56, Thierry Goubier a écrit :
2016-07-29 15:32 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu <mailto:sven@stfx.eu>>:
> On 29 Jul 2016, at 14:23, Thierry Goubier <thierry.goubier@gmail.com <mailto:thierry.goubier@gmail.com>> wrote: > > Hi Sven, > > I'd put RB + SmaCC among the lot. But I consider that really non-trivial : the pattern language of RB (and the underlying pattern matching and unification algorithm) is top notch, and how SmaCC builds on RB to virtually generate code / optimise code / then compile is nothing short of amazing. > > SmaCC comes with a pattern matching/unification algorithm over ASTs + auto-generation of AST code + visitor + tree equality + the equivalent of Flex/Bison(*) + a GUI in 11401 lines of code.
Well, you don't need to convince me that there is some really magic code out there, thanks for pointing this out. People should really do more effort to promote the stuff they like, by writing some nice accessible article about it. (Hint, hint).
Understood :)
The problem is that even though Smalltalk itself is simple, the whole environment, being super dynamic/flexible, is not. It scares a lot of people that they cannot really grab and hold the code. It is only once you get beyond that initial hurdle (which also requires you to unlearn/learn a new approach), that you can start to explore and appreciate all the good stuff. I am still not sure how we can make this clear to newcomers, but it feels like a critical step.
Maybe there is a question of coding style coupled with the tools?
Thierry
> Thierry > > (*) And a true equivalent, with LR, LALR and GLR ! > > 2016-07-29 14:05 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu <mailto:sven@stfx.eu>>: > <Social Media Marketing> > > The following interesting question/thread could use some more comments/votes: > > Ask HN: Examples of elegant, non-trivial Smalltalk? | Hacker News > > > https://news.ycombinator.com/item?id=12185892 <https://news.ycombinator.com/item?id=12185892> > > Sven >
Le 29/07/2016 à 21:18, stepharo a écrit :
Thierry
I started a Smacc chapter in the PharoInProgress book.
Ok. I'll have a look if I can contribute during my holidays... Thierry
Stef
Le 29/7/16 à 15:56, Thierry Goubier a écrit :
2016-07-29 15:32 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu <mailto:sven@stfx.eu>>:
> On 29 Jul 2016, at 14:23, Thierry Goubier <thierry.goubier@gmail.com <mailto:thierry.goubier@gmail.com>> wrote: > > Hi Sven, > > I'd put RB + SmaCC among the lot. But I consider that really non-trivial : the pattern language of RB (and the underlying pattern matching and unification algorithm) is top notch, and how SmaCC builds on RB to virtually generate code / optimise code / then compile is nothing short of amazing. > > SmaCC comes with a pattern matching/unification algorithm over ASTs + auto-generation of AST code + visitor + tree equality + the equivalent of Flex/Bison(*) + a GUI in 11401 lines of code.
Well, you don't need to convince me that there is some really magic code out there, thanks for pointing this out. People should really do more effort to promote the stuff they like, by writing some nice accessible article about it. (Hint, hint).
Understood :)
The problem is that even though Smalltalk itself is simple, the whole environment, being super dynamic/flexible, is not. It scares a lot of people that they cannot really grab and hold the code. It is only once you get beyond that initial hurdle (which also requires you to unlearn/learn a new approach), that you can start to explore and appreciate all the good stuff. I am still not sure how we can make this clear to newcomers, but it feels like a critical step.
Maybe there is a question of coding style coupled with the tools?
Thierry
> Thierry > > (*) And a true equivalent, with LR, LALR and GLR ! > > 2016-07-29 14:05 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu <mailto:sven@stfx.eu>>: > <Social Media Marketing> > > The following interesting question/thread could use some more comments/votes: > > Ask HN: Examples of elegant, non-trivial Smalltalk? | Hacker News > > > https://news.ycombinator.com/item?id=12185892 <https://news.ycombinator.com/item?id=12185892> > > Sven >
I will review anything you write. I should redo the tutorial to get better at parsing. Stef Le 29/7/16 à 23:22, Thierry Goubier a écrit :
Le 29/07/2016 à 21:18, stepharo a écrit :
Thierry
I started a Smacc chapter in the PharoInProgress book.
Ok. I'll have a look if I can contribute during my holidays...
Thierry
Stef
Le 29/7/16 à 15:56, Thierry Goubier a écrit :
2016-07-29 15:32 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu <mailto:sven@stfx.eu>>:
> On 29 Jul 2016, at 14:23, Thierry Goubier <thierry.goubier@gmail.com <mailto:thierry.goubier@gmail.com>> wrote: > > Hi Sven, > > I'd put RB + SmaCC among the lot. But I consider that really non-trivial : the pattern language of RB (and the underlying pattern matching and unification algorithm) is top notch, and how SmaCC builds on RB to virtually generate code / optimise code / then compile is nothing short of amazing. > > SmaCC comes with a pattern matching/unification algorithm over ASTs + auto-generation of AST code + visitor + tree equality + the equivalent of Flex/Bison(*) + a GUI in 11401 lines of code.
Well, you don't need to convince me that there is some really magic code out there, thanks for pointing this out. People should really do more effort to promote the stuff they like, by writing some nice accessible article about it. (Hint, hint).
Understood :)
The problem is that even though Smalltalk itself is simple, the whole environment, being super dynamic/flexible, is not. It scares a lot of people that they cannot really grab and hold the code. It is only once you get beyond that initial hurdle (which also requires you to unlearn/learn a new approach), that you can start to explore and appreciate all the good stuff. I am still not sure how we can make this clear to newcomers, but it feels like a critical step.
Maybe there is a question of coding style coupled with the tools?
Thierry
> Thierry > > (*) And a true equivalent, with LR, LALR and GLR ! > > 2016-07-29 14:05 GMT+02:00 Sven Van Caekenberghe <sven@stfx.eu <mailto:sven@stfx.eu>>: > <Social Media Marketing> > > The following interesting question/thread could use some more comments/votes: > > Ask HN: Examples of elegant, non-trivial Smalltalk? | Hacker News > > > https://news.ycombinator.com/item?id=12185892 <https://news.ycombinator.com/item?id=12185892> > > Sven >
On Fri, Jul 29, 2016 at 3:32 PM, Sven Van Caekenberghe <sven@stfx.eu> wrote:
On 29 Jul 2016, at 14:23, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Hi Sven,
I'd put RB + SmaCC among the lot. But I consider that really non-trivial : the pattern language of RB (and the underlying pattern matching and unification algorithm) is top notch, and how SmaCC builds on RB to virtually generate code / optimise code / then compile is nothing short of amazing.
SmaCC comes with a pattern matching/unification algorithm over ASTs + auto-generation of AST code + visitor + tree equality + the equivalent of Flex/Bison(*) + a GUI in 11401 lines of code.
Well, you don't need to convince me that there is some really magic code out there, thanks for pointing this out. People should really do more effort to promote the stuff they like, by writing some nice accessible article about it. (Hint, hint).
The problem is that even though Smalltalk itself is simple, the whole environment, being super dynamic/flexible, is not. It scares a lot of people that they cannot really grab and hold the code. It is only once you get beyond that initial hurdle (which also requires you to unlearn/learn a new approach), that you can start to explore and appreciate all the good stuff. I am still not sure how we can make this clear to newcomers, but it feels like a critical step.
There is an initial tutorial that needs some love here: https://github.com/SquareBracketAssociates/PharoInProgress/tree/master/Smacc -- Serge Stinckwich UCBN & UMI UMMISCO 209 (IRD/UPMC) Every DSL ends up being Smalltalk http://www.doesnotunderstand.org/
participants (5)
-
Johan Fabry -
Serge Stinckwich -
stepharo -
Sven Van Caekenberghe -
Thierry Goubier