Yes and they don't mention any language at all for Windows. Just "native", which is pretty much a philosophical question for that platform. I guess that means the founders have all avoided that platform their entire lives - which makes perfect sense but it means they have to trust their first engineering hire to make every consequential decision.
Personally I'd recommend they hire someone who has done native windows like its 2001 and is willing to use Zig.
Zig has bindings for Win32, etc., so a competent Windows developer should be as comfortable using that as C, C++, or whatever else people write Windows programs in these days. (At some point, it was intended that Windows programs would be written in Pascal, but that never caught on.)
Most of the time when I need to touch a Windows program I'm dealing with the Telegram desktop client which is C++ and a mixture of Qt and "native" Windows. (Well, that, and when I have to touch an ancient C# code base which requires doing the equivalent of archeology in order to get all of its dependent libraries to work.)
He says here that they have a direct Tailscale integration of the type that requires using the `tsnet` package, which is Go. Or at least would pull in the Go runtime as part of a shared library.
Interesting choice because tailscale is not free. Building in a paid third-party service is a questionable decision.
They better acquire it, if their product catches on.
Building with wireguard directly instead of tailscale would have been my choice, but of course it requires more plumbing.VC money means they gotta move fast.
But as a potential user, I won't pay for tailscale just to use their product.
There is nothing wrong with tailscale, it's just a dependency that can cost money charged by a third-party, so their product is less self-sovereign because it depends on tailscale keeping up a free tier.
This is written by AI. Maybe whoever prompted it has a point but I wouldn't say AI can reach the heights of beautiful writing yet, and this definitely doesn't.
Latency numbers are written with three significant digits (4.21 ms). I'm curious about the accuracy of the measurement device. If it can measure tens of microseconds, I'm impressed. If it can't, the conclusions in this article should be taken more coarsely.
I prefer «reduces uncertainty» to «reduces ambiguity». The problem isn't ambiguous specifications, it's simply that there are too many unknowns to just do the work at this point.
The author talks about the shaping of the work, so I guess this is implicit.
(author here) Apologies, I've (maybe mistakenly) put dead links for various essays that are works-in-progress, in order to figure out what to prioritize. I know it's annoying, but it does give me very good signal about what people want to read. For example, 2% of people clicked the essay `/hard`, but only 1% of people have clicked on the essay for `/expert_aesthetics`. So I'm frantically trying to finish `/hard` before a streamer reads the main essay tomorrow.
If I can ask for constructive critique, how annoyed are you? The metrics are really useful to me, but I don't want to be an arsehole <3
I agree that mentoring is hard, and I want to read your take.
I wonder if we agree on expert aesthetics or not. You write:
> Experts tend to have an aesthetic preference towards technically challenging work rather than simple-but-interesting work, and I’ve written more about this phenomenon here: expert aesthetics.
When I read the passage the first time, I thought you meant "experts prefer to work on hard problems in order to arrive at simple solutions". But that's not what you're saying!
> I agree that mentoring is hard, and I want to read your take.
Thanks for the vote of confidence (: I'm kicking myself for not figuring out a mailing list before this essay went viral, but I'll cross-post the essay on my substack (https://beyarkay.substack.com/) when it comes out, so you can sign up there to get an email.
> I wonder if we agree on expert aesthetics or not. You write:
So I'm coining "expert aesthetics" as a relatively unused phrase that I can put my own connotations onto. There'll be more in the essay (; but at a high level, I've observed that, as someone becomes an expert in a field, their sense for what's "beautiful" in that field changes, and _generally_ it starts to focus on things that are technically challenging. That is, experts (IME) tend to find technically difficult things _aesthetically_ beautiful, even though novices might not care one bit about the technical skill required.
Examples might help: Wine connoisseurs preferring wine from specific regions or made using specific techniques, while casual drinkers just want something that tastes good. Fashion designers preferring something that's different from last year and riffs off of the current styles, while the general public just want the same old same old. Painters taking delight in still lifes that perfectly capture the reflection of light through a wine glass, while most people just want a pretty sunset or portrait for their wall.
This is all still in flux, but that's the gist of what I'm calling "expert aesthetics".
I think it would be a lot politer if the target page was clearer. As it is, I could be 'voting' on a draft or it could just be plain broken and the intended page somewhere else.
Personally, I think it would make more sense to just put up what you have explicitly noted as drafts etc, and count the 'votes' that way.
Thanks for the feedback, I'm just using a static site generator so have limited flexibility, but I'll see what I can do to make it clear that something is a WIP vs a true 404.
PS: I love your writing, thank you so much for putting it out there (:
> I would love a language that has this gradual evolutional abstracting as a core concern. That makes it easy. Where you can start from simplest imperative code and easily abstract it as the need for this arises.
This is about how I write Clojure.
I start out with some code that does the thing I want. Either effectfull code that "does the thing" or functions from data to data.
After a while, I feel like I'm missing a domain operation or two. At that point I've got an idea about what kind of abstraction I'm missing.
Rafael Dittwald describes the process of looking for domain operations and domain entities nicely here:
Consider sending him an E-mail, he responded when I thanked him for exactly this book a few years ago! There's an "E-mail me" link on the left sidebar at http://www.catb.org/~esr/.