Duckduckgo Donates $25,000 to the Perl and Raku Foundation V2025
Posted3 months agoActive3 months ago
perl.comTechstory
supportivepositive
Debate
40/100
PerlRakuOpen SourceCharitable Donations
Key topics
Perl
Raku
Open Source
Charitable Donations
DuckDuckGo donates $25,000 to The Perl and Raku Foundation in 2025, sparking discussion about Perl's continued relevance and the value of charitable donations to open source initiatives.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
58m
Peak period
30
0-12h
Avg / period
7.5
Comment distribution45 data points
Loading chart...
Based on 45 loaded comments
Key moments
- 01Story posted
Oct 1, 2025 at 12:42 PM EDT
3 months ago
Step 01 - 02First comment
Oct 1, 2025 at 1:41 PM EDT
58m after posting
Step 02 - 03Peak activity
30 comments in 0-12h
Hottest window of the conversation
Step 03 - 04Latest activity
Oct 7, 2025 at 4:20 PM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45439883Type: storyLast synced: 11/20/2025, 9:01:20 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
I got close 20 years ago, but "things".
1. Sigils, and relatedly, contexts. In my opinion, `my $length = @list;` is a horrid way to spell `length = len(list)`. It feels too much like typecasting magic.
2. Having to opt in to pass by reference caused so much pain. You're happily passing a hash around, but then you want to do something to it, so now you have to change the type signature of the function, then everything that calls it, etc. etc.
Contrast with Python, where everything is pass-by-object-reference and sigils aren't needed because contexts in the Perl sense don't exist. This worked on my first try:
I liked Perl. I wrote a lot of Perl. And yet, I still had to pull out The Book whenever I wanted to do anything more complex than passing a couple of ints or strings around. This stuff is knowable, obviously, but I just got tired of having to know it.If one wants the function to mutate them, one has to explicitly mark them as `$x is rw` in the function signature; this then requires one to always pass a mutable container for $x. (A bit more detail: https://andrewshitov.com/2019/10/15/110-is-rw-vs-is-raw-in-r... )
To do this in Python is truly grim:
and thats doing it the unpythonic way, if you were to do this like the typical Python dev would accept in an MR for a large corp you would have written: They would still hate you for defaultdict(datastructure) though. Because absolutely no one in Python realises its got that level of expressionism one of the few places it does.So when you see
then $a is an array reference where each item is a hashmap. But with then $a is an array reference where each item is a reference to a hashmap.Sure you can write amazingly obscure foot-guns in Perl but that's also true of any other language. But honestly I'd rather a few lines of obscure Perl code WITH a comment block explaining why, than a dozen classes with bits and pieces of business logic spread all over the place.
I've done a few small Perl script in the past month, mostly just to try out things and learn a bit more. I'm surprised how robust the code turns out, without me trying. The Perl syntax is a little all over the place at times, but it's incredibly powerful.
Overall it's probably not a language I'd use at work, unless I have to, but for hobby project I would pick Perl again. It has put some of the fun and humanity back in programming.
Its only fault is, it has too much stuff in it.
The main problem in my eyes is not enough volunteers (although they are doing a superhuman effort) to get it into the production level it needs to get more widespread adoption. The other problem is that Python already has a huge amount of libraries and is considered to be "good enough" feature wise, so it's hard to attract interest.
I do enjoy reading Raku code and think it is super neat as this do it all post-modern language. Inertia is hard to overcome though.
That said, how does DuckDuckGo get that money?
Some of the warts are gone (like a list element needs to have a scalar context, the stuff that scares away beginners).
It is a _large_ language with paradigms and constructs that are from everywhere (ML, Haskell, Lisp, C, Perl you name it).
Powerful operators. Actually too powerful. Easy to write elegant line-noise kind of code.
Easy to use built in concurrency. (There isn't much that is not built in :-) )
Nice language for Sys/Ops scripting if you find Bash too dangerous and Python too tedious.
There's also this polished three-hour introductory lecture: https://www.youtube.com/watch?v=eb-j1rxs7sc
Combine that with reading up on details in the reference and you're in for a decent start. https://docs.raku.org/reference
Look, I don't hate Perl. It was my first real language beyond basic that I used for a long long time. But Perl's popularity peaked in the late 90s? Early 2000s? The failed Perl 6 adventure was about the time that people started fleeing elsewhere, like PHP.
Maybe Perl 6 was not even really needed and Perl is perfect ;)
Weird donation if you ask me. There are many many many more interesting languages that I would rather see succeed. Koka, Hylo, Vale, Whiley, Lobster, etc.
They'll rarely advertise it in a job listing of course. They're looking for people with Java/C#/C++/Python experience, and there's certainly plenty of that, but also thousands of little Perl scripts doing ETL workflows.
See the comment from Olaf Alders here:
https://news.ycombinator.com/item?id=44827076
These types of donations to open source initiatives should be publicized and encouraged to have brands see it as a worthy way of gaining supporters.