Most active commenters

    ←back to thread

    457 points benoitg | 19 comments | | HN request time: 1.028s | source | bottom
    1. b0a04gl ◴[] No.44365467[source]
    every time your shell takes 100ms to render git status that you didn’t even need, you're paying invisible tax on flow. terminals should be reactive memory tools, not passive decoration. we optimize for code runtime but not for our own typing latency
    replies(7): >>44365953 #>>44366256 #>>44366413 #>>44367231 #>>44367246 #>>44367362 #>>44367371 #
    2. Twirrim ◴[] No.44365953[source]
    Starship is very fast, taking only a couple of milliseconds to gather the data (and you can easily configure it to minimise what it'll spend time gathering). It's night and day compared to other ones I've tried, where the hundred millisecond-ish delays annoyed me.
    replies(2): >>44366322 #>>44372064 #
    3. bregma ◴[] No.44366256[source]
    If you're used to, say, VS Code or the GitHub online editor where the lag between pressing a key on the keyboard and a corresponding character appearing on the screen can be on the order of tens of thousands of milliseconds, then 100 ms will seem like lightning.
    replies(1): >>44366570 #
    4. Night_Thastus ◴[] No.44366322[source]
    Depends a lot on the system. I tried using it on Windows via MSYS2, and it seems like some Windows overhead (maybe process startup?) was causing Starship to slow it all down to a crawl. Disabling a few of the addons helped but didn't fix it. In the end I stopped using it.
    replies(2): >>44366809 #>>44370818 #
    5. OptionX ◴[] No.44366413[source]
    we optimize for code runtime but not for our own typing latency

    100ms optimization is a lot different for a CPU or a human brain. I'm not defending having the entire system log dumped out on every prompt but a few amenities are worth a few milliseconds computation time for a human.

    Besides, I don't see how, for example , having your prompt take those 100ms to print a git branch or status breaks your "flow" yet having to type out the commands yourself and taking longer doing it doesn't.

    Its a balance between bloat and and usability like so many other things, but, to me at least, being on either extreme of bloat or extreme-minimalism seems counterproductive.

    replies(1): >>44367950 #
    6. dminik ◴[] No.44366570[source]
    There's a thousand milliseconds in a second. If your VSCode is taking +10 seconds to display a single character, it might be time to upgrade from your Commodore 64.
    replies(2): >>44367037 #>>44368502 #
    7. lukeschlather ◴[] No.44366809{3}[source]
    I don't know if Windows can be helped. It may be antivirus but I feel like 50th percentile load time is at least a second and there's nothing to be done about it. git just hangs sometimes on git show/git diff. I have to kill the terminal.
    replies(1): >>44367297 #
    8. falcor84 ◴[] No.44367037{3}[source]
    Or to switch from VSCode to SpeedScript
    9. infogulch ◴[] No.44367231[source]
    Could prompt tools like this use TUI-style features to edit the displayed prompt after releasing it back to the user? So if kubectl, git, or aws cli takes 200ms to finish it doesn't matter, the data from the output of these commands will appear a few moments after the prompt has been released to the user, so the user doesn't feel like they're waiting for the prompt to be ready.
    10. gobblegobble2 ◴[] No.44367246[source]
    The delay is certainly frustrating. I use a patched version of kitty terminal that moves starship prompt to the bottom of the window, similar to vim and emacs. Since modeline updates are asynchronous, the shell prompt is very snappy even in big git repos. The downside is that you have to patch kitty and I never bothered to test my personal pet project on anything else than Linux.

    https://github.com/mbachry/kitty-modeline

    11. WorldMaker ◴[] No.44367297{4}[source]
    My experience of Starship on Windows has been great. I'm using the Windows native builds of both Starship and git (both installed/updated via winget these days) in PowerShell.

    I try to avoid emulation layers like MSYS2, as much as I'm able.

    Also, yes, if git hangs on git show/git diff that sounds like an antivirus problem or a dying hard drive or the first one causing the other one.

    replies(1): >>44367867 #
    12. perrygeo ◴[] No.44367362[source]
    counter-point: having to constantly track git status in your head, and needing to type commands to remind yourself, is a far bigger distraction. Optimize to avoid context switching, not for a few ms latency.

    FWIW, I switched from zsh default to starship and didn't notice any perceptible difference. But I certainly notice when I mess up my git commits!

    13. account42 ◴[] No.44367371[source]
    > we optimize for code runtime but not for our own typing latency

    Don't the layers of frameworks mean that the opposite is true.

    14. Twirrim ◴[] No.44367867{5}[source]
    Or just a really big git repo. Starship includes a timings command, on linux (with an annoying antivirus meddling) this is what I see against one directory:

        git_status  -   6ms  -   "[!?] "
        directory   -   4ms  -   "<redacted> "
        python      -   3ms  -   "via  v3.12.9 (.venv) "
        character   -  <1ms  -   " "
        git_branch  -  <1ms  -   "on  main "
        hostname    -  <1ms  -   "<redacted> in "
    
    If I go in to my checked out version of the linux kernel, probably the biggest git project I've got kicking around:

        git_status  -  115ms  -   ""
        directory   -    4ms  -   "linux "
        character   -   <1ms  -   " "
        git_branch  -   <1ms  -   "on  master "
        hostname    -   <1ms  -   "<redacted> in "
    
    That's typically the worst I see it.
    replies(1): >>44368963 #
    15. naniwaduni ◴[] No.44367950[source]
    100 ms is an incredibly long time even for humans.
    16. gapan ◴[] No.44368502{3}[source]
    Well, actually, the Commodore 64 is a lot faster with respect to input latency than any modern machine.
    17. WorldMaker ◴[] No.44368963{6}[source]
    I appreciate Starship also has configurable limits on those timings, too. I've almost never seen Starship hang for very long, as it will just drop the thing that is slow. I sometimes but rarely (usually just starting a new shell, but sometimes if compiling in another window/terminal) see the "[WARN] Executing command git timed out" error and the git_status won't display until the next prompt and that is usually fine.
    18. pxc ◴[] No.44370818{3}[source]
    Windows' filesystem performance for tools that expect Unix is abysmal, and it gets drastically worse in most corporate environments because endpoint security software hooks into the filesystem drivers to instrument all file access.

    Git-aware prompts can't be recommended on Windows, imo.

    19. eddd-ddde ◴[] No.44372064[source]
    100ms to render a prompt are meaningless. You can just type commands and run them asynchronously. I do this all the time when a previous command is taking a little extra to complete but I already know what my next command is going to be.