Earlier quoted context omitted.
Because this industry is a knowledge-based industry, and it's a good idea in general to always be honing your skills and learning something new. Even if you don't have any intentions of using a new language in your day to day career, there's usually a few super-interesting morsels in there that you can add to your knowledge banks. I've personally lost count of the number of times I took a concept I learned in another…
There's a big difference between learning from a language and mastering a language and the competition is around the latter.
TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
171–180 of 213 posts
Re: TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
#172I'm absolutely struggling to understand what Synadia even does. it's been an infuriating experience navigating through their marketing site. It's been minutes and I still don't understand what it is. What is NATS? Edit: I had to google what NATS.IO is. The marketing site is infuriatingly useless. Please, can we stop doing this? Edit: At the bottom on the footer it says compare NATS to Kafka. It took me to a page that…
(disclaimer: I am the VP of Prod/Eng at Synadia) NATS - An application connectivity technology (L7). It was originally designed for low-latency M:N messaging, and that is still true today. In 2018, native multi-tenancy, clustering options, etc. got introduced. The persistence subsystem (JetStream) was introduced in 2021. It has a completely different design than Kafka, but with overlapping use cases. For better or wo…
You probably have an influx of traffic that you could convert to customers through “what is this? -> oh cool I could use this!” pipeline if the marketing website enabled that.
What is NATS, how does it compare to other similar software, and why use a hosted solution… all this should be easily found.
And if I see a “enter name and email to download a resource” it just immediately turns me off from even engaging with the site.
Re: TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
#173Re: TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
#174Earlier quoted context omitted.
> It is a tool that works for me. Is it? Or is it a tool that won't bug you when you make a mistake? Programmers tend to, as Djikstra noted[1] confuse ease of programming with allowing unforced errors. [1] https://en.wikiquote.org/wiki/Edsger_W._Dijkstra#1970s
> Is it? Or is it a tool that won't bug you when you make a mistake? I don't want tools to bug me EVER. This includes when I make a mistake. When I want a tool's opinion, I'll ask for it - through a linter, a static analysis tool, etc. > Programmers tend to, as Djikstra noted[1] confuse ease of programming with allowing unforced errors And how long had Djikstra worked as a professional programmer?
If that is your true wish, may I recommend JavaScript? It's a language famous for not complaining about errors.
Or WASM/ASM if you want something closer to the metal.
I personally, want the undefined behaviour Chernobyl to beep before it melts.
> And how long had Djikstra worked as a professional programmer?
According to his wiki if you disregard his tenure at University of Austin, between years 1952 to 1984. So around 32 years.
He's literally first Dutch programmer. Yes. He was a programmer before it was a recognised job.
Re: TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
#175Earlier quoted context omitted.
What are you trading off to get from 90% to 100%? How about compile speed? Are you willing to wait an extra second to get 100%? How about 10 seconds? A minute? 10 Minutes? An hour? Rust is notoriously slow at compiling and people have been banging on it for a while. At some point, you have to accept that the language, itself, has properties that make compilation slow.
Rust packages tend to have large dependency graphs which doesn't help the compile times. I've read the serde is a bit of a hog in that respect, for example. The rust philosophy is for a large language and large library too.
Re: TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
#176I'm absolutely struggling to understand what Synadia even does. it's been an infuriating experience navigating through their marketing site. It's been minutes and I still don't understand what it is. What is NATS? Edit: I had to google what NATS.IO is. The marketing site is infuriatingly useless. Please, can we stop doing this? Edit: At the bottom on the footer it says compare NATS to Kafka. It took me to a page that…
Re: TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
#177> In all these things, what impressed me most was Zig’s approach to safety when working with the metal. Not in terms of an on/off decision, but as a spectrum. Not aiming for 100% guarantees across 1 or 2 categories, but 90% and then across more categories. Not eliminating classes of bugs, but downgrading their probability. All while preserving the power-to-weight ratio of the language, to keep the language beautifull…
Why is 90% enough?
Rust is 100% memory safe in specific places yes, but much less so when you have to dip into unsafe Rust. Unsafe memory access will always exist, you can't do anything about it. If you need to interact with the underlying system it's just something you have to deal with it.
Zig on the other hand isn't 100% safe in any one part, but it's 90% safe in nearly all parts. Zig recognizes the outside world exists, and makes it easy to write safe correct code given that reality.
Time will tell, but on average I suspect Zig and Rust will produce equally safe and correct software. The further away you get from the hardware the bigger Rust's advantage is, the closer you get to the hardware Zig has the edge.
Re: TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
#178Earlier quoted context omitted.
The funny thing is, in a language like Zig where memory allocation is explicit, linked lists are way more popular, just like they were in C. What happens IRL depends on your environment. :)
Linked lists are not popular in zig though. There are pages and pages of discussions about how linked lists are almost universally slower than an array. Zig devs are borderline obsessive about cache efficiency.
Re: TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
#179Earlier quoted context omitted.
Well, for example, every function that allocates expects allocator as an argument, it is not abstracted away. Resource deallocation is not abstracted away, you have to explicitly free your resources. Ever function that uses IO expects it as an argument. It doesn't have operator overloading, which is also an abstraction. It is a very explicit language.
I left the "mostly" in my comment because custom allocators is one area where Rust as an ecosystem is still in need of some work, and I'm aware of that - hell, in part because of TigerBeetle's blog posts on the subject. Everything you're describing is a stylistic preference, though - and doesn't contribute to bloat , which is what the parent comment was implying. If your program is bloated, that's on you to clean up…
Re: TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
#180The reason for not choosing Rust still doesn't make any sense to me. If you don’t want to OOM, need correctness, are following the power of ten (where you aren’t allocating anyways), I don’t see the conflict or harm of additional enforced correctness. Also, Rust does support checked arithmetic and has stable toolchains.
Out of interest, did you read the two posts [0][1] linked in there by matklad, creator of rust-analyzer as well as IntelliJ Rust, on our team? Suffice to say, we know the intrusive memory and comptime patterns we use in our code base, and they wouldn't be as natural to express in a language other than Zig. Rust is a great language, but Zig made more sense for what I wanted to create in TigerBeetle. [0] https://matkla…