DuckDuckGo donates $25k to the Perl and Raku Foundation
perl.com
perl.com
It's sad when so many companies are dependent upon perl, but donate nothing. A good case in point is AT&t in the 1980s was broken up into 20 plus different companies. They were then remerged back in the 1990s. But when they merged, they had 20 different computer systems and perl was actually used to glue all those systems together and handle data sanitation and ETL pipelines. Yet AT&t never donated anything to perl.
The problem you describe has little to do with C++ and a lot to do with banking.
I said tech stack affects hiring more than salary. I didn't say there is a lack of C++ programmers. I was very explicit about my statement.
This is what OP was hinting at.
2. Rude? The person who replied did what was said. The first sentence implied that my point was indeed correct. Then the second sentence just ignored what the first sentence implied and ignored the point. They seemed to think the problem is a long-standing problem that banks have. Instead of a problem that has been growing for years because the supply of people who know the tech stack is decreasing. It's fair to point out to people you don't think they understand the problem.
3. Misunderstood? I believe they implied in their first sentence I was correct and that they understood the point. They just didn't like the point.
And you better like to come in a proper suit to work, and talk to your work colleges in formal language, regardless of how many years you happen to have worked together.
It seems crazy that in a community like this, people seem to ignore the fact that people move on to the shiny new tech. And those aren't even that new anymore. It feels like same as how Perl programmers acted in 15 years ago when PHP and Python were eating up all the new projects.
Game dev dont pay.
The back side of that coin is: how catastrophically dumb must they be to have a problem that a stranger can solve on a whiteboard in an hour but your whole organization can't in a sprint?
90k top Amsterdam, 135k top at booking, and saw even higher than that for the same position
You develop something for free, make it available to everyone for free, allow them to modify use and misuse as they wish. Every single step is your conscious decision.
And then, you beg for donations, and complain that people are not donating?
Doesn't make sense. If you don't want to work for free, just charge for it.
Maintenance activities (bug reports, feature additions, participation in community discussions, etc.) should be considered a form of "paying" for OSS - you're giving back and improving the ecosystem. I've done plenty of that for various projects; it's something that I enjoy doing.
Android, React and other projects come from companies with mixed business models, but they have had success as well - there are billions of active Android phones, and many web sites running React.
Some open source companies did not do well, but lots of closed source companies do not do well either.
Also, open source is not just a business model - sometimes people just give software they wrote away.
There are parallels to funding education and scholarship programs in public universities. Corporations often rely on human resources around office locations and they spend in order to ensure a steady flow of talent development. Funding open source is not that different of an issue. One challenge here is IT/Tech departments are often cost centers that are strictly budget controlled and it’s harder to make a case for non-essential costs like funding open source.
There's the "old school" open source, which releases product for the common good. Think Linux, Gnu, Emacs etc. This group would object to the term "business model" since they are explicitly not "businesses".
The second group are commercial products, from commercial companies who wish to leverage some aspect of Open Source to further their commercial ambitions. Think (pretty much) any VC funded "Open source" product. I 100% agree with you in this context.
The latter group (sooner or later) discover that cloud providers will happily offer their product as a service, exactly how their OSS license permits. They are well positioned to extract value from the offering, and thus charge for it.
So yeah, you'll see these companies pivot to a proprietary license - but honestly I don't mind when they do - for them, being OSS was transactional in the first place do it was never going to last forever.
Perl was created by someone in their spare time away from their day job.
When he needed money he just wrote books and charged for those. Ironically the publisher of those books hired him to continue working on the _language_, and of course, write more books.
Makes total sense.
I'd say the biggest influence on my programming work is recognising how to use that style of humour can help deal with situations that can sometimes get to quite high pressure - e.g. "please rescue this failing 9 month long $x^e6 project before it goes live in the next fortnight"
But we've regulated the tragedy of the commons in all sorts of other instances. There's no reason, for example, that a small percentage of corporate income tax couldn't be allocated to a grant program for free and open source software projects.
It isn't hard to notice, for example, that in EU where gamedev companies often receive grants for various nebulous reasons tend to be companies that do not need the money in the first place (and yes, of course there are devs who received money that needed them, somehow people have to excuse the existence things they benefit from).
We manage to do this within other fields of endeavor, at least in the United States, by using an intermediary. Examples: National Science Foundation, Corporation for Public Broadcasting, National Endowment for the Arts.
Ultimately if people value things, they will buy them. Forcing people to pay for things they don’t want to buy simply because you think it would be good for them is a special kind of tyranny.
Wait until you learn where the rest of your tax dollars get spent.
Then all FOSS hackers will be like Khrushchev, wondering why Western industry always outproduced his own, even though the Soviets "where doing everything right".
There definitely is a reason, and it's the same reason this problem exists in the first place: it's hard to measure the value a library or tool generates, whether it's open source or not. How are you going to allocate this tax to projects at scale?
Companies already can barely solve this problem internally, and often fail completely at it. Just imagine how many times you read a comment on HN lamenting the lack of investment in IT infrastructure. The idea that you'll solve it at society scale as a government, for things much more nebulous than even IT infrastructure, is laughable.
Tell me you've never been an open source maintainer without telling me you've never been an open source maintainer. :)
My project might be given to you for free but if you want my time you'll have to pay for it - and i get to decide if i'll sell it to you.
Or, as the case may be, claim that I'll look at them soon, and never make it back.
(Or, when at one point I had a job as an open source developer, to the extent that I thought it would improve our software.)
Where do you draw the line between extending your project and providing free labor to a for-profit company?
Fixing bugs is less controversial, while finding solutions to issues arising in bespoke production environments, with short deadlines, is grueling work for which companies are usually gladly purchasing support contract. Where is the line past which you ask for money, and are you really fine helping a company avoid lawsuits and brand damage after they neglect updates for years, with no gratitude from their side? Case in point: log4shell in late 2021
I work on my various projects to the extent that it is fun. If it stops being fun, I don't do it. Making something broadly useful is generally more fun than helping someone with a one-off thing, though that is not my decision criteria.
If someone wants me to do something that isn't fun, they can offer me money, though they will generally need to offer me enough more money than it isn't worth it.
If you want to bountysource a solution do that. If you don’t want to fix an issue don’t.
If that sounds fun to you, I really cannot argue against it. Usually, that is part of a support contract, and therefore hobbyist open source developers basically supply free labor to for-profit companies.
What really annoys me is when someone decides to build a corporation around an open source project, and then you get the usual blog post around users not paying or OSS not being sustainable. Yes, using OSS as your marketing and adoption strategy is probably not very reliable and can cause users to use your OSS as if it was OSS, that is, without giving anything back. But usually those projects succeed because they are OSS, and would've had basically no users otherwise. Who would've used MongoDB, elastic search, or redis if they were proprietary and required a paid license from the get go?
In a way, that's also true in this case (success came from being OSS) but again, I get why it seems unfair for some when it's a non profit not being able to sustain itself or get contributions for corporate users.
GPL or Affero GPL plus proprietary license. Of course this puts off outside contributors so not if you want a "bazaar" development mode—but people complaining about this are usually not doing so.
It’s like Microsoft’s VS Code nonsense where all the important bits are non free, or any company with “open core”. They don’t care about software freedoms; it’s just open source cosplay.
If both licenses are accepted by essentially everyone as inherently fully free software licenses, and they don't contradict each other, then what's not to like?
Consider the appropriate example here, which isn't anything to do with AGPL (which many people do NOT accept as a free software license), but rather the AL2 / GPL pairing which was the evolution of the original pairing created by the inventor of dual licensing (Larry Wall).
What's your beef with Artistic License 2.0 / GPL dual licensing?
I remember learning about Affero at a Perl Conference in the late 90's or so.
They forgot to read the footnote on how it actually works in capitalist and money driven societies.
definite maybe, but it is not only that.
They better pay, or some body 15 years from now will have to spend $10,000 just to being learning how to code.
That not only reduces number of programmers that you can hire, that will create a serious general programmer crunch, that will likely increase the cost of making software 1000x.
Lets forget about that lawsuit, and trying to take a certain book out of print. /s
B: I find it concerning that $25k is a notable donation; is the Foundation doing that poorly? I would have hoped this number to have two more digits in it for it to be a front page worthy item.
Not sure what the path out here is? Seems like either finding deep pockets that care about their work or some new revenue stream, but without the cash to fund it I’m not sure how.
I wish the Perl foundation good luck.
But to answer the bigger question, yes, I think this was a bit weird. I was also on the board for a while, and I think we did not do a good job of reporting on and monitoring financials. This was one of my frustrations with the organization, and part of the reason I stepped down from the board (though there were other, bigger, reasons not related to the board as well).
In fact, I had made the same points as Makoto does in his blog post maybe 1-2 years earlier in a board meeting. We were running a constant deficit and we didn't seem to have a clear plan for what we would do if that continued.
Open source is largely a thing because lots of people voluntarily invest (valuable!) time on their own in my opinion (with corporate sponsorship being almost negligible by comparison).
The entire idea that open source is volunteer work is largely a myth when it comes to popular open source. Even the ones where you think it's volunteer work they do so much during their working hours that either they're lying to their employer or it's sponsored by their employer.
And it's still easy for individuals to at least contribute detailed problem reports even to very large projects. And these are useful. Even when ignored by the lead mafia.
These days when we find ourselves needing to write a script our first go-to would be bash, and if we need more features or if it's going to be complex enough to have to worry about maintenance costs we'd probably reach for python.
TIL that there is a non-profit foundation that focuses, in part, on supporting Perl. That surprises me to the same extent that I would be surprised to learn that there is a foundation aimed at supporting VB6 (though now watch someone is going to share that there is).
I am constantly parsing reports and then generating commands to run from that. I learned Perl in the 90's and it still works great for that.
I have to code in Tcl for most of our EDA tools (chip design) but I still parse reports in Perl. The younger engineers use Python and I've learned enough but I really don't care. I'm not writing big systems or anything in Perl or Python. It's the Tcl code that has tens of thousands of lines because that is what the tools require.
Honestly, I write about a script a quarter in Perl, but it definitely is handy now and then.
I'm not here to judge. I still prefer to write my python scripts like it's the 2.7 days... (more effort goes to python "code")
The only other language I use much for scripting is Javascript, or rather Jscript, for our accounting department sometimes needs files munged for integration into Great Plains, and I can count on cscript being on the machine and running such scripts.
'I know Perl' people != 'I know Python' people
Perl was/is just so powerful, people have used to do all kinds of things that most people probably don't even have idea can be done. Its some what similar to the power of macros in vim/emacs. People(especially young) are often surprised you can just open vim on a ec2 instance and do something in 30 seconds, they were planning to spend hours/days doing using java+bash or something.
I have both seen and done, people build such extreme, big and hard things with Perl and so quickly, that I'm sure somebody without that context would find it hard to imagine. Im sure you can do in Python, anything you can do in Perl. But definitely not in the same time, not the same size and more importantly- not often.
Programming culture has been trading tool power for beginners ease for decades now, and the market is swamped with tools that appeal and work only for beginners not for advanced users.
In its hey days Perl programmers would do things in a weekend, what the neighbouring Java team had 12 people and a year to do. There is a reason so much was built in Perl in those days. But like most things, money increased, people had lots of time and budget to get things done. Beginner tools got used more often. Perl also got its reputation as a hard to use tool around that time.
But honestly I see so much manual drudgery these days. Its irritating to see that as a Perl programmer. There is nothing more sad that watching people do work, that must be done by a program.
Languages systems or environments have still other deep features themselves. The library or module systems in Python or Perl or Raku do not work the same.
Being able to write "a short, personally useful script.", is a great start. And does not count as "knowing Python" except for the purpose of inflated resumes. The clichés of complaining about "line noise" or WORN (write once read never) - since the fine article was about Perl - counts specifically as "not having learned Perl".
For this year's London Perl & Raku workshop I shortlisted 70 companies to look for sponsorship. That was with minimal research and effort. These ranged from long term ("legacy") users of Perl to startups. From small companies to very large and profitable fintechs. I cover this briefly in the talk I gave at the end of the workshop: https://www.youtube.com/watch?v=el7qHRpEDeE
Yes, there is far less Perl than there was 20 years ago. But Perl was everywhere at one point, and the halflife of programming languages is long so it's still in a lot of places. Programming languages don't die, they just stop being talked about in favour of the shiny new ones.
You're largely preaching to the choir, I don't disagree with anything you said.
As a web application developer who got started professionally in the 1990s, I not only vividly remember Perl being everywhere, I actively wrote a lot of it.
However, in my more recent experience, it is more likely to hear people talk about COBOL, FORTRAN or C++ than it is to discuss Perl. All of those languages predate Perl.
Java also still gets a ton of discussion and it's not shiny and new anymore.
Most of us who spent time writing and maintaining Perl in the 1990s were all too willing to abandon it in favour of other languages with similar features, not because they were shiny and new but because of major pain points with Perl (it earned the meme that it's a write-only language). In my opinion, Perl's greatest contribution and staying power was it's regex engine and syntax which persists.
I don't even like python, for what it's worth, but it's popular for more reasons than it just being "shiny and new" (to the extent that you can even say that about python these days).
My main issue is that "People still use Perl?" has essentially become a meme at this point. I'm relatively sure that any sufficiently commented on or upvoted thread on HN gets that statement in it somewhere.
Yes, Perl is still used. Extensively. People and companies just don't talk about it. That's the problem with Perl these days.
(Personally I think TAP and CPAN were Perl's greatest contributions, as I was never a heavy user of regexp).
Why not?
I don't know. I could speculate:
* The Perl they have is so low maintenance they don't think about it much
* Or they're planning to rewrite it but haven't yet got around to it... after more than a decade?
* They have nobody working on it that is vocal about it or active in the community/blogsphere/etc
* The company policy is to not talk about it
* Or talk about any tech they use - think: banks, large enterprise, fintech
* Or they're successful enough they don't feel the need to talk about it
* They're open source tools or distros that have a mass of other tech so Perl gets ignored even though its practically embedded - Linux distros, git, etc
* The Perl is on the periphery, or not the core logic - test suites (memcached for example), used in build systems, pipelines, Make, oneliners, etc
There's an argument to be had that Perl's strong backwards compatibility has meant it has sat there working in the background for years (decades in some cases). And, as most of us know, when tech "just works" it doesn't get talked about.There's a similar story around javascript - note how es6(?) introduced `"use strict"`. Old school javascript always struck me as a bit like crippled perl with really good vendor support.
You need better peers
I mean, what's there to talk about? It's there, it works, not an exciting subject. It's like municipal water (if you have it), it's indespensible, but what is there to say about it. (Unless it has stuff in it you don't want)
I did get some flack for writing a perl script for work recently, but I had some rubbish to list, and it does the job quite well.
Thanks to globalisation, those times are long gone. Any mediocre developer can find a local employer that pays at least that much.
Open source would be much better with sustainable funding models. But hard to see how this could happen in SaaS dominated modern world.
People love to shit on crypto, but no other industry got so many small-scale, open source projects that got funded when people have high hopes of making bank from it.
I wonder if we could get people to invest in open source projects that were tied to a short position on the proprietary counterpart.
Look at Wikipedia. They are grossly OVER-funded, they have more money they could ever need in fact And they run purely on donations.
I always wanted to donate for Firefox but they don't offer me an option to do so.
Or look at Gimp: https://www.gimp.org/donating/
Not clear call to action. Lot's of confusion options. Not the best marketing.
I usually buy books from most projects I use, do occasional donations to projects when they are relevant enough for my work,...
Not sure the oss community can keep up.
I started playing with Ubuntu in 2006. Exploring the system, I'd come across system scripts in perl here and there, but Lennart Poettering has gradually displaced these with unit files that are much easier to read.
These days I may invoke perl occasionally. A few years back I used checkconfig.pl to build a slimmed-down kernel config for an embedded board. I expect it will eventually be phased out of these peripheral utilities.
Many of the big Perl names long moved on; CPAN is full of abandoned modules. And the world doesn't sit still.
So as time goes by, there's more and more risk of you finding out that some Perl module you're using no longer works. It may not build because of API changes in the C library, or the API of some web service changed, or there isn't an API at all for some pretty big thing that showed up 3 years ago.
That didn't use to be the case.
DDG is not responsible for the greed of companies that contribute zero.
I applaude DDG's decision. Their move is pragmatic and a lot more inspiring to the companies out there than day-dreaming of a single company donating 7- or 8-digit to the Perl community (which, frankly, would not be sane either).
You know, I hear this a lot (especially earlier in my career) but I _never_ ran into any system made in perl, ever. I started my professional career in early ~2010 and have been programming since ~2005.
Maybe they are just very black box-y and I don't even know that the underlying stack is perl?
> FLOSS/fund is dedicated to supporting critical, impactful, and valuable Free/Libre and Open Source projects globally. We give up to $1 million per year to support developers and communities that create and maintain projects, big and small.
I hear Raku is fun, I haven't used it, but I sort of swore a soft oath that I would never touch Perl again about a decade ago after having to debug some regex magic someone did. I'm assuming that once you get past the "hump", Perl becomes fun?
Do you still know what the reason was?
Here's what I sent:
Hello!
I don't have a lot to say to you, but I just wanted to say that about a month ago, I started the transition away from Google, and the most obvious thing to switch was search.
DuckDuckGo has improved substantially since the last time I used it (around 2012), and it's to a point where the results are comparable, and sometimes even better than Google, so changing was pretty seamless. Now the only Google-thing I need to remove from my life is YouTube.
As a somewhat technical person, I was curious about one thing; I saw that the primary language for DuckDuckGo is Perl. Without making any judgement here, was there a particular reason for that choice? Also, are you planning to move to Perl 6?
Anyway, I appreciate you reading my email. DuckDuckGo is a great service, and I hope you guys keep up the good work!
-Thomas Gebert.
Here was his response: Yes, though, the primary language is Perl. It was out of convenience and interest since that was my primary language when I started the project. There was/are a lot of libraries useful for text processing / web crawling. Now Python and other libraries have been similarly built up.What year was this? (I'm Curious, as you mentioned 2012 was the last year you used at the time of the E-Mail)
Thank you!
It takes time to build very large projects like a large, layered programming language, and it should be normal to take many years to learn all the features of something like perl or raku. Because there should be no reason to do it all at once rather than be productive in the meantime.
So anyway, 6 years should not be much in the career of a programming language.
[1] https://felix-knorr.net/posts/2023-06-24-raku-is-awesome.htm...
Raku doesn't seem to have the same ubiquity, while Python is generally available on any system, or even Perl5 is still widely available on pretty much any system. I'd love to start using Raku more but it seems like a hard sell over Python or Bash
Regarding your oath, it's been 10 years and perhaps you are better now at learning language features. Raku's documentation is very good ... but a very different format that perl. And raku doubled down on regex documentation and structuring ideas (which are completely applicable to refactoring somebody else's regex). And the usual forums are excellent at helping with raku questions.
Regarding regexes, Raku introduces a whole new syntax, makes whitespace non-meaningful by default, and allows regexes to be named and then composed/reused. Those three changes, along with helpful modules like Grammar::Tracer, make reading and writing regexes a totally different experience. It's still going to look like noise at first, of course, but even then the syntax parallels normal code far better than PCREs, so you're more likely to make a correct guess about what something means.
Then I remembered my daily mantra:
- NO_ONE cares about the community
- WHAT_THEY_NEED is UniCode & Rats
- WHAT_THEY_LIKE is poetry (not golfing, but an expressive professional medium not desecrated by ‘public void’ line noise)
- WHAT_THEY_KNOW is CPAN, DWIM and REGEX (the easy is easy and the hard is possible)
- WHAT_THEY_WANT is Grammar, Functional, OO, Declarative, Concurrency, Dynamic Type … oh and Procedural done v clean
- WHAT_THEY_HAVE is PHP, Ruby, Python, C#, Go, Perl5, ECMAScript, Java — demand for raku is pent up.
So, I detect some natural frustration within and without the community. Keep the faith. We have a new audience, they value truth and beauty, and a story of battling the odds. They need this TECHNOLOGY. It is [perl6 | raku] – who cares. It may have to start in academia, it may have to start in the p5 stalwarts. It will ignite. Finish the journey. Do not deny your heritage.edit: fixed spelling
I could assert the same about C since Morris Worm, and here we are.
When doing this year's advent of code, some of the terseness of symbols reminded me of perl.
Perl lost me and I transitioned too far away from its ecosystem professionally to return for more than a dalliance or occasional debugging ( https://news.ycombinator.com/item?id=16219876 ).
> Scala feels like the Perl of the modern era: there is more than one way to do it. There is value in that mode of thinking, and Perl is a better language than people give it credit for.
https://news.ycombinator.com/item?id=2603425
> This actually is one of my frustrations with Scala, too many right ways to do the same thing. Makes it easier to write but harder to read especially when people have drastically differing styles. One of the advantages of Java is how easy it is to read and use someone else's code since the base language is so limited.
---
The question of company dialects for various languages comes up occasionally. You can see it with people talking about having to learn a new LISP (or Scheme) each time they switch to a different company.
I suspect that flexibility is similar to what is seen in perl, ruby, scala, and groovy.
The TMTOWTDI Scala exists... but I want to say that it is more a reflection of the power of the language (drawing from their LISP heritage). It becomes then a question of how much does the company impose a consistent way of doing it within the company (compare the different company dialects).
Which people, where? Do you have a URL to a discussion?
I've not seen heard or read such talk almost 25 years of being involved in open source Lisp. Needless to say, I've often seen such narrative repeated by programmers not working in Lisp, who heard it from such others.
Someone talking about any industry work in Lisp whatsoever, even just one job, from any angle, is extremely rare.
And that does get into the "25 years ago" area. Really neat place to browse and see as a historical record of discussion from back then.
The issue is that languages that allow/encourage writing domain specific languages within the environment leads to people doing exactly that - writing a DSL that is then used in that company.
Lisp, Ruby, Groovy, Raku (possible in perl 5 as demonstrated by https://metacpan.org/dist/Lingua-Romana-Perligata/view/lib/L... )...
These languages (and Scala too) allow for writing a dialect of the language that differs substantially from the main language.
I've seen it in ruby. I've personally done it in groovy (wrote categories to make certain reports easier to write)... twice (also wrote a DSL in groovy that matches the script used as input for powershell doing ftp so that instead of `ftp.ps1 script` it looked like "add this import to the top of the script and do `groovy script`")... for that matter gradle is a groovy script that has gone well beyond groovy as a DSL.
Just as the problem existed with "having to learn a new LISP dialect" 25 years ago, many times going from languages that allow for such flexibility in how its written from one shop to another have the "having to learn a new {language} dialect" today.
For code that I have to work on with someone else, I believe it is better/easier to work in a language that doesn't allow you to rewrite the language so that when I have to work with yet another person, they don't need to learn a completely different way of doing it from what they knew previously.
This is important as a powerful tool for a powerful programmer.
I always contrast this to C++ - where you are dangerous, too dangerous, until you have learned a huge amount "of the language" (and good luck understanding it). Or BASIC, where... there isn't much.
Which is 85% of the time my own code!
What they have done (perform around 100M searches a day) is phenomenal. Testament to their marketing.
Unfortunately as a search engine, it's still just a skin of another one, with some additional small scale projects attached.
It's slightly surprising that DDG hasn't attempted to become a 'real' search engine, rather than being a meta. At the moment they make a subset of Bing's revenue per search, never mind what Google make.