Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The tasks I was referring to are clearly developer-centric tasks. Applications for "normal people" are an entirely different animal of course.


Kind of funny that we have initiatives like "everyone should be a programmer" but then we don't even trust "normal people" to learn how to use a CLI.


I think the key distinction is between different kinds of tasks (and importantly, the scale on which those tasks are done) rather than different kinds of people.


I'm a developer and a normal person.

CLIs are idiotic. Why can't you just click a button and be done, certainly not sit there and spend 20 minutes figuring out what the fuck -g means or if knockut-sortable is missing an o.

It's utterly ridiculous that you're discussing this and just shows how many of you are utterly brainwashed by utterly useless trivia that your computer should be memorising for you but your fellow programmers are too lazy to implement GUIs for.

I honestly can't comprehend that you so gleefully spend your time so pointlessly, you should be spending your brains on solving actual life and business problems, not memorising the syntax of CLIs you'll use once every 3 months, or worse still, never again, or virtually useless regex syntax.


The day when gui applications have anywhere near the composability of cli applications, I'll think about it.

> I'm a developer

> useless regex

I don't know what kind of developing you do but regexes are massively useful if you do any sort of string handling or input checking.

> CLIs you'll use once every 3 months

Funny, I spend 90% of my time in a CLI. I don't spend my time memorizing stuff, the commands I use frequently are committed to muscle memory, the rest I look up. If you spend time with the CLI you learn to look stuff up not too inefficiently. Looking for a menu entry in a GUI is more painful to me than reading/grepping a man page.

Sounds like you really hate CLIs, I hope you don't have to use them too often, there's no reason why everyone has to use them, but I promise you, there are hundreds of thousands if not millions of productive CLI users out there.


I'm a developer, and an ex-sysadmin. Using the CLI makes my life much simpler. I greatly prefer being able to write scripts, and use things like PDSH to run commands across many boxes. For example, go through every web server, search their logs for occurrences of IP X and then count the number the number of requests per second. Is this something I do every day, nope, but the basics of doing it are the same as the basics of so many other things that I do that there is no issue memorizing the commands.

Using guis and managing a server without a CLI is a very annoying situation.

There are other things where using a GUI is way nicer, like complicated partial git commits.

Also thanks for informing me that I have aspergers, guess I'll have to go have a doctor check that out ;)


How you can tell someone is perfectly normal: they will tell you they are normal.

On the topic, some GUIs are idiotic. A command takes a second to type, but a complicated GUI may take multiple buttons, menus, etc. that take almost forever to navigate.


> Why can't you just click a button and be done

Because there isn't a button to just do everything I want to do and if there was I'd have to find it amongst a million buttons.


> I honestly can't comprehend that you so gleefully spend your time so pointlessly, you should be spending your brains on solving actual life and business problems, not memorising the syntax of CLIs you'll use once every 3 months, or worse still, never again, or virtually useless regex syntax.

This makes me skeptical that you're a programmer, because you just described programming. CLIs are everywhere in programming, and if you haven't written a script you prototyped on a command line, you can't be very experienced as programmer.


Eh, beware overgeneralization from your specific context. I've been working in the Rails/OSS world for the last 5 years or so, and I agree that in this context, someone claiming dislike of CLIs would give me pause.

However, I spent a decade working in .NET on Windows – mostly before PowerShell became popular/usable. A lot of good, experienced programmers in that space rarely used a CLI. I personally had some batch scripts that I used often, but for most people on my team, the CLI was just used for infrequent admin tasks, e.g., debugging a networking issue, restarting IIS, etc. No part of the daily programming workflow depended on a CLI.

I've also worked around some iOS developers, and their workflow seemed similar in that most of them rarely used the terminal for anything beyond infrequent admin tasks or maybe version control.

So yeah, I live in the shell, and it's hard to imagine anyone working in Ruby (or Python or server-side JS) for long without heavy CLI usage. I love the power and composability of the command line, but I also understand that not everyone does and not everyone needs to.

Edit: This might be a flawed analogy, but my feelings on this are similar to my feelings on an IDE vs a text editor. I've become a somewhat passionate vim user, but I wouldn't negatively judge a .NET developer for using Visual Studio nor an iOS developer for using Xcode.


.NET has shifted significantly towards command lines with PowerShell, Windows Nano Server, and the nuget shell.


>Why can't you just click a button and be done

Dump 150 table database, both schema and data. Except two tables, for which you need only schema. Then compress, encrypt & email.

With CLI I can spend 10 minutes looking up documentation, shove command into shell, start it and go to lunch. If I need to something like that again, I can Ctrl-R it, tune and launch again in couple minutes.

But maybe there is a button I can just click?


I think that's exactly the kind of workflow we should be able to create a graphical interface for.

I sometimes wonder if our ability to imagine what visual interfaces can do is limited by our experience with current GUIs. Right now, as other have pointed out, we're limited by the fact that GUI interfaces aren't really composable the way CLI commands are.

But what if we had something that is composable -- maybe something like Smalltalk on steroids -- where every program is a living object that can describe in detail what it does? Then, you'd be able to ask the program what inputs it requires, what its abilities are, and what outputs it can provide.

With something like that, it would be possible to visually put together interesting combinations of programs that we might not have created otherwise. Sort of the like what Bret Victor describes in 'Inventing on Principle'[1] where certain solutions to problems become much more apparent when you can manipulate things and try out new combinations quickly. I'm certain things like this exist (and have existed) in various forms, but I don't think we've explored the concept as fully as we can.

On the other hand, though, I agree with a quote from Eben Moglen earlier in this thread where he talked about 'point and grunt' interfaces. We've been iterating on the same paradigm for a long time. Touchscreens are better in some ways, and worse in others. We gain more physical interactivity with our devices, but we lose a lot of precision because we're now just smacking meat sticks against a pane of glass.

But you know, it's easy for me to sit here and complain about this on the internet. Actually doing something about it is much harder. Maybe it's time for me to fire up Smalltalk and give it a try. :)

[1] https://vimeo.com/36579366




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

Search: