Live data from Hacker News

How I'm still not using GUIs in 2019: A guide to the terminal

lucasfcosta.com

41–50 of 248 posts

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#41

For me, things like VIM where you first have to configure the hell out of it are a pain. Every time you're on some other machine, all your customization is gone. So after switching machines a bazillion times over the years, making the same little tweaks over and over, I've learned to deal with the default config. What I didn't expect: It made me a lot more productive in the long run.

This is why defaults matter. People sometimes downplay changes with "well, you can just tweak it if you don't like it", but in the long run tweaking the install every time is effort. Especially when you're working on non-internet connected machines. It's why I get annoyed when for example Ubuntu stops shipping the ability to burn DVDs on the install disk.

The default vim config is pretty weird: incremental search is off by default for some reason, I think it still defaults to using tabs for indentation, it doesn't change the working directory to the current file's.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#42

I always find the benefits of portability to be a rather funny one: It's always immediately followed by 800 lines of dotfiles that do an incredible amount of customization. The IDE vs. vim/emacs purist debate is always crazy to me. There are some places where IDE's are almost certainly better: Java in a large project in IntelliJ has to be 100x better than in Vim. For new languages or languages where there isn't subst…

You are using Java as a convincing argument for using an IDE... Java... ugh.. If you use mainly statically typed languages where IDE static analysis, refactor tools proves super useful to you... keep using that set up. I don't really see the appeal personally.

I don't think the argument itself is Java. I think the argument is that heavy, corporate projects (typically written in Java or C#) can have lots of benefit from IDEs. This isn't to say that there aren't terminal utils that aren't powerful enough to handle such a project. But being able to Ctrl + Alt + LMB an interface and being taken to the implementation (or shown a list of all implementing classes) or pulling a graph of your DIs is damn delicious. It's those types of creature comforts that makes using an IDE worth it for me.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#44
post #2

> To avoid the annoying seconds in which vIM would freeze during tasks like syntax-checks, neovim lets you run jobs asynchronously. Vim 8 also has asynchronous tasks, as well as a builtin terminal emulator. So there is not much of a reason to use Neovim (except Lua scripts, maybe?).

It's faster, which I discovered after switching to it for Javascript/Typescript development. Also has better autocomplete plugins. Vim plugins just don't seem to have taken advantage of the async features yet.

Most of the nvim autocomplete plugins work on vim too.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#45
post #36
post #18

I'm a game developer mainly writing/reading/debugging C++ on a codebase that's well over a million lines of code. As with most game-dev I'm developing almost entirely using Visual Studio, and I can't imagine trying to navigate code using a terminal based editor. Maybe it's just because this is what I'm used to, however I just don't see how some of the tools would even be displayed in a terminal (parallel stacks windo…

What kind of navigation are you relying on that could not possibly work faster on a terminal? Horrible ascii graphs look horrible, but they are arguably more functional in that you can navigate them with your keyboard.

Navigation is rarely the limiting factor in development speed. I'd take better auto completion / integrated tools over faster navigation every day.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#46
post #36
post #18

I'm a game developer mainly writing/reading/debugging C++ on a codebase that's well over a million lines of code. As with most game-dev I'm developing almost entirely using Visual Studio, and I can't imagine trying to navigate code using a terminal based editor. Maybe it's just because this is what I'm used to, however I just don't see how some of the tools would even be displayed in a terminal (parallel stacks windo…

What kind of navigation are you relying on that could not possibly work faster on a terminal? Horrible ascii graphs look horrible, but they are arguably more functional in that you can navigate them with your keyboard.

Visual Assist X is a VS plugin that everyone I know seems to have pre-installed wherever they work. It allows things like jump to file/symbol using a keyboard shortcut and fuzzy search. I imagine there's equivalent with vim, etc, but I also don't see how a terminal could be better/faster.

Most navigation is done using keyboard shortcuts, but I can use the mouse to click around menus if I forget where something is.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#47
post #15

Title is a bit misleading. Not sure this is "I'm not using GUIs" but rather "I'm using a terminal-based dev environment". I was hoping to find some nice terminal-based tools for browsing and e-mail and all the other annoying real-life things I need to use

> real-life things I need to use

Emacs has a package for that.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#48
> GUIs are bloatware.

This is only true, firstly, when what you're trying to represent can be accurately, completely, and most concisely represented by plain text. That's actually a fairly narrow range, unless you're a programmer. And secondly, it's only true when you're not interested in using common interface conventions to teach your users how to use your program. While that can certainly be done -- the -? and --help parameters spring to mind -- it's much easier when there are UI guidelines [0] that everybody sticks to simply by virtue of how GUIs tend to work (i.e., there are existing common libraries to describe the interface in predictable ways).

If everything you do deals with text (i.e., you're a programmer), and you never or rarely need to use unknown programs, then the terminal is great.

Think about it this way. Exactly what have you had to do to learn how to use web pages? Like, since the 90s when Mosaic would still render most websites. You haven't. It's point, click, scroll, and type. That user interface has worked, essentially unchanged, for nearly 30 years. You've gone to brand new websites, potentially written by people who don't speak your language, and you've been able to use the site because there's a shared convention that everybody uses. And everybody does use it. There are 4.2 billion users of the world wide web [1], and the interface works for essentially everyone. That's an extremely impressive feat for interface design.

Meanwhile, nearly 50 years after vi was first introduced, it's still notoriously difficult to learn -- even the basics. You might argue that programming is more complicated than browsing the web, but realistically, editing a text document is about as basic a task that you can have on a computer.

[0]: https://docs.microsoft.com/en-us/windows/desktop/appuistart/... [1]: https://internetworldstats.com/stats.htm

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#49
post #25

I am sure the author is a power user of his tools. I tried to use Vim for more than a simple text editor for few days. I realised that it would very hard to replicate the productivity of a special purpose IDE(IntelliJ in my case) using Vim. tmux is great but if you are used to multiple windows or tabs that is fine as well.

After years of using Vim I gave up on the idea of using it as an IDE. It's really powerful for editing (navigation, searching, etc) but I am too dumb to do any debugging with it (xdebug, gdb, etc.). Too many panes, not enough memory slots for shortcuts.

So I tend to use IDE with good support for Vim key bindings.

So VSCode these days and waiting for a good neo vim based IDE.

Re: How I'm still not using GUIs in 2019: A guide to the terminal

#50
post #4

I like command-lines. I don't like TUIs. Here's the litmus test for whether a program truly belongs there: Would it shit the bed if its stdout was a printer?

Do people write programs that work like that anymore?

I guess there is Linux's make config, but make menuconfig seemed so much faster. Basically, text adventures for doing productive tasks, doesn't sound very productive to me, but I'd love to be wrong.

Post reply on HN