logoalt Hacker News

Life is too short for a slow terminal

55 pointsby emschwartzlast Saturday at 12:44 PM52 commentsview on HN

Comments

abejfehrtoday at 3:16 PM

I'm surprised people are still using nvm, considering it's impact on shell startup time.

I can't recommend switching to mise highly enough: https://mise.en.dev/

show 4 replies
DanielHBtoday at 3:46 PM

Am I the weird one? I usually have 3/4 terminals open at a time and rarely open new ones. Terminal startup speed is a non-issue for me.

The only thing I demand to be fast on my terminal is grep reverse search (ctrl+r) and of course typing a character. But if your terminal can't keep up with your typing speed there is something deeply wrong with it.

show 5 replies
bee_ridertoday at 4:05 PM

I know nobody is missing it, because it is the first bit of the blog post, but the author does have a follow-up where they note corrections based on push-back they received from a reader.

Apparently for some of the simplicity-produces-speed arguments, users have found complex/featurefull. tools that are still quick. I’m not sure how to evaluate this (I like simplicity just because it is easier to fit simple tools in my head) but we should note the counter argument (and applaud the follow-up).

show 1 reply
VladVladikofftoday at 3:31 PM

Speaking of slow, what I absolutely cannot comprehend is why ghostty is so popular. Despite being written in Zig it is very slow and a total CPU and memory hog. Just sitting there idle it’s pulling a constant 40% of my CPU? No thanks!

show 8 replies
fg137today at 3:22 PM

Life is too short to waste time on things that don't matter.

show 2 replies
frollogastontoday at 3:30 PM

30ms is pretty slow

  $ for i in {1..5}; do /usr/bin/time zsh -i -c exit; done
        0.01 real         0.00 user         0.00 sys
        0.01 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys
        0.00 real         0.00 user         0.00 sys
anygivnthursdaytoday at 4:08 PM

I read Ghostty runs in a single process, but whenever I tried something like that eg a client/server model in urxvt or foot, I ended up reverting, because eventually some weird state affected the daemon and had to restart it killing all my terminals, so nowdays I just run foot standalone, with sway tabbing and splits are kind of built into the wm anyways. But keep hearing about Ghostty and wondering if I am missing out on something.

1vuio0pswjnm7today at 4:19 PM

"The single biggest win is what's not there: no oh-my-zsh, no prezto or plugin manager. I've honestly never understood the appeal of these frameworks."

"Most of these optimizations are about leaving stuff out. It's about being intentional and only adding things you're going to use."

I don't use X11 or a similar graphics layer, only textmode. Thus I don't use a terminal emulator

I don't use zsh. I use NetBSD sh

Smaller and faster

This is what I am comfortable with

Others may have their own preferences; to each their own

I might not understand others' preferences but that's their business, not mine

acabaltoday at 4:42 PM

The gem in this post is Pure, which I haven't heard of until now. I also have my prompt show the git status, and for large repos `git status` can take 10+ seconds to load and cache.

I had no idea that you could do that asynchronously, and then have ZSH update the already printed prompt with the status later! That blows my mind!

show 1 reply
z3ugmatoday at 3:58 PM

Follow up / errata post written by the author today: https://mijndertstuij.nl/posts/what-i-got-wrong-about-fast-t...

maherbegtoday at 4:00 PM

Great post! There are some neat tricks around completion initing that I'll have to grab. I use fish shell and have done a bunch of optimization around async git statuses too.

quotemstrtoday at 4:06 PM

On Cygwin, FWIW, it pays huge dividends to avoid making the shell fork at all costs. Don't use $(sed ...). Use ${variable%foo%bar} or whatever. Cygwin punishes you hard for unnecessary fork().

As it turns out, avoiding unnecessary fork() is good hygiene everywhere.

turudjdjtoday at 4:07 PM

In my life I can spare 50ms waiting for an terminal. But I have no time to spend 10000000 ms commuting to work, cleaning poop after an animal, or waiting for partner to put their face on!

koinedadtoday at 4:25 PM

[dead]

zeflonex2last Saturday at 1:36 PM

Life is too short for a terminal period

I really dont get the hype around terminal tools

Most of the time the GUI experience is the same or better than terminal tools

show 14 replies