MurphyA/hacker-news huggingface dataset:
by BigGreenJorts | 2025-11-23 23:12:19+00:00
> Nobody has fun collecting garbage, but it has to be done. Nobody finds happiness in digging graves, but it has to be done. Nobody is overjoyed at the prospect of telling a person they have a terminal illness, but it has to be done.

but we find ways to make the jobs of people who perform these tasks less horrific. We makes trucks that reduce the physical toll and increase the cleanliness of garbage pickup, we combine the digging of graves with the maintenance and beautification once they have been buried, sometimes you have to tell someone they have a terminal illness, but the majority of the time you are helping someone get their condition into remission.

I think the critical balance that management has to achieve between "having a happy team" and "having a productive team" is finding ways to keep morale up so that employees don't lose their minds and quit or reduce performance doing the miserable stuff.
by cwillu | 2025-11-23 23:12:20+00:00
“Summary:

So, is the Rust bad or good? It’s neither. It’s a mediocre programming language with thousands of man-month put into its development — this fact alone makes Rust a viable tool, just because you can pick it from the shelf and employ as-is. This blog was generated with Zola, written in Rust — I did not have to write a single line of Rust code to use it. And the Rust is a good fit for Zola SSG because of its non-interactive nature with one-way flow of immutable data. Just, please, don’t run around screaming “we should all switch our development to Rust because it’s the best programming language”.”

Is this what makes someone a Rust hater?
by undeveloper | 2025-11-23 23:12:27+00:00
> It’s ridiculous to think the world’s best companies are just wasting money on “average grade labor”.

They are "wasting money" on average grade labor that is chained to their employer. It's indentured servitude. Those who are able to work freely, move companies quickly, for career advancement and in search of higher pay. Some 1000$ to tie a decent worker (honestly, probably a harder worker than their native born peers --- white, asian-decent or otherwise) for 6 years is a decent payoff.

It is a true fact that the US market has an excess of well qualified and overqualified (ex-metas + ex-amazon litter the market). The US is the premier tech hub --- under the current admin, maybe we'll lose that seat to China soon --- I don't think it's a particularly strange to hold that the talent exists already here.
by II2II | 2025-11-23 23:12:29+00:00
The real benefits come from eliminating fares.

While I have never lived in a place with free transit, I have lived in places where it was possible to board trains without passing through fare gates and certain busses through the rear exit. It is amazing how much faster boarding is. They probably face some lost fares, but the benefit of faster travel times outweigh the cost.

I also think that those criticizing free fares are disingenuous. None of those cities had problems with (insert stereotypical undesirable group) using public transit. If anything, there were fewer issues because everyone was more inclined to behave since there were more eyes on the trains and busses.

EDIT: it's also worth noting that collecting money costs money. That's especially noticeable when upgrading to (or to new) electronic fare systems, but it's also true when using things like tickets and cash. It probably doesn't mean such in the cities I've lived in ($3+ fares), but I'll bet it accounts for a lot more in cities that charge $0.50 or $1 fares.
by an0malous | 2025-11-23 23:12:43+00:00
Yes I’ve noticed this change acutely, working at a couple Series A YC startups. I’ve been surprised there haven’t been more articles on this topic because it’s been a miserable shift from my perspective, and I agree with the author that the root cause is the end of the ZIRP era.

Basically, in addition to the irrational AI-everything initiatives in spite of customers not wanting or using those features, as an engineer I’m being asked to basically run my own business unit doing everything from user interviews to product/design, engineering, QA, support, and reporting. There are no EMs anymore, everyone reports to the founders.

I think the author’s post could be boiled down to: in the ZIRP era the engineers had leverage and were treated well, and in the post-ZIRP era the tech companies have the leverage and are squeezing everything they can out of engineers to the point where you’re basically doing the job of a founder within someone else’s startup.
by henning | 2025-11-23 23:12:44+00:00
> T, T&, T*, std::optional, std::unique_ptr to describe similar things, each broken in its own way

How is `T` broken? How are the other things broken?

No matter what language you use, most of the code running between what you wrote and the hardware will be written in C. Your choice for the 1% on top is not very consequential. There is still a huge attack surface area no matter what.
by wat10000 | 2025-11-23 23:13:26+00:00
Gotta love libertarian thinking. In a society where survival requires participating in the economy, transacting with a billionaire is “voluntary.” Paying taxes on vast wealth you chose to accumulate, leaving you merely fabulously rich instead of wealthy beyond comprehension, is “involuntary.”

What matters to power is people, not places. Having power concentrated in one place, made up of hundreds of people who are elected and can be replaced, is fine. Having power concentrated in one or a few people is where things go wrong.
by yawnxyz | 2025-11-23 23:14:14+00:00
I would love to build a programmatic version of this font defined by an array of shapes (full square, triangle, rounded corner, pizza, and notch), and rotations, but I think even that would be a somewhat offense of the license, so I'm not going to publish it.

An array of those would spell out most of the symbols. Some of her characters violate this pattern though so it only approximates most of the symbols.

If lilsneddz responds with yes, I'd love to publish the code so people can make public interactive displays with her font design.

I think a system like this would make it easier to prototype lowercase and other international symbols though!
by skanaley | 2025-11-23 23:14:34+00:00
I use it professionally. My favorite is its seemingly complete lack of bad behavior:

"3" + 1 is neither "4", "31", nor 4. It's illegal.

0 is not false, causing endless confusion on filters and &&s.

For loops don't alter the iterated value within a closure to the max value when it's finally called.

And some positives:

Immutable/functional is the default, but mutability is easy too.

Nice optional, keyword, and variable arity support.

Straight forward multithreading, semaphores, shared state, and unshared state.

Excellent module system:

- renames both in and out, including prefixes, all applied to arbitrary scopes of identifiers (I may be using inaccurate terminology)

- nested submodules

- automatic tests and/or "main" submodules

.....etc.......

If I could be grated a wish though it would be for nice struct syntax, but I think that's in Racket's successor Rhombus; haven't personally tried it yet.

I also sometimes wish it was slightly Haskell-ier in various ways, as did the talented individual who created Hackett.

If I were to guess why it's not used, it's because it's not used, which has a kind of downward-spiral force thing going on with it. If you're a random guy in charge of 200 dudes at BigCo, your first thought probably isn't "We should rewrite this whole thing in Racket!", it's probably more like "We should fire everyone and have Claude rewrite our codebase into Rust!" and tell your boss you saved 200*0.5M a year and ask for a comparative bonus. But if you're solo and in charge of designing, implementing, and maintaining a system with 1 or 2 people over the next 20 years, you can use whatever language you want, and Racket's a pretty good choice.
by Klonoar | 2025-11-23 23:15:03+00:00
Zig currently sits in the hype cycle like Rust/Ruby/Lisp/etc once did here. Eventually something will come along and Zig will be in the hate cycle.

In reality none of these things need the religious wars that seem to go back and forth. It's just an incredibly unfortunate and annoying aspect of how programmer-centric communities tend to go.
by renewiltord | 2025-11-23 23:15:57+00:00
It’s funny how most SF posts will have an “as a native” say that. You don’t really get that from London as much. Strangely parochial attribute of the culture. I wonder which other cities have such populations. NYC has a big “transplant” vs. “native” thing going on so maybe it’s just American, but I think people do it in Vancouver too. Though Canadians just kind of copy Americans for the most part.

I’ve taken to calling the city San Fran as a result. Sometimes I enjoy a good EssEffOh or Frisco too. Really gets the audience going.
by akdas | 2025-11-23 23:16:07+00:00
Shameless plug, but I wrote some blog posts because I had a lot of the same questions. In my case, I wanted to learn the WebGL APIs, so I wrote two posts:

* https://avikdas.com/2020/07/08/barebones-webgl-in-75-lines-o...

* https://avikdas.com/2020/07/21/barebones-3d-rendering-with-w...

I still go back to them myself to refresh my memory. It's funny that I called this a lot of boilerplate, but Vulkan is known to have even more.

This won't answer all your questions, but maybe it'll answer some of them.
by alde | 2025-11-23 23:16:16+00:00
The blogs about page is fun:

> People create lies to gain power and money. Which is kinda what I was supposed to do, but for random reasons I went rogue and chose sanity instead.

> I am anti-bullshit.

These "contrarian for the sake of being contrarian" vibes naturally flow into this Rust post. Rust has a ton of faults, but this is was a very shallow critique.
by WarOnPrivacy | 2025-11-23 23:16:17+00:00
> Rent is up like crazy, but even more so rental criteria is ridiculous and competition is insane.

Yes. People with solid jobs and money in the bank - people who've lived responsibly by saving before buying, almost no one will rent to them because of a zero credit score.

And we know a bit about competition too. We got our current rental in 2021. It was a FB ad, with a crayon drawing of the layout. It was up for less than 2hrs and had 50 applicants. We got it by offering 6 mos in advance + heavy security deposit.
by zelphirkalt | 2025-11-23 23:17:18+00:00
Sometimes it takes a couple of years, before a seed grows. I for one had a professor, who said: "I am not here to teach you C or Java. I am here to teach you computer programming." and then went on to take us on a tour through various paradigms, and included Prolog, back then Dr.Scheme (which turned into Racket), C, Java and Python. At the time I didn't understand Scheme at all. Didn't understand the idea of passing a function as an argument, so deeply rooted in the imperative world I was. But a couple of years later, I came upon HN and comments mentioning SICP ... Didn't that professor teach us something about that? What if I took a look and started learning from this book everyone is recommending?

And there it was. I worked on exercises of SICP and finished approximately 40% of the book's exercises and had a very solid grasp of Scheme and Racket, and any hobby project I would take out Racket to try and build it. Along the way I learned many things, that I would still not know today, had I stuck with only mainstream imperative languages. I wouldn't be half the computer programmer, that I am today, without going the SICP and Scheme way. I also worked through The Little Schemer. What an impressive little book it is!

So it is far from what you claim. In fact even a little exposure to Scheme once upon a time can make all the difference.
by tucnak | 2025-11-23 23:17:20+00:00
I'm sorry, but it is you who completely misses the point, and have so far failed to engage with your opponent's rhetoric on any meaningful level. (Using latin words like sequitur does not count!)

To borrow your analogy: there is, in fact, major issue in people driving cars on roads. This is why many cities elect to reduce car use by means of policy. This is accomplished because there's a dialectic where "should" translates into "must." It's called governance.
by pksebben | 2025-11-23 23:17:21+00:00
At the surface, it's an antitrust issue (the scale of Meta doesn't have the capacity to behave better, so it doesn't). This, like so many other things, can be traced back to a broken system of governance on a root level.

Our system of incentives, operating within a system of governmental authority baked in an age where gunpowder was the new hotness, leads to a place where the movement of individual bits of law or policy don't matter. The forces at work will roll back whatever you do to make the social situation better, if they are antithetical to the interests of capital. Fix healthcare, and the insurance companies will find ways to twist it to their profit. Fix housing, and the banks and real estate developers will find ways to charge rent anyway.

The coupling between decision making and the vox populi is weak and must be strengthened. The coupling between decision making and capital is strong and must be broken. Unless we can accomplish either, any change we make is cosmetic.

I think what we need is a dissolution of representatives in favor of a more direct form of democracy, but most dismiss this as looney/impossible. I'm inclined to agree about the impossibility but that just kind of lands us back at 'what the hell do we do about it'.

Ranked choice is a good start, perhaps. Might not 'fix it' but maybe it's a foot in the door.
by protocolture | 2025-11-23 23:17:33+00:00
>On the other hand, there are thousands of invisible interaction points in your day that are the result of regulation, and your life is better for it. You only get to see the bad in current regulation, not in the bad that could have been caused without it.

Right but thats no reason to try and protect all regulation from criticism.

The problem is that most people assume it is all good, but if you ever get a bunch of people together from a specific industry you will get a sense on how bad regulation of that industry is. Often in places laughably bad. But no one generally cares enough outside of that group to change it. You need to expose people to bad regulation enough that they develop some empathy, to the extent that they can turn a critical eye to the rest of it. Thats the only way to develop an informed voting base these days.

To put it in context, I love to joke with people in wireless about how bad different regulatory frameworks are. I have never once in my entire life heard anyone complain about working at heights/ rope and rescue requirements in any jurisdiction. They are smart requirements and directly save lives. If a tower climber ever tells me "No I am not climbing that", that's basically gospel for me.
by Nextgrid | 2025-11-23 23:17:38+00:00
This is true for passkeys/webauthn/u2f, which is why it’s trash and a completely flawed and not fit for purpose standard (of course the primary purpose is vendor lock-in, not reliable and disaster-proof authentication).

But SSH allows you to export the public key and then you can enroll it on as many hosts as you want without needing access to the private key, so the backup key can remain in a safe, ideally forever as you should never need it.
by lordnacho | 2025-11-23 23:17:47+00:00
I tend to disagree.

- Compile speed. Why do people care so much? Use debug for correctness and iterating your code. You're hardly going to change much between runs, and you'll get an incremental compile. Let rust-analyzer tell you if there are errors before you even try compiling. Let your CI do release optimization in its own time, who cares if CI is slow?

- The cloudflare bug was not caused by rust. Every language needs some way to say "hey this thing is invalid", and that's what happened when the list of AI tools got too long (or whatever their business issue was). Making the app panic was a design choice, not a language choice. Every language has a way to not handle errors.

- Things having unsafe {...} does not make them unreliable. On the contrary, if you run into a memory issue in a rust program, you know where to look for it. The problem in c++ was that the whole program was unsafe, and you then had no way to narrow it down. Memory safety errors are like type errors: a large class of errors that are worth checking for. If you're writing good c++, you have a linter that checks similar things anyway, and if you're disciplined, you've also upgraded warnings to errors. FWIW, I do think the marketing over-emphasizes memory management, because there are a lot of these hard learned lessons that are default in rust but optional in c++.

- Mutable shared state: make bad designs hard to write. Mutable shared state is another one of these eternal bug sources. Use channels and pass messages.

Honestly, it reads like a lot of critiques of Rust: people haven't spent enough time with it, and are not over the learning curve yet. Of course everything is cumbersome before you're used to it.
by EnPissant | 2025-11-23 23:17:58+00:00
The ragebait part is because it feels more provocative than sincere.

Some examples from the introduction:

> Its compilation is slow. I mean SLOW. Slower than C++. I know over years Rust became several times faster, but objectively we need it to be two orders of magnitude faster, not just two times.

I've done significant C++ and Rust and Rust compiles WAY faster than C++ for day-to-day incremental compilation. C++ suffers from the header inclusion problem and modules may as well not exist because you can't practically use them.

> Arc<Mutex<Box<T>>>

This is intentionally over complicated, there is no reason for the Box to be there.

> You cannot get 99.999% reliability with Rust — it crashes all the time.

What does this even mean?
by tptacek | 2025-11-23 23:18:02+00:00
"Memory corruption vulnerabilities" != "concurrency bugs" or even data corruption. The last thread I was in about this, someone pointed to Go segfaults and said "see! memory corruption!" (obviously: no).

An easy response to claims like this: there's a huge tower of software written Go at this point, including the entire K8s ecosystem. Show me the memory corruption exploits.
by landr0id | 2025-11-23 23:18:21+00:00
Rust has its issues and there are plenty of things to not like about Rust, but this article is giving me the impression that this person has not written much Rust. Unfortunately, many such cases with Rust criticism.

> Memory safety is not that sacred. In fact, for many applications malfunctioning is better than crashing — particulary in the embedded world where Rust wants to be present. You cannot get 99.999% reliability with Rust — it crashes all the time.

Yeah until that memory safety issue causes memory corruption in a completely different area of code and suddenly you're wasting time debugging difficult-to-diagnose crashes once they do start to surface.

> We actually had a recent Cloudflare outage caused by a crash on unwrap() function: https://blog.cloudflare.com/18-november-2025-outage/

There were multiple failures before that `unwrap()` and the argument can easily be made that this is no different than an unchecked exception or a release assertion.

> Sync/Send, Mutex and reference counting (Arc)? Unfortuantely, those lock or simply mess with CPU caches badly, so they are inefficient for multithreaded communication, at least an intensive one. They are safe, but inefficient. Which kinda destroys the first uncompromising thing in Rust — performance.

Doing this the "correct" way in other languages has similar impact? So I'm not sure why Rust forcing you to do the correct thing which causes perf issues is uniquely a Rust issue. Doing this the "just get it done" way in other languages will likely come back to bite you eventually even if it does unblock you temporarily.

There are plenty of times I did a `static mut` global in Rust just to get some shit done and oops, accidentally hit some UB as the project grew.
by byko3y | 2025-11-23 23:18:25+00:00
>ORMs, OOP, Git, JavaScript bloat, Linux vs Windows

ORM and OOP whine is niche, agreed. Linux vs Windows is irrelevant because windows runs linux nowadays — I don't think I've read a single article about it.

Git? Okay, mostly circumvented by solutions that don't carry any implementation from the original Git, but have "git" in the product name.

Javascript bloat? I'm pretty sure that's still a hot topic. I don't remember it being solved, do you? Like if I open website and it greets me with a window suggesting to apply cookie policies for 300 (three hundred) trackers on the website — isn't it worth talking about?
by crustycoder | 2025-11-23 23:18:27+00:00
He hates on C++ pretty much the same as he does on Rust. Your argument seems to be that Rust is better than C++, which is akin to trying to make the case that Cholera is better than Smallpox.

Language wars are boring and pointless, they all have areas of suckage. The right approach is to pick whichever one is the least worst for the job at hand.
by mirashii | 2025-11-23 23:18:43+00:00
I agree, and I personally wouldn't call golang memory safe for that reason. Thomas's semi-definition includes the word "vulnerability", which narrows the scope so much that golang fits under the bar, since the common data race that causes memory corruption hasn't been shown to be exploitable without being contrived.

My personal definition of memory safety for a language like golang would specify that you can't cause this sort of memory corruption without an explicit call to unsafe, but there's no real definition to fall back on.
by lxgr | 2025-11-23 23:19:51+00:00
That can work really well for systems where you don't need to share your key material very often, or where sharing is optimized for n-key scenarios.

SSH isn't always that. For example, ssh-copy-id by default does not copy over multiple identities.

For that reason, I'd personally prefer to import my (otherwise airgapped) key into my secure hardware exactly once and mark it as non-exportable in the SSH scenario.
by thaumasiotes | 2025-11-23 23:20:11+00:00
> When I talk about the chain "seeing" a sequence, I mean that the sequence existed in the material that was used to generate the probability table.

> My instinct is to believe that you know this, but are being needlessly pedantic.

> My point is that if you're using a context length of two, if you prompt a Markov Chain with "my cat", but the sequence "my cat was" never appeared in the training material, than a Markov Chain will never choose "was" as the next word.

What you claim here is false. You're making extremely strong, and unwarranted, assumptions about how the probability table "must" be generated.
by hekkle | 2025-11-23 23:20:18+00:00
> I would love to hear what he thinks a good programming language is

Also, not the OP, but I bet it is Python.

- No compile time.

- Not as complex as C++.

- Memory Safety, while they don't care about this apparently, but nice to have.

- Plenty of ergonomic GUI style programming, like PySide (Qt for python).

Of course, I know there are many downsides to python. Such as interpreted languages, especially ones that are duck typed are very slow to run... but that's not one of the OP's complaints.