Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
simonask
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
32 ms
·
571.
▲
by
simonask
1y ago
I love this article. Especially the part where, about 2 billion years after the last traces of even unicellular life on the planet has become extinct, the length of a calendar day will have to be officially adjusted, since it will then be 4
572.
▲
by
simonask
1y ago
I think the point they’re making is that computers have traditionally operated with an extremely low tolerance for errors in the input, where even minor ambiguities that are trivially resolved by humans by inferring from context can cause v
573.
▲
by
simonask
1y ago
You’re not wrong in principle, but I think it is absolutely fair to expect a standard library to include a good hash map implementation. These aren’t unreasonable demands. The problem here isn’t that it’s bloated (I don’t particularly think
574.
▲
by
simonask
1y ago
The problem with C++ is not _just_ a bad standard library, but it's also that. There's a lot of "don't use this", including iostreams, std::regex, std::unordered_map, std::variant, and more. Not to mention vestigial
575.
▲
by
simonask
1y ago
Surely you must be kidding? Inserting/removing in a container while iterating through it is one of the all time greatest and most iconic bugs. People do it because they want to do it. In reality, very few real-life containers can suppo
576.
▲
by
simonask
1y ago
Software development is not engineering, but it's also not completely arbitrary. It's a craft, and like all other craftspeople, you build intuition through experience, which guides decision-making. It's a little controversial
577.
▲
by
simonask
1y ago
Ah right, forgot about forbid!
578.
▲
by
simonask
1y ago
Stability, correctness, test coverage, performance. You can lump anything under "security" for particular use cases, but what's the point of words then.
579.
▲
by
simonask
1y ago
The issue you linked is a perfect example in support of my argument. Lots of people noticed the problem, and it was quickly rectified.
580.
▲
by
simonask
1y ago
I mean, the case against it is pretty strong. Many languages with maximalist standard libraries have tons of vestigial code that nobody uses because the ecosystem found better solutions. Yet that code has to be maintained in perpetuity. The
581.
▲
by
simonask
1y ago
Yeah, one problem in Rust is that a number of very fundamental ecosystem libraries are written by a handful of high-profile people. Often people who are also working on the standard library or the Rust compiler. Rust developers usually know
582.
▲
by
simonask
1y ago
Sure, the situation is just vastly better - even now - than standardizing the wrong solution. Each widely used async runtime in Rust has different solutions for a number of problems, and the choice isn't obvious. For example, `tokio::s
583.
▲
by
simonask
1y ago
Yes, when done properly. Rust has "feature flags" that can selectively enable dependencies, and effectively act as `#ifdef` guards in the code.
584.
▲
by
simonask
1y ago
It's trivial to see on crates.io whether a crate is unmaintained.
585.
▲
by
simonask
1y ago
Maintainers of all open source standard libraries are effectively "random third parties". With heavily used ecosystem dependencies (such as Tokio, but also swaths of small libraries, such as `futures` or `regex`), the number of pe
586.
▲
by
simonask
1y ago
I love this idea. There is some reminiscence of this in Rust, but it's opt in and based on convention, and only for `unsafe` code. Specifically, there's a trend of libraries using `#![deny(unsafe_code)]` (which will cause a compil
587.
▲
by
simonask
1y ago
I think the term "inferior" isn't really appropriate, then. It typically applies to the quality of the thing on its own, not its applicability outside of its stated scope.
588.
▲
by
simonask
1y ago
As a European, it is absolutely WILD to me that this is legal.
589.
▲
by
simonask
1y ago
That's public information. It's up to you to make the choice whether to trust someone, but the least you can do is look at the code and see if it matches what you would have done.
590.
▲
by
simonask
1y ago
Certainly not enough to write them off on its own, but it is one of many problems.
591.
▲
by
simonask
1y ago
I mean, the default behavior of single-argument constructors in C++ is implicit conversion. You have to opt into explicit conversions using the `explicit` keyword on constructors and assignment operators. Then you have all the shenanigans a
592.
▲
by
simonask
1y ago
I don't think it's a defect of the language that your particular circumstance makes it infeasible to port your project. Having a great C++ interop story would be amazing, but Rust would be decidedly less awesome if it had made con
593.
▲
by
simonask
1y ago
Novice programmers will take longer to be productive in Rust compared to Go. Rust primarily improves the productivity of people who know what they are doing, because it gives them much better tools to manage complexity. Games are written in
594.
▲
by
simonask
1y ago
I think there's a bit of mismanaged expectations, combined with a community that, while generally helpful, suffers from a bit of fatigue from constantly dispelling myths and falsehoods about the language, often presented in bad faith.
595.
▲
by
simonask
1y ago
Rust has rough edges today. The field of programming is still only a few decades old, and there's no doubt that something even shinier will come along, we just don't know yet what that looks like. That's not a good reason to
596.
▲
by
simonask
1y ago
The strong/weak distinction is a bit fuzzy, but reasonable people can have the opinion that C++ is, in fact, loosely/weakly typed. There are countless ways to bypass the type system, and there are implicit conversions everywhere.
597.
▲
by
simonask
1y ago
Works for whom? C++ build systems are notoriously brittle. When porting a project to a new platform, you're never just porting the code, you are also porting your build system. Every single project is bespoke in some way, sometimes bec
598.
▲
by
simonask
1y ago
It's a relatively new endeavor, but it's also a requirement in 2025 if you want to be portable. The Linux ecosystem was focusing on installing dependencies system-wide for decades (that's how traditional `./configure.sh`
599.
▲
by
simonask
1y ago
I don't see why you would have to write your own - there are plenty of options in the crate ecosystem, but perhaps you found them insufficient? As a video game developer, I've found the case for custom general-purpose allocators p
600.
▲
by
simonask
1y ago
Do you... not understand that the point of giving you a class on ethics in software development wasn't so you would produce an essay?
More ›