Live data from Hacker News

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

lucasfcosta.com

131–140 of 248 posts

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

#131

Earlier quoted context omitted.

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…

When comparing vim and intellij, vim is a lot closer to the chisel, while intellij is closer to the chainsaw.

I think you're missing the point I'm making, they're different tools that serve different purposes:

IntelliJ is really great at managing large, statically typed, Java/Scala/Enterprisey frameworks. I have never seen a vim setup that effectively generates and manages javabeans. I have never seen a vim setup that manages an xml spring configuration file correctly (or even understands how to resolve xml namespaces and validate them.)

But vim is very lightweight, it's incredibly customizable, it's adaptable. It is faster for editing text. If you're writing a new language that doesn't have integration with IntelliJ's language protocol, it's probably better. If you need to jump into the source code of other libraries to understand what's going on, Vim tends not to be good at that sort of thing.

Regardless of which you think is the chisel and which is the chainsaw, there are some software engineers trying to cut down trees and some trying to make marble statues. The "all software engineers who don't use my tools are fools!" mentality doesn't make sense.

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

#132
post #97

What are the chances that teletype simulation is the best possible way to interact with computers? This is what command line emulates: https://www.youtube.com/watch?v=AIWZ_pbLYqQ Yes, this was way better than punch-cards. But it was incremental and used completely arbitrary technology simply because it was available from somewhere else. UI as a concept was poisoned by Windows and its shitty derivatives. Like, there i…

"still don't have"? For many years we did. "no longer have" is more correct.

* http://xahlee.info/kbd/i/kb/sun_keyboard_left.jpg

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

#133

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

"Some of which" is actually just one app from the list (iterm2). Iterm2 is just a terminal emulator, so I guess you can sed "s/iterm2/gnome-terminal/g". I must admit that none of these are common default apps.

IIUC, iTerm2 has uniquely good integration with tmux.

If I knew I'd always have Mac as a client, I'd probably switch to using Tmux instead of Gnu Screen just for that reason.

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

#134

Earlier quoted context omitted.

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.

I have 64GB in my laptop... which might be taking it too far.

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

#135
post #100

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

It's common to think that the goal of UI design is always about being as intuitive as possible, to minimize potential learning curves until they're basically non-existent. I don't think that's the only worthy goal, though. Intuitiveness and power are often opposing goals. You often see a way to make an interface more powerful, let the user work more effectively and/or efficiently, at the cost of intuitiveness and hav…

I largely agree with your post, but disagree with the idea that intuitiveness and power are often opposing.

I believe that intuitiveness always helps with power. It’s just that the audience when defining intuitiveness shouldn’t only be limited to newbies. Unfortunately, we seem to conflate “intuitiveness” with “intuitiveness for newbies”. However, if you’re creating new power features, those features will always be better served if they are more intuitive for the intended users, I.e. power users. (conversely, they will be worse off for power users if they are designed to be intuitive to newbies).

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

#136

Earlier quoted context omitted.

Saying that you should learn the terminal because a machine may not have Atom or Sublime is sort of saying that an advantage of the terminal is that you don't have to install additional software, isn't it?

Nah, that sounds just like short for "I sometimes wear the devops hat" - that is, the author probably has to switch computers regularly. Productivity as a devops/sysadmin has different requirements than regular developer productivity. In the former case, you'd prefer standard terminal apps and default settings. In the latter, you'd customize the hell out of your CLI and editing experience.

Yes that's also key for network admins - ironically I found when doing my CCNA that my experience years ago on PDP's cli came in handy on ios (the Cisco os).

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

#137

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…

Just wait for the vim guy who will be like "but muh java plugins make it more efficient then IntelliJ"... I think i am more productive in an IDE, faster. Sure if you have this insane VI/EMACS setup that you have tuned for years. Good for you, you probably are a fucking wiz. My standard right now is a terminal & IDE combo. Working in the cloud era as a data person, you need to be comfortable with terminal & vi/emacs (…

> Sure if you have this insane VI/EMACS setup that you have tuned for years. Good for you, you probably are a fucking wiz.

To share a glimpse of the mindset of us on the editors side: that insane Emacs setup I've been tuning for years enables me to be "a fucking wiz" not just with Lisp. The very same setup lets me work efficiently with Python, Shell, configs, SQL databases, HTML+CSS+JS, running a personal Wiki, organizing tasks, tracking time spent on those tasks, billing customers for that time, reading/writing mail, and a bunch of other things. We love our editors because of compound interest - we get to reapply the same tricks to almost every task done on a computer (and we complain loudly when we can't shoehorn a task into editor-oriented workflow :)).

That said, I'll still grant you're better off with IntelliJ IDEA for Java. For the time being, at least. I'm having high hopes for language servers trend - they're the bridge that could enable vim and Emacs to reach feature parity in all the places they're currently deficient compared to IDEs.

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

#138
One of the most important take-aways of this article: you do not need tons of plugins! I see this very often in motivated and bright developers who want to start using `vim`. They copy a humongous config file, install tons of plugins, and suddenly, something breaks or does not work as expected. In my opinion, it is much better to start from scratch.

(besides, I have noticed a tendency in myself that is basically 'yak shaving for vim': the more plugins you have, the more you have to work on their configuration in order to make sure that they all work as expected...while this _feels_ very productive, it is actually the opposite of productivity)

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

#139

Earlier quoted context omitted.

Nah, that sounds just like short for "I sometimes wear the devops hat" - that is, the author probably has to switch computers regularly. Productivity as a devops/sysadmin has different requirements than regular developer productivity. In the former case, you'd prefer standard terminal apps and default settings. In the latter, you'd customize the hell out of your CLI and editing experience.

Yes that's also key for network admins - ironically I found when doing my CCNA that my experience years ago on PDP's cli came in handy on ios (the Cisco os).

Yes. I wonder though, with proliferation of tools for automating server management, how much does this approach still matter?

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

#140

Earlier quoted context omitted.

> 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. No prejudice.. I run a dev/comms box on a Raspberry Pi Zero W that has 512Mb of RAM. I originally set it up with a lightweight GUI which would actually start up but was pointless to try and use for anything. Reverting back to CLI meant that I could now "do stuff", and I…

That's nothing, I do BASIC on a Commodore 64. 70mb of RAM -- pssah! The average developer workstation probably has 32GB of RAM, a fast SSD, and huge monitors but 64k is all you really need.

Bah, my 1KB Timex Sinclair 1000 has labels on its "keyboard" with every BASIC keyword. I don't even have to type the whole word. Productivity!
Post reply on HN