Live data from Hacker News

Raku: A language for gremlins

buttondown.email

71–80 of 257 posts

Re: Raku: A language for gremlins

#71

One way you might arranging programming languages in a 2D space is with two axes: 1. How much should the language surprise you? 2. When the language does surprise you, should it delight you or horrify you? surprising ^ | | | delight horrify | | | v unsurprising Only a sadist would deliberately design a language for the top right quadrant, but there are many esoteric languages in there. I think most people tacitly ass…

The issue I have with the language is that I went from the top left of that graph to fairly far on the right, vacillating between the top or bottom. That happened for me long before it became Raku.

I clearly remember reading through the synopsis and exegesis documents around fifteen years ago and being excited for what was to come, but I also remember the first bits that gave me pause. Like unspace[1].

I also clearly remember when it started dawning on me that Perl 6 (as it was still called at the time) would never see any real adoption by people that were interested in other people working with them on things, whether that be some open source project or at a company with coworkers. It was when I was reading through the advent calendar exercises for some year and realized that while I couldn't recall half the features used to solve the problems, I had been exposed to them all multiple times before. The reason I couldn't remember them was because there were so many ways to solve the problems, that it felt like just keeping up with the features and syntax was overwhelming, and that unless you used a very strict subset of the language, it would be near impossible to limit the effort requires to understand what you read from others, or even yourself some time previously.

To many detractors of Perl, this won't be an unfamiliar complaint, but I've always felt that while Perl (5) projects could easily devolve into a mess if some care wasn't taken, it wasn't that hard to exercise some restraint and still take advantage of the extra capabilities when more power was needed. Put another way, while there was definitely more than one way to do it, it didn't feel like there were tens of vastly different ways of doing it that might have been sourced from random inclusions anywhere in the codebase because of numerous ways to insert entry points into every block, leaving you scratching your head when you encountered odd behavior.

Now, it's not a problem for a language to want to reside squarely in the "this is for screwing around and trying any feature you can imagine and how they interact together", but that's not necessarily great when you are trying to accomplish something with someone else and you need to have a shared base of understanding to work from. The real problem is that many, many people in the Perl6/Raku community obviously really hoped for it to take over for Perl 5 or at least be useful for projects which might have multiple people working on them, whether they be through github or for some commercial work entity with coworkers, so they could spread its use and have a reason to use it on a regular basis. I think once it became clear that it wouldn't serve that purpose as well, many people lost interest. I know that was the case for me. I was an avid lurker on the project for well over a decade, but eventually I just couldn't convince myself it was a good idea to use the language for anything other than small test programs to satisfy my own curiosity, and eventually not even there, since if I didn't already have it installed the overhead for a small test was quite high.

In the end I guess Raku found its niche, and it's doing okay where it is (I assume, I've fallen so out of date I'm not sure), but it's sad that it seems they had to shed a lot of their original community (as someone who identifies as part of their original community) to do so, whether that's through any concerted effort on their own part or not. That is, I don't think Raku changed to be what it is, I think most people eventually realized what the bundle of features that was originally proposed really means in reality, and realized it didn't fit what they actually wanted.

1: https://design.raku.org/S02.html#Unspaces

Re: Raku: A language for gremlins

#72
post #45

Earlier quoted context omitted.

I found about raku one time I had an assignment for college where I needed to create a parser. I found raku's grammar features really interesting and used it for my project, it felt almost like cheating since it did pretty much every thing for me (actually it was probably just cheating but it was still fun).

That’s exactly what you want in a language. It should always feel like cheating! Also debuggers. Give RR a try some time :)

Every time I try it, it doesn't seem to work right. Because I don't feel like debugging my debugger, I just go back to gdb.

Yet I only hear other people speaking of it positively, so it seems they don't have that experience.

Re: Raku: A language for gremlins

#73

Earlier quoted context omitted.

Maybe C?

You can definitely get there with C but the language isn’t actively pushing you into horror.

It doesn't actively push you there, which is why it's on the bottom half. There is a fairly coherent mental model for C and once you have it, the language rarely surprises you.

But when it does surprise you, it's almost never anything good. Stuff like Duff's device, `3[someArray] = value`, etc. The surprises are always the language's raw machinery showing through in unpleasant ways, and never a delightful bonus feature the designers added for you.

Re: Raku: A language for gremlins

#75

Earlier quoted context omitted.

I mean, it was "Perl 6" so is it really surprising that Perl devs wanted a language that looks nothing like any other language? Perl has it's own healthy share of "delightful surprises" and Raku was mostly designed to eliminate perl's horrifying surprises.

Apparently by replacing them with new horrifying surprises, if this article is any indication. Good grief, I don't miss working in Perl.

One person's unspeakable horror is another's creature comfort.

Re: Raku: A language for gremlins

#76

Earlier quoted context omitted.

Maybe C?

You can definitely get there with C but the language isn’t actively pushing you into horror.

The Undefined Behaviour In The Walls, slowly driving you mad even if your program runs perfectly.

Re: Raku: A language for gremlins

#77

Earlier quoted context omitted.

Let me guess, you were never a Perl programmer? Trust me, if you have a Perl background, a lot of that syntax looks pretty familiar (the @ sigil in particular denotes an array).

Yes. Though that's my point, to me it doesn't feel the most welcoming to others who know another language (or languages). By all means though, if folks like it, carry on. I am sure Raku as a runtime is well engineered, I respect that. I don't know what lineage Raku shares other than Perl, but it seems to be on its own plane if you will, and thats cool.

[deleted]

Re: Raku: A language for gremlins

#78
post #72
post #45

Earlier quoted context omitted.

That’s exactly what you want in a language. It should always feel like cheating! Also debuggers. Give RR a try some time :)

Every time I try it, it doesn't seem to work right. Because I don't feel like debugging my debugger, I just go back to gdb. Yet I only hear other people speaking of it positively, so it seems they don't have that experience.

It does have some annoying hardware requirements. It works on both modern Intel and AMD Ryzen CPUs, but if your CPU is too old it just can’t. And at any time the next generation of CPUs could break the whole thing, although that hasn’t been a problem yet.

Re: Raku: A language for gremlins

#79
post #30

Let's face it, the Perl 5/PCRE regex syntax is atrocious. The only reason it exists is that (? was a syntax error in earlier regex syntaxes, so it could be redefined to mean anything. Raku is an attempt to design a sane regular expression language from first principles, now that we know what we want them to be able to express. The alternative is being stuck with (?:this|(?>or that)) for the next 30 years.

>Let's face it, the Perl 5/PCRE regex syntax is atrocious. Agreed, but god-damn is it useful.

Raku’s new grammar syntax is much less awful and just as amazingly useful.

Re: Raku: A language for gremlins

#80
Who are the target user base for Raku? I remember writing some fun scripts in Perl more than decade ago when I was still in uni. I really liked the language. Is there any benefit for me as a data analyst to learn Raku over another language like Julia?
Post reply on HN