I’ll address this one more time but I realize it is kind of derailing the thread a little as this thread is about knots (which is not vibe-coded), and not plainview, which is a separate project.
Can I hear your reasoning for why you chose Zig as opposed to any other language though? I’m trying to write a blog post on this topic and want opinions from all sides.
I get the impression that I come off as picking up Zig yesterday and just prompted a pile of slop together over a weekend, this is not the case. I have been writing Zig for the better part of the last 3 years, before LLMs were a thing (for programming at least). The reason I chose Zig, was because I was a student, and was interested in learning how computers work, not how Rust works, or how to write optimal C++ in 2024, but how computers work, and for me, Zig was the best language for that.
And in terms of LLM coding Zig, I think only the recent frontier models have shown any sign of being able to put together a coherent piece of software, which is perhaps why I have started to dabble. Before that, I was partly in the Andrew Kelley camp of rejecting it entirely, as contributions to my repositories, and usage of it to develop them, understanding that it can be impossible “to know” the origin of the code, and if the contribution looked sensible, and the author could explain it, I guess it was sufficient for me.
But when it comes to “end user products”, I am not sure what the future holds, and how realistic it is to ignore usage of it. I think of the countless software that cause so much friction in everyones lives, and the only reason a replacement hasn’t been built is that no one has the time, nor necessary skill to “catch-up”, and that perhaps LLMs are the great equalizer? Think of the Adobe suite, a genuinely god awful suite of software, that they charge out the ass for, with predatory subscription schemes and the whole lot. If LLMs lead to open source alternatives, that has feature parity, and is “just better”, how can I look at that and wag my finger going “that’s slop”. If LLMs lead to the death of Adobe, would anyone complain? In my own example here, I genuinely find VLC painful to use, and MPV has a UI that I would consider actively hostile to the user, with alternative clients not being much better. So why not rebuild it with Zig? Who knows, I consider this a bit of an experiment, maybe some of the choices the LLM made make it completely unmaintainable, and I end up rewriting large swaths of it. I guess part of what impressed me so much is that from a first glance, it didn’t seem necessary to do that?
As for Andrew Kelleys “hostile” attitude, I think he has every right to be upset about the usage of LLMs, as it clearly has caused him way more grief than the average person. I am not dealing with 100s of slop pull requests, and meat proxies. For me, I ask myself, is the problem with LLMs that some people are producing slop software, or is it that it is being used to build literal murder-bots (see Palantir)? And when I put it like that, maybe building a media player with LLMs that makes the film-watching experience that much better, isn’t so harmful.