MurphyA/hacker-news huggingface dataset:
by eduction | 2025-12-06 18:22:00+00:00
I agree and Steve Yegge covered the reasons well here: https://sites.google.com/site/steveyegge2/ancient-languages-...

His point about references is no small thing. Other dynamic languages don’t make users think much about the distinction between references and values at the syntax level. With Perl you needed to use “->” arrow operator frequently if and only if you were using references. So getting at a map inside an array or vice versa had its own syntax vs reading a string in a map or array.

Also it had bolted on, awkward OO on top of the bolted on, awkward params passing. You literally had to shift “self” (or “this”) off a magical array variable (@_).

By default it wouldn’t warn if you tried to read from an undeclared variable or tried to use one in a conditional or assign from one. You had to declare “use strict;” for that. Which wasn’t hard! But these awkward things piled up, a bunch of small cuts. Don’t forget “use warnings;” also, another thing to put at the top of every Perl file.

To the extent its awkward syntax came out of aping of shell and common Unix cli tools, you could maybe see it as cultural issue if you squint.

But any language in the mid 90s was infected with the “rtfm” priesthood vibe the author writes about, because the internet then was disproportionately populated by those sysop types, especially the part that can answer programming language questions on usenet, which is basically where you had to ask back then.

So for example Rails won for technical reasons, it is much more concise with fewer footguns than its Perl equivalents. I was actively coding web stuff in Perl when it came along and early switched. It wasn’t a cultural thing, having choice in Perl was fine (and ruby has sadly never grown much culture outside Rails - it could really use some). It probably did help that it came along in the mid aughts by which time you could ask questions on the web instead of Usenet. And it used YouTube for that first rails demo. So ruby did end up with a less sysopy culture but that had more to do with the timing of its success than the success itself.
by seec | 2025-12-06 18:22:19+00:00
Well, he buys them for the same reason people buy Apple products: very performant, look good, and carry a lot of social status.

Otherwise, they make some very questionable engineering decisions for sure. On their motorbikes, you often have to disassemble half the bodywork just to change the battery; that's just beyond stupid. But like Apple, their products are kind of unique, so people deal with it.
by mcny | 2025-12-06 18:23:30+00:00
Even the batteries are not interchangeable on phones. You'd think all phones should have the same exact battery, that this kind of standardization is beneficial for phone manufacturers as it helps them bargain with their parts suppliers but no for whatever reason we can't have that.

Edit: I am not saying just user replaceable. I mean standardized so the same cells in a 2024 phone also works on 2025...
by grafmax | 2025-12-06 18:23:30+00:00
No you need a state to enforce the property rights of capitalists over workers.

Nor are people all “free” under capitalism - for example the ability to start a business is predicated on assets to fund the business. Capitalist freedoms is freedom for the rich.

And the supposed freedoms of a worker to enter into a contract are a choice between lesser evils - limited choices given their precarious position relative to employers. Jeff Bezos vs an Amazon warehouse worker - it’s not a contract between equals. You seem intent on denying the real power difference between employers and employees as supposedly free arrangements.

As for worker rights they have been fought for by the labor despite the vicious resistance of the capitalist class. Since the 1980s those rights have deteriorated as wealth has continued to consolidate. It’s a trend that’s likely to continue as the richest pollute our globe, promote austerity, extract rent from the working class, undermine democracies, and instigate war.
by dangus | 2025-12-06 18:23:50+00:00
It’s a fun one, though, because JKR’s whole life and works involve strong themes surrounding eugenics.

So it’s really not that far of a stretch to make this association in her case.

In her books the wizards fight against wizard Hitler and his eugenic holocaust. In real life, she engages in her own form of eugenic crusade where she believes the sex organs you are born with define your personality, identity, and your criminal tendencies.
by mvkel | 2025-12-06 18:23:58+00:00
One of the most common Show HNs:

https://news.ycombinator.com/item?id=45700884

https://news.ycombinator.com/item?id=31083432

https://news.ycombinator.com/item?id=22811653

https://news.ycombinator.com/item?id=30027344

https://news.ycombinator.com/item?id=23157408
by bigstrat2003 | 2025-12-06 18:24:06+00:00
> I think it's because unwrap() seems to unassuming at a glance. If it were or_panic() instead I think people would intuit it more as extremely dangerous.

Anyone who has learned how to program Rust knows that unwrap() will panic if the thing you are unwrapping is Err/None. It's not unassuming at all. When the only person who could be tripped up by a method name is a complete newbie to the language, I don't think it's actually a problem.

Similarly, assert() isn't immediately obvious to a beginner that it will cause a panic. Heck, the term "panic" itself is non obvious to a beginner as something that will crash the program. Yet I don't hear anyone arguing that the panic! macro needs to be changed to crash_this_program. The fact of the matter is that a certain amount of jargon is inevitable in programming (and in my view this is a good thing, because it enables more concise communication amongst practitioners). Unwrap is no different than those other bits of jargon - perhaps non obvious when you are new, but completely obvious once you have learned it.
by jordanb | 2025-12-06 18:24:10+00:00
Shell is a crappy scripting language because it has primitive data structures and data flow control making it hard to manage and manipulate data as you process it between applications. The fact that newlines are such a problem is a case in point.

Python is a crappy shell scripting language because the syntax around pipe and subprocess is really clunky.

Perl managed to have decent data structures and also have decent syntax around subprocess calls.

But I feel like the Python invoke module gives me everything I need wrt subprocess calls. I basically write any nontrivial "shell script" these days as a Python invoke command.
by zahlman | 2025-12-06 18:24:16+00:00
> Perl was (and still is) a very expressive and concise language for working with text and a unix-style system. It exists in the odd space between a shell language and a general purpose language.

GvR explicitly describes the motivation behind Python in similar terms (I can probably find a timestamp in that recent documentary for this). But the goal there was to be fully "general purpose" (and readable and pragmatic, more than artistic) while trying to capture what he saw as the good things about shell languages.

And it's changed quite a bit since then, and there are many things I would say with the benefit of hindsight were clear missteps.

We all joke about the hard problems of computer science, but it seems to me that the hard problems of programming language design, specifically (and perhaps software engineering more generally?) include having good taste and figuring out what to do about reverse compatibility.

> I think the article nailed that Perl was just too hard to learn for the value it provided to survive. Python is not nearly as, erm, expressive as perl for working in that space, but it is much easier to learn

The use cases have also changed over time. Quite a lot of developers ended up on Windows (although that pendulum is perhaps shifting again) where the rules and expectations of "shell" are very different. To say nothing of e.g. web development; long gone are the days of "cgi-bin" everywhere.
by jeroenhd | 2025-12-06 18:24:40+00:00
Smart TVs became the norm when they reached the same price point as normal TVs. That's when the ad bullshit came up. You can still buy smart TVs without ads though, going for Android TV and put it in "basic TV mode" will disable pretty much all the crapware. You won't be able to use the TV to watch Netflix or HBO without a third party streaming dongle, though, which is probably why nobody does it.

The smart part of a fridge isn't inherent to the technology necessary (unlike DRM'ed TV streams and apps). In fact, bolting the display (or ice maker for that matter) into the door makes it conduct more heat and therefore perform worse. I don't know about other economic regions, but here the energy label is quite clearly visible on the front of every fridge, so they can't hide the power waste either.

I have yet to see a smart fridge cheaper than a similar normal fridge. Partially because manufacturers seem to market this crap like a luxury feature.

The cheapest smart fridge I can find on a reliable web store, at least here, is three times the price of a normal fridge (€1500 vs €500). Even in the huge "American style" fridges, there's a sizable price difference (€1500 vs €1000) before you get to the first smart fridge.
by ampersandwhich | 2025-12-06 18:25:03+00:00
alephnerd, I have to flat out disagree with your grievances [0][1][2][3][4][5]. The more I read, the worse it gets. The fact that some people in a foreign country feel personally persecuted by the DSA and are willing to bully us around is not a good argument against it [1]. In fact, I think the American attitude of having "red lines" about this is quite frankly irrelevant to the bigger picture [2]. I think there are plenty of ego-syntonic justifications for why it's okay to take a different stance than us on our policies, but while there are plenty of sources, I don't think there is a lot of reasoned analysis [3]. I'm sure much of it is shaped by personal circumstances. But I admit, sweeping historical references can be interesting too [4]. As a Swede, I can tell you that not a single person I know cares about random companies in Czechia, Luxembourg, Germany or France getting pressured [5]. I'm not very familiar with it, but I'm sure Finland already regrets their previous stance on cloud-infra. Perceptions have fundamentally changed about the United States as an ally. As for GCAP and FCAS, they have different requirements and serve different purposes. What's your take on the next Gripen?

If you want to pressure Volkswagen, go ahead. Nobody cares. The fundamental flaw in your position is your implicit assumption about what we value or what motivates us. We're not Americans. I don't think America's "non-tariff barriers" are a valid concern. They are disingenuous rhetoric for domestic consumption. Heads would roll if there was ever an agreement with the US to lower our standards and open up local industries to competition from lower quality foreign importers due to geopolitical pressure. Pressure is not going to undo the DSA or the GDPR because they have broad support. As others have said, it is decades overdue. If Elon Musk is mad about having to follow the law, I'm sure he can find sympathy elsewhere. His sour grapes are not principled, they are about protecting his ego and finding others who do so for him.

Sorry for the bluntness, but I feel it is very much warranted.

[0] - https://news.ycombinator.com/item?id=46170027#46170683

[1] - https://news.ycombinator.com/item?id=46170027#46170823

[2] - ibid.

[3] - https://news.ycombinator.com/item?id=46170027#46171255

[4] - https://news.ycombinator.com/item?id=46170027#46174642

[5] - https://news.ycombinator.com/item?id=46170027#46175036
by amiga386 | 2025-12-06 18:25:03+00:00
Perl's binary brings with it the ability to run every release of the language, from 5.8 onwards. You can mix and match Perl 5.30 code with 5.8 code with 5.20 code, whatever, just say "use v5.20.0;" at the start of each module or script.

By comparison, Python can barely go one version without both introducing new things and removing old things from the language, so anything written in Python is only safe for a a fragile, narrow window of versions, and anything written for it needs to keep being updated just to stay where it is.

Python interpreter: if you can tell "print" is being used as a keyword rather than a function call, in order to scold the programmer for doing that, you can equally just perform the function call.
by cons0le | 2025-12-06 18:25:36+00:00
You're getting a lot of indirect responses. If you've ever tried to mod your android phone the answer is simple. Its google play services and hardware attestation for things like banking websites.

Its really easy to make a custom rom but hard to do serious "real life" stuff; companies don't want to make it easy. To most regular users, if they cant download apps from the google play store, and they can't use venmo\cashapp, then the OS is dead in the water from day 1
by wongarsu | 2025-12-06 18:25:47+00:00
I follow an author who publishes online on places like Scribblehub and has a modestly successful Patreon. Over the years he has spent probably tens of thousands of dollars on commissioned art for his stories, and he's still spending heavily on that. But as image models have gotten better this has increasingly been supplemented with AI-images for things that are worth a couple dollars to get right with AI, but not a couple hundred to get a human artist to do them

Roughly speaking the art seems to have three main functions:

1. promote the story to outsiders: this only works with human-made art

2. enhance the story for existing readers: AI helps here, but is contentious

3. motivate and inspire the author: works great with AI. The ease of exploration and pseudo-random permutations in the results are very useful properties here that you don't get from regular art

By now the author even has an agreement with an artist he frequently commissions that he can use his style in AI art in return for a small "royalty" payment for every such image that gets published in one of his stories. A solution driven both by the author's conscience and by the demands of the readers
by somenameforme | 2025-12-06 18:25:57+00:00
What's a straw man? Following the vaccines, vaccinated people were still getting COVID and indeed dying of COVID. Early on that was disproportionately the elderly as they were who the vaccines were rolled out to first, but nonetheless it was clear that the shots were much more akin to flu shots than e.g. smallpox or polio type vaccines. This is what led to those silly things like the CDC deciding to redefine vaccine on their website to shift vaccination language away from immunity and towards a poorly define "protection" instead.

And the 1:10,000 is not my number. It is the repeatedly verified rates of significant myocarditis and pericarditis, and it's much lower once you filter it down to just younger males since the 1:10000 is for both male and female across a relatively wide age range. It's not tangential, because the entire point of our discussion is that there were rather large groups of people for whom vaccination was, at the bare minimum, an extremely debatable decision.
by js2 | 2025-12-06 18:26:03+00:00
Or even worse:

my($f) = `fortune`; # assigns first line of output to $f. my $f = `fortune`; # assign all output to $f.

Which allegedly got a HS kid in hot water[^1].

[^1]: "It's all about context" (2001): https://archive.ph/IB2kR (http://www.stonehenge.com/merlyn/UnixReview/col38.html)
by nine_k | 2025-12-06 18:26:32+00:00
Perl is a great language, the way Scala and Haskell are great: as openly experimental languages, they tried interesting, unorthodox approaches, with varied success. "More than one way to do it" is Perl's motto, because of its audacious experimentation ethos, I'd say.

Perl is not that good a language though for practical purposes. The same way, a breadboard contraption is not what you want to ship as your hardware product, but without it, and the mistakes made and addressed while tinkering with it, the sleek consumer-grade PCB won't be possible to design.
by segmondy | 2025-12-06 18:26:35+00:00
Last year I used LLM to solve AoC, to see how they could keep up, to learn how to steer them and to see how the open models will perform. When I talk about it, quite a bit of "programmers" get upset. Glad to see that Norvig is experimenting.

p/s, anyone who gets upset that folks are experimenting with LLMs to generate code or solve AoC should have their programmer's card revoked.
by bongodongobob | 2025-12-06 18:27:09+00:00
I have a great uncle that moved to Haight Ashbury to chase the whole spiritual open your mind idea. He said it was nothing like the media or nostalgia portrayed it. Lots of homeless drugged out kids who were completely lost. No jobs, panhandling for food and money, no direction, just spaced out druggies. Said it was fairly sad and he left within a year. He is an old hippy type as well, it was not what I was expecting to hear. I remember seeing an interview of George Harrison saying something similar.
by zdware | 2025-12-06 18:27:11+00:00
That's fair, I've had similar experiences working in other stacks with it. And with some niche stacks, it seems to struggle more. Definitely agree the more narrow the context/problem statement, higher chance of success.

For this project, it described its reasoning well, and knowing my own skillset, and surface level info on how one would start this, it had many good points that made the project not realistic for me.
by webdevver | 2025-12-06 18:28:50+00:00
i disagree, python is Just Better. ive never used perl but ive had to install it due to some antique tools requiring it, and every time its been an incomprehensible mess. i still have no idea how packages work in perl. also, it seems like everything in perl is a string? and the syntax looks like a mess.

maybe its painful for guys to admit that languages could be a lot better designed, and when such langauges appeared, everyone flocked to them.
by bigbadfeline | 2025-12-06 18:29:14+00:00
Depends. Could work if you also have an emergency stop button in case there's something (your car, pet, etc) under the door while closing it, operating remotely deprives you from the ability to keep the pet away or even see the danger. Then, you'd need some IR/camera sensors and a 2nd actuator to stop the door automatically when a sensor is triggered.

With that said, you're on the right path, either automation under the full control of the user or no automation at all. I'd even say, the current plastic gearboxes used in motorized garage doors aren't worth the trouble either, just have a good spring and do it manually.
by hombre_fatal | 2025-12-06 18:29:32+00:00
> I wonder at which point I'll get annoyed enough to go through the effort of setting up immich. Which, naturally, will probably involve me re-working my local server as well. The yak's hair grows faster than I can shave it.

LLM + Nix (ideally NixOS) changed everything imo.

After reading TFA last night, it was less work to tell Claude Code to get Immich running on my home server (NixOS), add the service to Tailscale, and then give me a todo list reminder of what I needed to do to mirror my Macbook iCloud/Photo.app gallery to it and then see it on my iPhone...

...than any of the times I've had to work around "black box says no", much like your example.

Just a couple years ago, this wasn't the case. I didn't have the energy to ssh into my server and remember how things are set up and then read a bunch of docs and risk having to go into a manual debug loop any time a service breaks. LLM does all that. I never even read Nix docs. LLM does that too.

In fact, it was fairly fun to finally get a good cross-platform setup working in general to divest from Apple thanks to LLM + Nix. I really like where things are going in this regard. I don't need any of this crap anymore that I used to use because it was the only way to get something that Just Worked.

By the time I lose my software job and have to compete with you lot, H1Bs, and teenagers to fold sweaters at Hollister, I won't need to use a single bit of proprietary software. It will be a huge consolation.
by superkuh | 2025-12-06 18:30:38+00:00
Write-only perhaps, but with perl you only have to write it once and it'll run forever, anywhere. No breaking on updates, no containers, no special version of Perl just for $application, just the system perl.

Because of this, in practice, the amount of system administration mantainence and care needed for perl programs is far, far less than other languages like python where you actually do have to go in and re-write it all the time due to dep hell and rapid changes/improvements to the language. For corporate application use cases these re-writes are happening anyway all the time so it doesn't matter. But for system administration it's a significant difference.
by tsak | 2025-12-06 18:31:00+00:00
Before I eventually switched to PHP, I ended up writing multiple CMS-like solutions that would run via `cgi-bin` but write contents to the webroot (what we would now call a static site generator). As I was quite limited with the standard shared hosting at the time, I ended up inventing my own single file database format (it was a simple text file) to keep state. It worked quite beautifully and kept me afloat for the first few years of my life as a web developer around the early 2000s.

I was aware of ActivePerl and quite liked Komodo. Thankfully I could keep myself from doing things on Windows/IIS apart from a brief stint writing a single file CMS in ASP.
by autoexec | 2025-12-06 18:31:19+00:00
> A world without ads does not seem possible. The internet mostly works only because of advertisements.

Wow you were fed that lie and you swallowed it right up. It's actually scary that you've been so thoroughly convinced that you've fallen into learned helplessness as a result. Of course it isn't impossible to have a world without ads (at least not intrusive/unwanted ones). The internet didn't have ads when it started and doesn't need them now. No, we don't have to surrender ourselves to constant abuse by adverting, or abandon entire mediums of communication just to rid ourselves of them.
by Nevermark | 2025-12-06 18:31:33+00:00
Evolution has a very clear effective goal. Which it optimizes for, and meta-optimizes for.

The fact that this is a tautological drive, makes this effective goal even stronger than if it was by design. It doesn't drift. You can't change it. Even if you direct adaptations (i.e. replace natural selection with artificial selection), it still operates unswervingly. Only stopping if there is an extinction event, by happenstance or design.

Not only is survival relentlessly selected for directly, but anything that improves adaptability, repeatedly enabling more efficient downstream survival changes, is also selected for. I.e. meta-means to achieve this effective goal compound at multiple levels.

The highest meta-level, of course, being brains that know they want to survive. But that isn't some goal brains made up. It is an effective goal brains were invented for, and pre-imprinted with, as a means of better achieving it.

Anything goal-like in a living system can be explained at a low enough level by simple physics with "no goal". But if "goal" has any emergent meaning, which is to say, any meaning at all, evolution has a goal.

A tautologically emergent goal.

It isn't an overstatement to say that all other goals are either an expression of, or side effect of, that goal. I.e. curiosity, the need to avoid pain (even though statistically that sometimes motivates suicide), play (social and artifact behavioral exploration), and other seemingly flexible idiosyncratic goal generators only exist because of their statistical survival benefits.

So, THE tautologically emergent origin of, and unwavering statistical master over, all other goals.