frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

We Built Real-World Robotic Games Without a Wild Budget

https://www.rbmates.com/blog/robomates-how-we-built-real-world-robotic-games-without-a-wild-budget/
1•art_rbm•39s ago•0 comments

Ukraine destroys giant radio telescope in Crimea

https://www.space.com/astronomy/drone-destroyes-rt-70-radio-telescope-crimea
1•pytlicek•58s ago•1 comments

China's Aircraft Carrier's New EM Launch System

https://www.cnn.com/2025/09/23/china/china-aircraft-carrier-launch-system-intl-hnk-ml
1•JackFr•1m ago•0 comments

How Cloudflare Began, and What's Next (From the Founders, 15 Years On)

https://www.youtube.com/watch?v=I5m27tO78Ek
1•emot•2m ago•1 comments

Understanding Many-Worlds: A Beginner's Guide to Quantum Mechanics

https://maxdesalle.com/understanding-many-worlds/
1•maxdesalle•2m ago•0 comments

Backup for Atlassian Trello

https://backuplabs.io/integrations/trello-backup/
1•r0bbyr0b•5m ago•0 comments

Unsexy AI Failures: Still Confidently Hallucinating Image Text

https://www.surgehq.ai/blog/unsexy-ai-failures-still-confidently-hallucinating-image-text
1•gk1•5m ago•0 comments

The elephant in the biz: outsourcing of critical IT and cybersecurity functions

https://doublepulsar.com/the-elephant-in-the-biz-outsourcing-of-critical-it-and-cybersecurity-fun...
1•fanf2•7m ago•0 comments

Show HN: Kekkai – a simple, fast file integrity monitoring tool in Go

https://github.com/catatsuy/kekkai
2•catatsuy•9m ago•0 comments

China to launch K-Visa for global talent as US slaps $100k H-1B fee

https://www.business-standard.com/immigration/china-to-launch-k-visa-for-global-talent-as-us-slap...
2•Teever•10m ago•0 comments

Ask HN: Scammer Using an '\@Meta.com' Email?

1•whatamidoingyo•10m ago•1 comments

Quick Questions for Better Strategy

https://fffej.substack.com/p/five-quick-questions-for-better-strategy
1•mooreds•11m ago•0 comments

California's Unemployment Crash (2023)

https://calmatters.org/economy/2023/11/california-unemployment-covid/
1•mooreds•11m ago•0 comments

USDA Puts Food Researchers on Leave

https://www.wsj.com/politics/policy/usda-puts-food-researchers-on-leave-ef287cd7
2•mooreds•14m ago•0 comments

Chickens Are Weirder Than You Thought [video]

https://www.youtube.com/watch?v=ZKz0_kSFSP0
1•mhb•15m ago•0 comments

Show HN: Open-source AI data generator (now hosted)

https://www.metabase.com/ai-data-generator
2•margotli•15m ago•0 comments

Ultra efficient vector extension for SQLite

https://marcobambini.substack.com/p/the-state-of-vector-search-in-sqlite
2•marcobambini•15m ago•0 comments

Kafala System

https://en.wikipedia.org/wiki/Kafala_system
1•notmyjob•15m ago•0 comments

Malware on Valve Steam Platform Robs Stage 4 Cancer Patient of $32K in Crypto

https://programming.dev/post/37902936
1•Improvement•15m ago•0 comments

Hat is autism and what are Trump's unproven claims about a Tylenol link?

https://www.bbc.com/news/articles/cpq51dry7wgo
1•tartoran•16m ago•0 comments

A Free, Open-Source LinkedIn Alternative

https://twitter.com/ionleu/status/1970375092107649508
1•frabonacci•17m ago•0 comments

Ask HN: Are EU based companies switching to EU based IT software vendors?

1•devildriver89•17m ago•1 comments

I didn't want sex with my husband after having our baby

https://www.bbc.com/news/articles/cwywnlyg3xxo
1•tartoran•19m ago•0 comments

New Bang and Olufsen earbuds cost $1,500

https://www.theverge.com/news/783590/bang-olufsen-beo-grace-earbuds-pricing-availability
1•bookofjoe•19m ago•1 comments

A Ballistic Missile Defense Simulator in a Browser

https://medium.com/@ErikKannike/i-built-a-ballistic-missile-defense-simulator-in-a-browser-292c75...
1•possiblelion•20m ago•0 comments

How do you use a virtual cell to do something useful?

https://www.owlposting.com/p/how-do-you-use-a-virtual-cell-to
2•abhishaike•21m ago•0 comments

Getting AI to work in complex codebases

https://github.com/humanlayer/advanced-context-engineering-for-coding-agents/blob/main/ace-fca.md
2•dhorthy•21m ago•1 comments

MCP Snitch – macOS Security Monitor for MCP Tools

https://mcpsnitch.ai/
2•ERROR_0x06•22m ago•1 comments

Show HN: Upvote RSS – Generate rich RSS feeds from aggregation websites like HN

https://www.upvote-rss.com/?platform=hacker-news&community=beststories&threshold=100
1•johnwarne•24m ago•0 comments

Please Exceed Your Authority

https://www.leadingsapiens.com/exceed-your-authority/
1•sherilm•24m ago•0 comments
Open in hackernews

Why Zig Feels More Practical Than Rust

https://dayvster.com/blog/why-zig-feels-more-practical-than-rust-for-real-world-cli-tools/
52•dayvster•1h ago

Comments

tonetegeatinst•1h ago
As far as my understanding of zig goes....it can compile into C....so if you really want secure C code you can compile zig into C?
dayvster•1h ago
Not quite, it can translate C into zig using the `translate-c` command that it comes with. But it compiles directly into machine code
osmsucks•1h ago
There is a C backend, so you can also compile Zig into C if you want.
dayvster•1h ago
yea but, that's extremely edge case, or at least I have not yet encountered a need for that personally.
Ar-Curunir•1h ago
While Zig prevents certain kinds of memory safety issues that C does not, it still suffers from memory-safety issues not found in safe Rust.
Cloudef•50m ago
Zig can compile into C, but it's not portable C
MangoToupe•1h ago
> Developers are not Idiots

Boy, do I have bad news for you!

dayvster•1h ago
Hahahahah have my upvote that was funny! Thank you
simonask•1h ago
I’m not an idiot!

However, 3 months ago me was clearly an idiot judging from the utter crap he wrote. Me in 3 months is also an idiot, he won’t get the greatness of these genius hacks I’m making.

Ygg2•49m ago
I'm not an idiot either. But past and future me get to be idiots from time to time. Alcohol and lack of sleep are a helluva mind cripplers.
KingOfCoders•1h ago
"All it took was some basic understanding of memory management and a bit of discipline."

The words of every C programmer who created a CVE.

markphip•1h ago
Came here to add the same comment. Had it on my clipboard already to post. You said it better
dev_l1x_be•1h ago
The amount of seggfaults I have seen with Ghostty did not raise my spirits.
txdv•1h ago
I haven't seen a single one.
neerajk•1h ago
segfaults raise my belief in spirits
greesil•47m ago
Possibly a good Halloween costume idea to go as a segfault. It would scare some people.
dpatterbee•1h ago
I've had at least one instance of Ghostty running on both my work and personal machine continuously since I first got access to the beta last November, and I haven't seen a single segfault in that entire time. When have you seen them?
mr90210•52m ago
Google: "wikipedia Evidence of absence"

Also, https://github.com/ghostty-org/ghostty/issues?q=segfault

dpatterbee•33m ago
So Ghostty was first publicly released on I think December 27th last year, then 1.0.1, 1.1.0, 1.1.1, and 1.1.2 were released within the next month and a half to fix bugs found by the large influx of users, and there hasn't been a segfault reported since. I would recommend that users who are finding a large number of segfaults should probably report it to the maintainers.
metaltyphoon•52m ago
Look at the issue tracker and its history too.
dayvster•1h ago
Segfaults go brrr.

All jokes aside, it doesn’t actually take much discipline to write a small utility that stays memory safe. If you keep allocations simple, check your returns, and clean up properly, you can avoid most pitfalls. The real challenge shows up when the code grows, when inputs are hostile, or when the software has to run for years under every possible edge case. That’s where “just be careful” stops working, and why tools, fuzzing, and safer languages exist.

KingOfCoders•1h ago
My assumption is a small utility becomes a big utility.
zwnow•1h ago
"Actually memory management is easy, you just have to...."

- Every C programmer I've talked to

No its not, if it was that easy C wouldn't have this many memory related issues...

r_lee•1h ago
It may be easy to do memory management, but it's not too easy to detect if you've made a fatal mistake when such mistakes won't cause apparent defects

avoiding all memory management mistakes is not easy, and the bigger the codebase becomes, the more exponential the chance for disaster gets

zwnow•1h ago
Absolutely, big factor is undefined behavior which makes it look like everything works. Until it doesn't. I quit C long ago because I don't want to deal with manual memory management in any language. I was overwhelmed by Zigs approach as well. Rust is pretty much the only language making it bearable to me.
naikrovek•1h ago
are you saying that such understanding isn't enough or that every C programmer who said that didn't understand those things?

C and Zig aren't the same. I would wager that syntax differences between languages can help you see things in one language that are much harder to see in another. I'm not saying that Zig or C are good or bad for this, or that one is better than the other in terms of the ease of seeing memory problems with your eyes, I'm just saying that I would bet that there's some syntax that could be employed which make memory usage much more clear to the developer, instead of requiring that the developer keep track of these things in their mind.

Even if you must manually annotate each function so that some metaprogram that runs at compile time can check that nothing is out of place could help detect memory leaks, I would think. or something; that's just an idea. There's a whole metaprogramming world of possibilities here that Zig allows that C simply doesn't. I think there's a lot of room for tooling like this to detect problems without forcing you to contort yourself into strange shapes simply to make the compiler happy.

kstenerud•36m ago
> are you saying that such understanding isn't enough or that every C programmer who said that didn't understand those things?

Probably both. They're words of hubris.

C and Zig give the appearance of practicality because they allow you to take shortcuts under the assumption that you know what you're doing, whereas Rust does not; it forces you to confront the edge cases in terms of ownership and provenance and lifetime and even some aspects of concurrency right away, and won't compile until you've handled them all.

And it's VERY frustrating when you're first starting because it can feel so needlessly bureaucratic.

But then after awhile it clicks: Ownership is HARD. Lifetimes are HARD. And suddenly when going back to C and friends, you find yourself thinking about these things at the design phase rather than at the debugging phase - and write better, safer code because of it.

And then when you go back to Rust again, you breathe a sigh of relief because you know that these insidious things are impossible to screw up.

Imustaskforhelp•1h ago
What are your thoughts on nim, odin and v-lang, D-lang?

I feel like I am most interested about nim given how easy it was to pick up and how interoperable it is with C and it has a garbage collector and can change it which seems to be great for someone like me who doesn't want to worry about manual memory management right now but maybe if it becomes a bottleneck later, I can atleast fix it without worrying too much..

dayvster•1h ago
I have not given any of those 3 a fair enough shot just yet to make a balanced and objective decision.

Out of all of them from what little I know and my very superficial knowledge Odin seems the most appealing to me, it's primary use case from what I know is game development I feel like that could easily pivot into native desktop application development was tempted to make a couple of those in odin in the past but never found the time.

Nim I like the concept and the idea of but the python-like syntax just irks me. haha I can't seem to get into languages where indentation replaces brackets.

But the GC part of it is pretty neat, have you checked Go yet?

ranger_danger•1h ago
IMO, as a C++ developer, Swift makes the most sense to me if I were looking for a safer alternative.

I think people prefer what's familiar to them, and Swift definitely looks closer to existing C++ to me, and I believe has multiple people from the C++ WG working on it now as well, supposedly after getting fed up with the lack of language progress on C++.

The most recent versions gained a lot in the way of cross-platform availability, but the lack of a native UI framework and its association with Apple seem to put off a lot of people from even trying it.

I wish it was a lot more popular outside of the Apple ecosystem.

tonetegeatinst•1h ago
Can you share some swift resources so I can look into the features of swift compared to zig and C?
Yiin•58m ago
that sounds like a query for llm
tizio13•51m ago
Definitely check out swift.org/ . A few pages that are good jumping points are:

https://docs.swift.org/swift-book/documentation/the-swift-pr...

https://swift.org/documentation/cxx-interop/

https://swift.org/blog/swift-everywhere-windows-interop/

majorchord•49m ago
https://www.douggregor.net/posts/swift-for-cxx-practitioners...
Nevermark•1h ago
> So when it comes to memory management there are two [THREE] terms you really need to know, [THE REGISTER BANK,] the stack and the heap.

Edits mine.

I like to keep the spacetime topologies complete.

Constant = time atom of value.

Register = time sequence of values.

Stack = time hierarchy of values.

Heap = time graph of values.

simonask•1h ago
The benefit of Zig seems to be that it allows you to keep thinking like a C programmer. That may be great, but to a certain extent it’s also just a question of habit.

Seasoned Rust coders don’t spend time fighting the borrow checker - their code is already written in a way that just works. Once you’ve been using Rust for a while, you don’t have to “restructure” your code to please the borrow checker, because you’ve already thought about “oh, these two variables need to be mutated concurrently, so I’ll store them separately”.

The “object soup” is a particular approach that won’t work well in Rust, but it’s not a fundamentally easier approach than the alternatives, outside of familiarity.

Galanwe•59m ago
> Seasoned Rust coders don’t spend time fighting the borrow checker

My experience is that what makes your statement true, is that _seasoned_ Rust developers just sprinkle `Arc` all over the place, thus effectively switching to automatic garbage collection. Because 1) statically checked memory management is too restrictive for most kinds of non trivial data structures, and 2) the hoops of lifetimes you have to go to to please the static checker whenever you start doing anything non trivial are just above human comprehension level.

amw-zero•56m ago
How often are you writing non-trivial data structures?
swiftcoder•53m ago
I don't think there are any Arcs in my codebase (apart from a couple of regrettable ones needed to interface with Javascript callbacks in WASM - this is more a WASM problem than a rust problem).
dev_l1x_be•52m ago
I am not sure this is true. Maybe with shared async access it is. I rarely use Arc.
qw3rty01•48m ago
This is exactly the opposite of what he’s saying, using Arc everywhere is hacking around the borrow checker, a seasoned rust developer will structure their code in a way that works with the borrow checker; Arc has a very specific use case and a seasoned rust developer will rarely use it
steveklabnik•37m ago
The only time I use Arc is wrapping contexts for web handlers.

That doesn’t mean there aren’t other legitimate use cases, but “all the time” is not representative of the code I read or write, personally.

kibwen•33m ago
> _seasoned_ Rust developers just sprinkle `Arc` all over the place

No, this couldn't be further from the truth.

andrewl-hn•16m ago
`Arc`s show up all over the place specifically in async code that targets Tokio runtime running in multithreaded mode. Mostly this is because `tokio::spawn` requires `Future`s to be `Send + 'static`, and this function is a building block of most libraries and frameworks built on top of Tokio.

If you use Rust for web server backend code then yes, you see `Arc`s everywhere. Otherwise their use is pretty rare, even in large projects. Rust is somewhat unique in that regard, because most Rust code that is written is not really a web backend code.

nicoburns•57m ago
100% I came to Rust from a primarily JavaScript/TypeScript background, and most of the idioms and approaches I was used to using translated directly into Rust.
dayvster•54m ago
> Seasoned Rust coders don’t spend time fighting the borrow checker

No true scotsman would ever be confused by the borrow checker.

i've seen plenty of rust projects open source and otherwise that utilise Arc heavily or use clone and/or copy all over the place.

dev_l1x_be•53m ago
I can't remember the last time I had any problem with the borrow checker. The junior solution is .clone(), better one is & (reference) and if you really need you can start to use <'a>. There is a mild annoyance with which function consumes what and the LLM era really helped with this.

My beef is sometimes with the ways traits are implemented or how AWS implemented Errors for the their library that is just pure madness.

melodyogonna•53m ago
I believe the benefit of Zig is that it allows you the familiarity of writing code like in C, but has other elements in the language and tooling to make things safer. For example, Zig has optionals, which can eliminate nil deference. Another example is how you can pass some debug or custom allocators during testing that have all sorts of runtime checks to detect bad memory access and resource leaks.

I have some issues with Zig's design, especially around the lack of explicit interface/trait, but I agree with the post that it is a more practical language, just because of how much simpler its adoption is.

amelius•52m ago
> Seasoned Rust coders don’t spend time fighting the borrow checker

Yes, they know when to give up.

tialaramex•9m ago
> Seasoned Rust coders don’t spend time fighting the borrow checker

I like the fact that "fighting the borrow checker" is an idea from the period when the borrowck only understood purely lexical lifetimes. So you have to fight to explain why the thing you wrote, which is obviously correct, is in fact correct.

That's already ancient history by the time I learned Rust in 2021. But, this idea that Rust will mean "fighting the borrow checker" took off anyway even though the actual thing it's about was solved.

Now for many people it really is a significant adjustment to learn Rust if your background is exclusively say, Python, or C, or Javascript. For me it came very naturally and most people will not have that experience. But even if you're a C programmer who has never had most of this [gestures expansively] before you likely are not often "fighting the borrow checker". That diagnostic saying you can't make a pointer via a spurious mutable reference? Not the borrow checker. The warning about failing to use the result of a function? Not the borrow checker.

Now, "In Rust I had to read all the diagnostics to make my software compile" does sound less heroic than "battling with the borrow checker" but if that's really the situation maybe we need to come up with a braver way to express this.

giancarlostoro•1h ago
I want to like Zig, but D still exists and feels like everything I want from a C-like alternative to C++ I just wish the rest of the industry had adopted it long ago. Zig has a strange syntax, and Rust is basically eating chunks of the industry, especially in programmer tooling across various languages as is Go (it powers most cloud providers and is the 2nd top choice for AI right after Python).
sethops1•21m ago
I remember before Rust when Go vs. D was the topic of the day. I even bought a D book and was working through it when Go was announced, and it won me over. The difference maker for me was the standard library; working with Go was just easier, full stop. That and using names like 'int64' instead of 'double', because that's what my brain likes apparently.
bfrog•1h ago
Because it doesn't actually enforce anything and lets you blow your foot off just like C?
rawkode•1h ago
Why does a personal blog need so many advertising options?
tcfhgj•59m ago
building houses or bower lines without regulations feels more practical as well
moochmoochmooch•58m ago
This feels like it was written by chatgpt & there are lots of ads. The worst rust articles are those explaining why rust is "better" than cpp for xyz. This is the worst kind of zig article

zig & rust have a somewhat thin middle area in the venn diagram.

dayvster•50m ago
I can guarantee you that none of it was written by ChatGPT or any other LLM.

As for the Ads, even though it's my site, I'd urge you to turn on adblocker, pi-hole or anything like that, I won't mind.

I have ads on there yes, but since I primarily write tech articles for a target audience of tech people you can imagine that most readers have some sort of adblocker either browser, network or otherwise.

So my grand total monthly income from ads basically covers hosting costs and so on.

Cloudef•25m ago
It's definitely LLM generated or at least LLM assisted. The fact that it has serious errors like saying std.heap.page_allocator is general purpose allocator. The structuring and many sentences are pretty stereotypical LLM as well as the weird metaphors (stack dishes, heap clothes).
karmakaze•58m ago
I was going to say that it's greatly understating the value of the borrow checker. It guarantees no invalid memory accesses. But then it added:

> This means that basically the borrow checker can only catch issues at comptime but it will not fix the underlying issue that is developers misunderstanding memory lifetimes or overcomplicated ownership. The compiler can only enforce the rules you’re trying to follow; it can’t teach you good patterns, and it won’t save you from bad design choices.

In the short times that I wrote Rust, it never occurred to me that my lifetime annotations were incorrect. They felt like a bit of a chore but I thought said what I meant. I'm sure there's a lot of getting used to using it--like static types--and becomes second nature at some point. Regardless, code that doesn't use unsafe can't have two threads concurrently writing the same memory.

The full title is "Why Zig Feels More Practical Than Rust for Real-World CLI Tools". I don't see why CLI tools are special in any respect. The article does make some good points, but it doesn't invalidate the strength of Rust in preventing CVEs IMO. Rust or Zig may feel certain ways to use for certain people, time and data will tell.

Personally, there isn't much I do that needs the full speed of C/C++, Zig, Rust so there's plenty of GC languages. And when I do contribute to other projects, I don't get to choose the language and would be happy to use Rust, Zig, or C/C++.

kllrnohj•37m ago
> I don't see why CLI tools are special in any respect.

Because they don't grow large or need a multi-person team. CLI tools tend to be one & done. In other words, it's saying "Zig, like C, doesn't scale well. Use something else for larger, longer lived codebases."

This really comes across in the article's push that Zig treats you like an adult while Rust is a babysitter. This is not unlike the sentiment for Java back in the day. But the reality is that most codebases don't need to be clever and they do need a babysitter.

antoineMoPa•56m ago
I also loved Zig when manually typing code, but I increasingly use AI to write my code even in personal projects. In that context, I'd rather use Rust more, since the AI takes care of complex syntax anyway. Also, the rust ecosystem is bigger, so I'd rather stick to this community.

> Developers are not Idiots

I'm often distracted and AIs are idiots, so a stricter language can keep both me and AIs from doing extra dumb stuff.

benashford•53m ago
Aren't these two points contradictory? Forgive me if I'm misunderstanding.

> Rust’s borrow checker is a a pretty powerful tool that helps ensure memory safety during compile time. It enforces a set of rules that govern how references to data can be used, preventing common programming memory safety errors such as null pointer dereferencing, dangling pointers and so on. However you may have notice the word compile time in the previous sentence. Now if you got any experience at systems programming you will know that compile time and runtime are two very different things. Basically compile time is when your code is being translated into machine code that the computer can understand, while runtime is when the program is actually running and executing its instructions. The borrow checker operates during compile time, which means that it can only catch memory safety issues that can be determined statically, before the program is actually run. > > This means that basically the borrow checker can only catch issues at comptime but it will not fix the underlying issue that is developers misunderstanding memory lifetimes or overcomplicated ownership. The compiler can only enforce the rules you’re trying to follow; it can’t teach you good patterns, and it won’t save you from bad design choices.

This appears to be claiming that Rust's borrow checker is only useful for preventing a subset of memory safety errors, those which can be statically analysed. Implying the existence of a non-trivial quantity of memory safety errors that slip through the net.

> The borrow checker blocks you the moment you try to add a new note while also holding references to the existing ones. Mutability and borrowing collide, lifetimes show up, and suddenly you’re restructuring your code around the compiler instead of the actual problem.

Whereas this is only A Thing because Rust enforces rules so that memory safety errors can be statically analysed and therefore the first problem isn't really a problem. (Of course you can still have memory safety problems if you try hard enough, especially if you start using `unsafe`, but it does go out of its way to "save you from bad design choices" within that context.)

If you don't want that feature, then it's not a benefit. But if you do, it is. The downside is that there will be a proportion of all possible solutions that are almost certainly safe, but will be rejected by the compiler because it can't be 100% sure that it is safe.

scoopdewoop•50m ago
This is a really bad take, on par with the "we don't need types" post from last week.

The thing I wish we would remember, as developers, is that not all programs need to be so "safe". They really, truly don't. We all grew up loving lots of unsafe software. Star Fox 64, MS Paint, FruityLoops... the sad truth is that developers are so job-pilled and have pager-trauma, so they don't even remember why they got in the game.

I remember reading somewhere that Andrew Kelley wrote zig because he didn't have a good language to write a DAW in, and I think its so well suited to stuff like that! Make cool creative software you like in zig, and people that get hella about memory bugs can stay mad.

Meanwhile, everyone knows that memory bugs made super mario world better, not worse.

dayvster•43m ago
Uh I'm confused, so you think my take is bad because memory safety should not matter ?
scoopdewoop•33m ago
I think its a bad take because "Developers are not Idiots" and "be disciplined" are not good arguments. Its just choosing to ignore the problem rust solves.

I am fine with ignoring the problems that rust solves, but not because I'm smart and disciplined. It just fits my use-case of making fast _non-critical_ software. I don't think we should rewrite security and networking stacks in it.

dayvster•26m ago
Then we're sort of in agreement.

I don't think you need the ritual and complexity that rust brings for small and simple scripts and CLI utilities...

swiftcoder•48m ago
This article seems pretty confused about what the borrow checker does or does not do - I've never heard compile time enforcement listed as a negative of the borrow checker before. It might do the author good to try writing some (non-trivial) memory management in both Zig and Rust some time.
iphone_elegance•40m ago
when I think of rust I think of beauties like this,

self.last.as_ref().unwrap().borrow().next.as_ref().unwrap().clone()

I know it can be improved but that's what I think of

stonemetal12•34m ago
The fact that your app crashes when you run out of stack is a compiler bug, not a feature. Memory is memory. The fact that languages in the 40s split in it to stack and heap, doesn't make it a foundational mathematical law.

Yes, safety isn't correctness but if you can't even get safety then how are you supposed to get correctness?

For small apps Zig probably is more practical than Rust. Just like hiring an architect and structural engineers for a fence in your back yard is less practical than winging it.

xwowsersx•32m ago
No shade here, just a genuine question: why run ads on a blog like this? A personal technical blog probably doesn't get a ton of traffic. So what's the point? I'm honestly curious.
illuminator83•27m ago
Actually, developers are idiots. Everyone is. Some just don't know it or won't admit it.

I once joined a company with a large C/C++ codebase. There I worked with some genuinely expert developers - people who were undeniably smart and deeply experienced. I'm not exaggerating and mean it.

But when I enabled the compiler warnings (which annoyed them) they had disabled and ran a static analyzer over the codebase for the first time, hundreds of classic C bugs popped up: memory leaks, potential heap corruptions, out-of-bounds array accesses, you name it.

And yet, these same people pushed back when I introduced things like libfmt to replace printf, or suggested unique_ptr and vector instead of new and malloc.

I kept hearing:

"People just need to be disciplined allocations. std::unique_ptr has bad performance" "My implementation is more optimized than some std algorithm." "This printf is more readable than that libfmt stuff." etc.

The fact is, developers, especially the smart ones probably, need to be prevented from making avoidable mistakes. You're building software that processes medical data. Or steers a car. Your promise to "pay attention" and "be careful" cannot be the safeguard against catastrophe.

Cloudef•9m ago
To be honest, the generated machine code / assembly is often more readable than the actual c++ code in c++ stdlibs. So I can sympathize with the "This printf is more readable than that libfmt stuff." comment :)