Live data from Hacker News

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

lucasfcosta.com

71–80 of 248 posts

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

#71

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…

I’ve recently started opening the large java project at work in emacs because I didn’t want to deal with how many resources IntelliJ uses when I start it up with a huge Java project.

Sure, but if you're a professional developer, the cost of buying extra RAM to compensate for that is recaptured within hours or days.

There is some deeper, irrational motivation in people who make this argument.

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

#72

The world moved from CLIs to GUIs. Guis have not only persisted, they've improved. If someone insists on using a CLI and nothing else, after all these years of the world having moved to GUIs, I wonder what prejudice is behind it. How, reasonably, can all these tools beat a thing like Visual Studio? Must limit job opportinities too...?

> The world moved from CLIs to GUIs. Guis have not only persisted, they've improved. If someone insists on using a CLI and nothing else, after all these years of the world having moved to GUIs, I wonder what prejudice is behind it.

The world is a big place and there are a variety of programs being written in a number of languages. Not all of them need a GUI. Oh and they don't have to beat Visual Studio. They just need to be the right tool for the job.

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

#73

Earlier quoted context omitted.

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 gr…

> "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." I think this for me is the gist of the problem... A lot of corporations prefer these large monolithic codebases, with a thousand different interfaces and abstract classes. I think this is a mistake in design, and prefer simple applications with sim…

You seem to be under the impression that Java code bases are inherently "horrifically gargantuan and abstract". I would just like to say that is not the case - they are often like that, but they do not have to be. In my time, I have worked on many Java code bases that are small and simple, and not abstracted-to-hell.

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

#74

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…

Only a sith speaks in absolutes. I have known several vim purists who are extremely productive in Java/Scala/Kotlin. I both understand and respect your preference for Intellij. But, your dismissiveness of others is misguided.

Sure, there are definitely some folks who are excellent in those languages with Vim. But when you think about the amount of time that's required to make Vim comply, the amount of mental state that's required to manage the things that could have been taken care of by an IDE, I can't help but challenge the idea that there's nothing possibly better than tools.

By analogy, I don't believe that a chainsaw is either a bad tool or that it's impossible to make good art with a chainsaw, but I do believe most marble sculptures would be better suited to a chisel.

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

#75
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?

I was going to disagree with you, but after thinking about it I don't think I do. Vim is a great program that would completely shit the bed if stdout was a printer. However, vim's interface is shit, regardless of how well it works after using it long enough. It's notoriously hard to learn, and the vast majority of non-programming users, IMX, know enough to open a file, make a modification, and save it. Vim would be b…

You are missing the point. How do you integrate existing programs into a new program using GUIs? Terminals and text are great for that.

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

#76

It is 2019 and I'm using GUIs, because I'm not crazy.

That's basically a content-free insult.

> That's basically a content-free insult.

Agreed. Totally not necessary. Possibly a result of carelessness as opposed to malice :-)

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

#77
post #22

Earlier quoted context omitted.

Vim seems like the wrong example. A lot of people use it with just the defaults. Emacs seems to be customized right away by more people.

With emacs, however, people tend to use tramp to edit files on a remote server as if they were local. So, there’s less need for actually using emacs on a server in the first place.

You can do the same with vim (in recent versions) out-of-the-box via netrw.

    :help netrw

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

#78
"Not every machine has VSCode, Sublime or Atom installed, but every machine has a terminal."

I love that the article goes from this sentence immediately to:

"These are the main programs I use to make my terminal a complete development environment:"

And proceeds to list 5 different programs, some of which are only available on macOS.

Brilliant.

Edit: One of which are only available*. My point isn't that there isn't a place for GUI and terminal, it's that "not every machine has x and y software" is a fruitless argument.

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

#79

Earlier quoted context omitted.

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 gr…

> "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." I think this for me is the gist of the problem... A lot of corporations prefer these large monolithic codebases, with a thousand different interfaces and abstract classes. I think this is a mistake in design, and prefer simple applications with sim…

It's not inherently a problem, but I do think that there are certain measures that can be taken to reduce code bloat, stack size, and development time. Someone else already noted that large business software can be a bit complicated solely based on the business needs. Regulatory rules and the ability to audit certain actions in the financial industry tend to add a bit of complexity to business logic, and those are completely unavoidable by law. However, some of this stuff is good practice that comes with boilerplate.

A classic example is defining your services in interfaces with a separate class for the actual implementation. This means that even for services that will only be implemented once, you now have the class and an interface. But with an IDE (and since the mappings are clearly defined, I'm sure this wouldn't be a monumental task without a GUI), you write the interface, create a class to implement the interface, and the IDE generates your methods. That's minimal overhead for an IDE, but it require a bit of work on your part to manage in something like vim or emacs.

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

#80
post #69
post #36

Earlier quoted context omitted.

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.

This isn't Starcraft, very few developers are limited by their APM throughput through the UI.

>This isn't Starcraft, very few developers are limited by their APM throughput through the UI.

Made me smile. This is a great analogy. Tactics vs strategy. You can become more efficient at low-level tasks by doing faster text editing. However, as you get into actual software engineering, the first time you need to do some semantic refactoring will wipe out any time you saved through low-level efficiency.

Post reply on HN