Hacker News new | past | comments | ask | show | jobs | submit login

I went back to Sublime after using Vim for a while but then realized I was going to have a terminal open 24/7 anyway so what's the point? Then I learned how to use a terminal multiplexer and now Sublime and other GUI editors just hinder my workflow. IMHO if you're a programmer you should know how to use a terminal to the point that you prefer it over most GUIs (of course, you should always use whatever has the feature you need).

Oh, and on a side note:

Vim and terminal usage is not a "time sink" and it pains me whenever I hear people who consider them selves "programmers" claim it to be. If you haven't learned how to use the terminal yet (or haven't found a use for it) then you aren't a respectable programmer IMHO. I would not read a book on programming by someone who doesn't know how to use a terminal and I would not take a class on programming taught by a professor who doesn't know how to use a terminal.




In my opinion, other people's opinions about how I program are worth just about nothing.

I'll never understand the sort of arrogance that leads to posting things like that. do you really believe you're so smart that you figured out the only way anyone should do anything?


Well, I wasn't trying to be arrogant.. sorry. But would you really take a programming class taught by a professor who doesn't know how to use a terminal?


Fondness for the terminal or shell is a question of mindset, not ability. You might be surprised (as I was... and, if I'm honest, still am, a little) at how many skilled programmers there are who don't know how to use it, and how many of those that do know, don't actually make use of that knowledge. And yet, they are still worth paying attention to, unless perhaps you're wanting advice about shell commands.

And on the flip side I have also met a number of (relative) dullards whose shell skills were unquestionable.


Well, Alan Turing certainly did not know how to use a terminal :) For some reason his work is still highly relevant today. So yes, I would.


What is there to learn about the terminal? You learn the shell, coreutils, shell scripting, sed, awk, editor...Learning these isn't a measure of competency. If you just want name dropping, John Carmack works in Visual Studio, Notch works in Eclipse.


Yes, absolutely. It'd be a little odd if they hadn't picked up that skill, but I don't see what relevance using or preferring vim could have to, say, teaching functional programming.


Knowing how to use a terminal != using a terminal for everything.


I never said that. Anywhere.


Yet you seem to be mixing these things up.

> IMHO if you're a programmer you should know how to use a terminal to the point that you prefer it over most GUIs

Knowing how to use a terminal: Yes, should be required and isn't taught enough. Preferring it for almost any task - no, it depends on the task and it depends on what you're the most efficient with. I have yet to see a clinical study showing that terminal editing leads to performance improvements over proficient use of hotkey based editing with keyboard and mouse. I have nothing against people using it on a project I lead, but I would never make it a criterium.

> Vim and terminal usage is not a "time sink" and it pains me whenever I hear people who consider them selves "programmers" claim it to be.

Again, you're mixing up terminal proficiency with using it as a your main editor, then belittle those who don't agree with you.

> If you haven't learned how to use the terminal yet (or haven't found a use for it) then you aren't a respectable programmer IMHO.

I agree with that, but it's a different point as outlined above.


You seem to be making the assumption that knowing how to use the terminal is equivalent to preferring to do everything in it. What about people that know how to use the terminal, but prefer to use a GUI text editor like Sublime?


This might surprise you, but the vast majority of developers manage to get by without learning how to use a terminal. They really do. Saying you wouldn't listen to a developer that doesn't use a terminal is just silly - do you know just how many things there are to learn in the world of programming? Everyone has something they've never learned.

Also - can I just ask, as someone who "uses a terminal" but doesn't really get why people talk about it like it's so amazing - what am I doing wrong? What do you use a terminal for that makes it so important?


It's not the terminal, it's the shell.

The terminal is a relatively standardized display with some severe limitations and kludgyness. The DOM of its era.

The shell, which happens to typically live in the terminal, has three things going for it that GUI interfaces frequently lack.

First, composability and automation: any action you can fire off from the shell, you can fire off from a shell script. Any data you're given by a utility, you can operate on and send to any other utility. Any data you're asked to provide can come from anywhere.

Second, narrative structure with history and a sense of place. "I did X, then I did Y, so now I need to Z... wait, what did X say?" is a natural mode of interaction convenient to many sorts of tasks.

Third, extensibility. Write any new utility (whether in the shell or in any language other you choose) and it is quickly a first class piece of your toolset. (This is the most common of the three to find in GUI land, though it often has limitations).


>but the vast majority of developers manage to get by without learning how to use a terminal.

But not the good ones. Would you take a college class on programming from a professor who doesn't know how to use a terminal? I wouldn't.


> If you haven't learned how to use the terminal yet (or haven't found a use for it) then you aren't a respectable programmer IMHO.

If you are mocking people and their mothers on HN[1], you aren't a respectful person. Within this entire thread, you are being disrespectful, arrogant, and insulting. This isn't what HN is about.

Correct your tone or leave.

[1] https://news.ycombinator.com/item?id=7961305


> Correct your tone or leave.

It's true that the comment you linked to was way out of line, but if you're going to ask other users to be civil, please be civil yourself. It takes restraint, but it's necessary.


You've reiterated your point about terminal knowledge being the mark of a programmer, but you've not really outlined the reason for it. I'm sympathetic to the view that a programmer should know her tools, but this discussion has mostly become name-calling (on both sides).


I do all of my programming work in one terminal or another and I still disagree with you. Programming isn't about typing text.


I'm not a seasoned user or anything, but I prefer to use Emacs with a GUI rather than in the terminal. It has nothing do with there being more GUI-type things in there - I have things like save-icons etc. turned off. It just feels more like it's own application in GUI mode (if I run it in terminal mode, the Meta hotkey doesn't work as usual, which I suspect is because the terminal is using the alt-key (meta) for something else and so it overrides that hotkey). Why should I prefer to use Emacs in terminal mode? I am honestly open to changing my mind.


The only advantage I know for using emacs in terminal is that you can get used to it when you'll have to ssh into a remote server.

Anyway today we can just sshfs and use even a random ide for everything so... we can do as we like.


In my experience, any sort of filesystem remoting a la sshfs simply doesn't perform well enough to do real editing work in. One of the really nice things about vi is that it was originally designed for low-bandwidth situations, so using it over ssh is quite snappy even on a marginal network. If I had to use sshfs from home to edit files on my production servers I would probably have to kill myself.


I agree. I can comfortably get seconds ahead of what's displayed on my phone, when needing to fix something in an area of poor coverage. Knowing my ASCII chart can come in handy, on the limited phone keyboard, though...


Running in a terminal means you can run it in screen/tmux, which has a few upsides, though they may not be relevant to your workflow.


Another potential advantage to running from a terminal is that you inherit shell variables that can be used in the editor or in utilities run from the shell. Of course, you can set these for GUI-mode emacs (or vim), but I've found terminal windows and screen a good way of isolating contexts and making sure things are set up appropriately.


"Anyone who doesn't have the same exact opinion as me isn't a real programmer."

Is that correct?


If you join my team and tell me you're a programmer but when you sit down with a terminal you have no idea what to do, then you're off my team and I don't respect you as a programmer.

Sorry if this offends you, but how can you consider your self a programmer when you don't know how to use a terminal?


So Windows programmers, according to you aren't programmers?


Do windows programmers not know how to use a terminal?


For the most part they don't even need to know how to use a terminal, even to manage a server.


I'd consider someone a programmer if they can program. Whatever their preferred workflow is, is completely irrelevant if they can deliver.


Why would I sit down with a terminal when I don't need a terminal to do the type of programming that I do?

Furthermore, anyone who knows how to type and read knows how to use a terminal - it's really not that special of a skill mate :)


What programming do you do? css?


I do C# in Visual Studio all day long. Rarely (if ever) need to touch the terminal. Hundreds of thousands of people use my apps. But nope - I guess I'm not a real programmer because "I don't prefer the terminal". Give us a break mate. Nobody agrees with you.


WorldWideWayne thanks for opening my eyes. You sure are smart. :^)

edit: I just had to post this from your comment history, I think we could both use a chuckle:

"I'm the other VIC-20 vote so far and I don't know where my family had gotten that computer. It came with a book of BASIC programs that you could type in but we didn't have have a storage unit (tape drive), so each time I wanted to play a game I had to type the entire program in and run it. Most of the time I asked my mom to type it in for me, but I remember a couple of times that I spent the hour hunting and pecking in order to play my favorite game (Moon Rover or something, I forget the name)."

You still getting mom to type in terminal commands for you?




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: