3

Hot take: It's impossible to be a good programmer while relying on the gui. It's a crutch holding you back.

Comments
  • 11
    Bullshit
  • 10
    Ok boomer
  • 5
    Bullshit
  • 4
  • 5
    Where tha fuck did this come from??
  • 9
    Here's a real hot take:

    It's impossible to be a good programmer.

    :)
  • 3
    A UI is nice for learning a new tech and discovering nifty features. Or just exploring something fast.

    A terminal is great once you know the basics and want to be faster, more productive and maybe even automate stuff.

    Problem is, that certain features are harder to find/use first time in a terminal and UI containing all the possibilities of the terminal are super rare if not impossible or unusable.
  • 6
    @LinusCDE "terminal is faster" is a myth.
  • 0
    @iiii It heavily depends on how you use it.

    I for example, use a drop down terminal and can get most got commands really fast with zsh's history based arrow feature and shorthand aliases.

    If you however first need to find your terminal "UI" window, focus it, and then type out a full git command by hand (most terminal newbies don't use tab) a button 1 or 2 meues deep sure is faster.
  • 0
    I agree that "just using a terminal" doesn't make a new user faster. Most people saying that have an optimized workflow, experience or a lot of scripts to back up that claim.

    But new users will not have those, so the first very inefficient use will not back that claim up and may make it seem like a lie.
  • 0
    @LinusCDE you can do all that even faster and with less errors using something like Sublime Merge.

    Just stop.
  • 0
    @iiii For staging selective hunks I do indeed prefer a ui. Since I work mostly with VSCode, I usually select what to commit there and either do the commit with the UI or the console. It's both the same speed at that point.

    Sublime merge looks nice tbh. Will give that a look.
  • 1
    GUI vs TUI

    E.g. git add -i is a TUI.

    Text based, but it is a user interface.

    Much of any command you use is a command with a text based or graphical user interface - graphical user interface usually implies a graphical hardware based window management, though I find that "cumbersome" and nitpicky since the distinction is really nitpicky.

    Back to the statement itself...

    What's true is that if you don't understand what the GUI does, it is a crutch.

    That's where many of the problems of many devs start.

    Clicking without any understanding what the click actually does.

    Same btw for a TUI.

    If you understand what you're doing, it's just a support system.

    If you don't understand what you're doing, or rely blindly on it without second thoughts it's a crutch.

    The best comparison I can give is GPS based navigation... It's never a dumb idea to be able to read a map, but it's a very dumb and retarded idea to just blindly stare at a screen and listen to a computer voice without looking WHERE you drive.

    Countless stories of people driving into a sea, underground station, etc.
  • 1
    When you're new to a tool, you don't care much about speed. When you get good at it, hotkeys in a GUI and aliases in the terminal fulfill the same function of making you ever faster. The one advantage of the terminal which GUIs don't and can't share is universal automation.

    Now here's a hot take with reasoning:
    GUIs are identified by their reliance on geometry. Whether you draw with vector graphics, a laser, an electron beam, an array of LEDs or an array of ASCII characters is a superficial detail, and so is the difference between using the arrow keys or the mouse pointer to select options. TUIs, text-based UIs are distinguished by their choice to avoid geometrical signals and instead rely on words, line breaks, paragraphs, indentation and other basic text elements for communication. A TUI is one which you can plug into a generic screen reader without any further configuration and it feels natural.
  • 1
    ok, dinosaur.

    having to remember arcane commands to do basic stuff and having to hold in your head the most elementary state of the system you're working with just because you have no gui to indicate it for you is a needless extra cognitive load taking away from the mental resources you have to deal with the actual things you're doing.

    i'm all for programs having commandline commands for functions (since they are, or should be, just calls to functions in the program), but aince it's not 1970 anymore, so we don't suffer from lack of ram to display anything but text, i see no reason why this way which was originally just an unpleasant necessity, should be considered superior.

    you would never advocate that the best way to operate a door lock is having to remember and manually set pin positions, instead of just using the gui (the key), so i don't get the elitism specific in software advocating the equivalent.
  • 2
    case in point, which i love - git.
    sure, if you want to claim that the superior way to navigate a multidimensional, spatio-temporal graph of tree structures is a fucking commandline and text, go ahead, embarrass yourself.
  • 1
    Hm. Git has many good terminal based ui's.

    Many people mistake here sth I think.

    You _are_ faster once muscle memory sets in.

    Reason why many many many software is still having a UI which is largely key based.

    Be it a cashier system (even with touchpad - there _should_ be a memorizable order)… warehouse storage... delivery... Or simple tools like git.

    Once you got it, you're most likely faster. Except for visual representation.

    That's cumbersome in an TUI / CLI. Not impossible, just cumbersome.

    Eg. mutt - oldest terminal based mail program I know. Still actively developed - despite being textual ui only.

    Or emacs / vim...

    It's not _always_ the case, as I said - e.g. visual representation is cumbersome - so saying one is always faster is as much wrong as saying one is always more efficient - as both are subjective in my opinion.

    Wish an UX designer / researcher would be active here, then we would have the fabulous discussion of click depth vs shortcuts, easier accessibility vs hidden complexity etc. - lots of interesting topics, but in my opinion:

    There is no universal truth here.

    You need to understand what you're doing and memorize it, once you did that, everything should be easy peasy.

    If the program is well designed... Many applications / web interfaces etc suck bonkers at memorization, be it due to missing keyboard shortcut support, changing layouts in every form / menu, different representation of same content in different contexts etc.
  • 1
    @IntrusionCM "you are faster once muscle memory sets in"

    the only thing i use consistently enough for muscle memory to even have a chance to start developing is my ide, and maybe git, but fuck controlling git via commandline.

    all other tools are usually totally different and new for me with every project, because fuck IT ecosystem and everyones "i will make MY OWN XYZ, WITH MORE BLINKENLICHTS!"

    also, when i work, the bottleneck is my thinking, not my typing or clicking.

    if it's not that way for you, maybe you should be working on projects that will actually challenge you ;)
  • 1
    also also: you can learn how to use a tool with a good ui by just messing with the ui, meaning organically while you're working with it.

    you can only learn commandline tools by reading manuals and tutorials (whether online or built into - - help), meaning constantly interrupting your work.
  • 2
    @Midnight-shcode pretty bold statement.

    You can memorize a lot.

    I just think you're ... Either young or foolish.

    Even IDEs have short cuts - which when you get used to them, increase greatly efficiency.

    Even sth trivial like STRG + S / STRG + P / STRG + C / ... _is_ a short cut.

    These are kinda universal, so saying there is no memorization possible _at all_ is foolish.

    It's just a matter of wether you want to make your life a tad easier and invest a bit of time for memorization - or not.
  • 0
  • 0
    @IntrusionCM we were talking about commandline tools though, not gui shortcuts, and especially not the globally universal ones. i think i was pretty clear in my comments, so i'm not sure why your reaponse is what it is.

    i'm 32,btw.
  • 0
    @Midnight-shcode Yeah and I was talking about key based navigation and muscle memory in general.

    :)

    As a peace offering: have some steak.
  • 1
    @IntrusionCM peace offering hasn't arrived; the war i didn't know we have continues to rage =D
  • 2
    someone bring the punch cards, this guy's gonna love them
  • 0
    @IntrusionCM sorry, I won’t concern my brain with git reset variations
  • 1
    @darksideofyay it isn't real programming unless you're soldering the wires yourself!
  • 0
    This was a hot take! Also everyone who disagrees with me is still wrong obv.
Add Comment