Earlier quoted context omitted.
Ooo... Any chance you remember where you read that? I'd love a reference to check it out. Sounds interesting!
I'm pretty sure they're referring to this one: https://corecursive.com/building-powershell-with-jeffrey-sno...
Interview with Mitchell Hashimoto about Ghostty and Zig
221–230 of 281 posts
Re: Interview with Mitchell Hashimoto about Ghostty and Zig
#222Earlier quoted context omitted.
the point is well-taken, but i do want to show the bash version just for fun: podman image ls --all | sed 's/\s\s\+/\t/g' | tee >(head -n 1) >(tail -n +2 | sort -hrk 5) >/dev/null this is _still_ all text, and we're relying heavily on sort to do a bunch of internal parsing and be in agreement with podman about how sizes should be formatted. also, for "real world" work, i dunno if the tee trick here has any kind of or…
A variant: docker image ls -a | stdbuf -oL sed -r 's/\s{2,}/\t/g' | { head -n1; tail -n+2 | sort -hrk5 -t$'\t'; } | column -ts$'\t' I used docker since that's what I have installed and I assume the output is equivalent. sort 's -t is set to tab for field separation. stdbuf sets sed 's output to only buffer a line at a time and flush, so the head in the {...} command group doesn't completely consume stdin 's contents…
I like using column to format the table. Appending it to alloyed's command fixes their header problem.
The stdbuf to multi-command block (term.?) is a neat trick. Although, one time when I ran this, I only got a couple lines of output. No idea why and I can't replicate it, but there could be some flakiness that results from the buffering somehow?
Question: how do the ? markers on the sort and column invocations work/what do they do?
Re: Interview with Mitchell Hashimoto about Ghostty and Zig
#223Earlier quoted context omitted.
I am not a huge Rust fan but the language did bring a few practical and useful innovations, while also keeping a focus on practice. And no, C++ just doesn't make the same things easy or clean. And no, "discipline and appropriate rules" were never enough.
The practical and useful innovations were invented else, Rust made them mainstream.
The broader ML-like type system in Rust is not novel, but the integration of the borrow checker -- and its move semantics more broadly -- with it... that form honestly is an innovation. And one I'd have a hard time living without at this point.
Re: Interview with Mitchell Hashimoto about Ghostty and Zig
#224> Back to Zig, Zig has a really polarizing specific stance on what it does from technology, to community management and funding to PR, blog posts and how they talk. I don’t agree with all of it but I so respect that they are unapologetically weird. So I continue to support them financially and use their technology because I support people trying to be their own person. I read the full articles and always like what Mi…
At the same time, it makes me a little sad that when pressed, the best thing that could be said about Zig is that it's unapologetically weird right after a sentence about not agreeing with how they manage the project.
I had high hopes for Zig, but the current situation feels like they're actively moving toward being a niche language and away from being something that I could make a case for in a business context.
Re: Interview with Mitchell Hashimoto about Ghostty and Zig
#225Earlier quoted context omitted.
The practical and useful innovations were invented else, Rust made them mainstream.
Yes. The biggest innovation of Rust is bringing some of the good ideas from functional programming to low level programming. I'd also say that partially exposing data flow analysis to a proframmer is new. Rust package management is quite good, and also not by any means an invention. I am still not a fan of all the ugly macro programming systems and verbose syntax in the language.
The language I really want is somewhere inbetween those two languages.
Re: Interview with Mitchell Hashimoto about Ghostty and Zig
#226> I don’t like the Rust culture. There’s no better way to put it. Every time I’ve interacted with them or hear how they talk about Rust, I just don’t like it. I wonder if it's not that different people have entirely different experiences: If you are outside the rust community, you'll mostly interact in the context of language flame wars, "why don't you just rewrite it in rust", etc. That is, you interact with the (sm…
It’s like that joke: I admire Jesus Christ, it’s his fan club I really can’t stand. You can substitute that with Rust and it sums up my feelings. The language is great, the obsession with static typing and memory safety from its fans, as if it’s the panacea to all problems in computing, is obnoxious and smells of inexperience. It’s not a coincidence that Rust these days is baby’s first low level language, so you get…
Re: Interview with Mitchell Hashimoto about Ghostty and Zig
#227Earlier quoted context omitted.
GC is such a mistake though, you don't have to use rust but to never have to think about memory is a disservice to the programmer. Because that is something you always should do, and if you do then GC is nothing but a hindrance. For scripting etc. it is perfect though.
Why does having. GC mean not thinking about memory? I think about memory constantly in GC languages because I still want it to perform well. The biggest difference is the failure modes. If I'm not thinking about memory, my RSS is higher or a bit of extra CPU time goes to GC. Both of those are radically better than UAF or buffer overruns. Good trade IMO.
A GC is not the only fix for UAF and buffer overruns...
Re: Interview with Mitchell Hashimoto about Ghostty and Zig
#228Earlier quoted context omitted.
A variant: docker image ls -a | stdbuf -oL sed -r 's/\s{2,}/\t/g' | { head -n1; tail -n+2 | sort -hrk5 -t$'\t'; } | column -ts$'\t' I used docker since that's what I have installed and I assume the output is equivalent. sort 's -t is set to tab for field separation. stdbuf sets sed 's output to only buffer a line at a time and flush, so the head in the {...} command group doesn't completely consume stdin 's contents…
There is some cool stuff here. I like using column to format the table. Appending it to alloyed's command fixes their header problem. The stdbuf to multi-command block (term.?) is a neat trick. Although, one time when I ran this, I only got a couple lines of output. No idea why and I can't replicate it, but there could be some flakiness that results from the buffering somehow? Question: how do the ? markers on the so…
Re: Interview with Mitchell Hashimoto about Ghostty and Zig
#229Earlier quoted context omitted.
Rust was ~70% of my last job, and the other Rust engineers there were very competent -- large volumes of high-quality, high-impact code. In my rust community interactions at the time, also interactions with my colleagues, I definitely noticed some unsavory trends. An example pattern is: me> This [API | language feature | whatever] seems harder to use than it should be. them> No, it's actually not. me> Here's irrefuta…
Its academia. Rust is admirable for having been able interesting programming language research into a mainstream language, but this had the implication of bringing the people who did said research with it into the communities. It used to be that programming languages were mostly boring and predictable, with maybe questionable semantics (const etc.), but generally that messiness meant they were good enough at getting…
Re: Interview with Mitchell Hashimoto about Ghostty and Zig
#230Earlier quoted context omitted.
I use the terminal that happens to be at hand, which is usually the one that ships with the OS, or the one in VSCode. I don't have high demands on the terminal, and I don't understand what problems are there to solve, as long as it handles unicode and control sequences correctly.
> I don't understand what problems are there to solve, as long as it handles unicode and control sequences correctly. It turns out its not 1986 anymore, and sometimes we want to output gasp images to our terminals
But I guess there's promise in having something that's like a Jupyter notebook, but for files.