← Back to context

Comment by DonHopkins

1 year ago

Many languages like Ruby have sweet "Syntactic Sugar", but Raku has "Syntactic Syrup of Ipecac".

lol - thanks for adding to my vocab!

[in defence of raku, while it truly is marmite wrt Ruby / Python, there is a very loyal core of smart people that love the freedom and expressiveness it offers]

  • > there is a very [tiny, very] loyal core of smart people

    FTFY ;) Honestly, I love Raku - it's almost like Racket of the non-sexp world - but the community is microscopic, and the development is slow. It's a shame because, solely based on features and in terms of design, it's a serious contender for the most powerful dynamic language out there. It's packed with interesting features (junctions, phasors, traits, quote/unquote macros (soon), typed variables and subsets, coercible types, augment, OO system with multiple inheritance, interfaces, generics, multi-subs and multi-methods everywhere, custom operators including circumfix, regexes and grammars, etc, etc...) out of the box and it's actually really impressive how all these features work together in a cohesive design.

    Unfortunately, the underlying implementation seems a bit chaotic; some features are either not fully implemented or specified, the performance could be better, and so on. So, while I love and still use Raku for almost all my scripting, if I were to start a serious project, I think I'd go with Common Lisp instead. CL has fewer features out of the box, but many of the missing ones are one `ql:quickload` away (or you can use CIEL), while the underlying implementation (SBCL in my case) is diamond-solid.

    ---

    Aside: that `render` method could be sweetened a lot! For example:

            tbody @!data.map: { tr .map(&td) } ==> table :border<1>
    

    or:

            tbody @!data.map(*.map(&td).&tr) ==> table :border<1>
    

    or finally (using the fact that hyper descends into subarrays):

            tbody @!data».&td.map(&tr) ==> table :border<1>
    

    (I think Raku is unrivaled in one-liners!)

    • thanks for the code examples - personally I prefer mine (but that's my opinion)

      one liners have their place - but I like to avoid compression for the sake of it

      to put some numbers on it there are 146 folks listed on the main IRC chat (plus a bunch more (79) via the Discord channels) right now and 1.5k members of the sub-reddit

      1 reply →