I hate computers. But I love what you can do with them.
brucelawson.co.uk
brucelawson.co.uk
I mean, I don't know jack about ancient literature or medicine, but it's not something I'm proud of, and I don't go around bragging on my ignorance for sure.
Not sure if this is the case, but it's something I noticed more than once in my daily life.
I think it's part of them acknowledging that knowing about computers in this age is very important, and feel that they should learn more about them, but are reluctant due to time constraints / feeling then can't understand the maths / etc.. so they find excuses why it is uncool.
Technologists aren't free from this "fallacy" either. For example, when they hate on marketing ("I don't want to learn about marketing as it's all bullshit"), or when people from one technical field hate on another ("back end? man, that's just engineering, it's all about UI these days...").
In the case of hate on computers, it's usually combined with some component of nostalgia; What do we need computers (and computer people) for? Weren't we better off in slower times, without all the flashy stuff?
IMO If you claim to be a programmer, you ought to have a whine-free good grasp (at least) of the tools necessary to be successful.
Unfortunately things don't get sold on their technical merits...
the ignorance stated was trying to bring up a point that I fully agree with, a lot of us dont actually care about the computer, I dont program because I like typing out arbitrarily defined syntax, I dont learn algorithms because they are "fun" I build applications that work on the computer because I want people to use them, I want to build tools that help peoples lives or help them do their jobs
And I did mention your case in my post; you might not care about the back end (algorithms, bit/byte pushing, compilers, etc) but it is important anyway. Your pretty UIs for helping people in their lives (I don't mean to discount that -- it's really important) won't go anywhere without the infrastructure.
Everyone has their preferred area, and the fields together are important. We could just as well stop boasting how our work was somehow better so we can be proud we don't care about someone elses work...
I think current computing UIs are horrible, in the same way that the Nokia UI was bad, but only became visible upon the release of the iPhone.
This was not the case, say, 80 years ago. Computers are still at the stage where, to use them to their full potential, you have to understand their inner workings far more than many people would like.
I'm a programmer, but I feel the same way -- I look at programming as a means to an end, and even get depressed when I realize the proportion of my life I've spent delving into CSS float or z-index intricacies, or the finer points of compatibility with IE.
> I spend a considerable portion of my income on a house with a heating system and three flushing toilets, so there’s no bloody way I’m going camping.
Let me kindly remind you that every comfy house is built on ground first pioneered by people enduring hardships of camping. Not because they wanted to punish themselves, but because they were working on the frontier and pushing bounds forward. It's thanks to them -- both the well known explorers and the John Does of the frontier -- that all lands, once devoid of civilization, became user-friendly.
You may want to live in the suburbs of GUI, that's cool; I'd rather git-commit myself to the frontier and git-push forward, for much is still to be discovered and conquered. And there's great sense of adventure and camaraderie around there :-)
-- wanders off to work on that pesky little website
I think Bruce is on about the people who have a comfy house, but still choose to endure the hardships of camping. That, he feels (and I couldn't agree more), is more like masochism than like pioneering.
For example, I really don't see why 'git commit -a -m "turd"' is pioneering while right-click, Commit, check boxes, enter "turd", click "Ok" is not.
Mind you though, I'm not saying that a GUI is unproductive or bad in any way. Just that it's almost always less efficient if you know what you're doing.
[1] Just for the record, I'm on GNU/Linux since about a year now. At first I was like "wtf CLI" myself. Then I slowly learned to appreciate it. So I'm not someone who's been using CLI since the dawn of Unix and is waving his cane at the kids on his lawn.
"For example, I really don't see why 'git commit -a -m "turd"' is pioneering while right-click, Commit, check boxes, enter "turd", click "Ok" is not."
I agree with you, if the GUI you're talking about is some wonderful Git GUI and you like it, awesome. I got the impression from the post that this author isn't impressed by people using Git at all: "I’m scared of Git and Subversion."
I think that's what the grandparent was talking about regarding the frontiers. Git (and Hg, and Darcs, and Bazaar...) is on the frontier, and this means that it's a bit rough and ready. But a lot of people find it productive and useful and the benefits outweigh the costs of reading manpages to find argument flags.
That's kind of how I feel about Git GUIs, since many of them are still rough and ready, and just aren't as powerful as the CLI (see TortoiseGit, where you cannot interact with the index, and the Eclipse plugin, which doesn't support submodules and makes some infuriating decisions about how to manage more than one Eclipse project inside a Git repo). But if you're more productive with a GUI than the Git CLI, great!
I just get the feeling that the OP isn't interested in better tools for the sake of better tools, which is a bit disingenuous since Opera and the web and all the great stuff he talks about wouldn't have been possible if we were still using punch cards.
I don't get that analogy. My house may be comfy, but I can't travel with it, and I'd rather have to endure such hardships than being stuck at home all year. And camping is still the cheapest (and for some, the only affordable) way to travel.
To innovate, to push the envelope you need to put pieces together. Until somebody invents and popularizes a way to compose [1] GUI widgets as easily as CLI programs via something like a pipe operator, CLI remains the only composable toolkit. We have, as of yet, no interconnectable GUI replacement for find, grep, xargs, sed etc.
Today's GUI widgets are individual nodes. Connected with sneakernet at best -- that's Copy+Paste for ya. No matter how great each node is, there is very little cooperation, little synergy effect. What we need is like the Internet -- live, vibrant network with rich interconnects, and ease to create new ones with few clicks. Only CLI is there today.
Rest assured the day of GUI will come, people are working on it all the time. But we arent' there yet, at least not when it comes to pushing the envelope.
----
[1] from user's perspective, not just programmer's
As a programmer, I'd love to simply create a nested array of options that the OS would automatically turn into a tabbed preferences panel, depending on data types and their groups.
I suppose it's too much to ask for...
As soon as you become a power user, using the underlying language or something similar to a CLI beats using the GUI. Distinguishing 'GUI widgets' and the ways in which you can wire them together and then actually wiring them together takes more time than doing the same thing in a CLI, for experienced users. I don't see this ever being solved.
This became true over time for me. My attitude to camping has changed as I've aged. I used to enjoy roughing it but now I prefer not spending time putting my tent up when I arrive somewhere and taking it down in the morning. I used to enjoy coding with text editors and the shell but now I like the comfort of my IDE.
It's good to know how to put up a tent though, 'cause you never know where you'll end up.
You may think it a badge of honour that you can do "$ git rm -cached readme.txt" from memory. I think you’re burying your turds with a trowel in a thunderstorm.
Made me laugh...!
I wish they would sell it.
It never does quite what I want
But what I tell it.
On the other hand, there's so many times, where a GUI hinders productivity severely.
E.g. a `find -name "*.foo" -exec mv {} . \;` in a heavily nested directory structure can be huge timesaver. Moving the desired files with a file manager would be so much more cumbersome.
Well unless you are mentally disabled, remembering that command (and a couple of thousand others) is trivial.
The title is complete nonsense. He never actually backs up the statement that he hates computers, he just rants about his love for his wheelchair (GUI).
But for specific manipulation of the version control system, or specific queries, a command line is much more expressive. For a lot of functionality there isn't even a (good) GUI because the use case doesn't come up enough for someone to build it, or you're doing something no one has thought of before. Sometimes you need to take the path less traveled :-)
I couldn't disagree more -- one of the reasons I'm a programmer, I think, is because I'm good with concepts and bad at memory (History was my worst class). And programming, for me, is all about organizing structures.
For function calls, autocomplete and tooltips that remind me of the argument order are lifesavers for me. On the command line, I simply can't consistently remember which commands take which flags, and which parameters, in which order...
Command-line is fantastic for connecting together different processes, creating macros and scripts, etc. But not for day-to-day use. There, I agree with the article's author, command-line use is pure masochism.
A checkbox (well-labelled) takes a second to interact with. Hunting in the man pages for a command-line option? Usually around a minute. I want to spend my brain power and time on programming, not on my tools.
It's hardly trivial. People think and remember in different ways, even those who aren't mentally challenged. Personally, I always feel like I'm speaking a foreign language when using the terminal, even though I've been using it nearly every day for several years now. However, my spatial memory is much stronger. I generally feel familiar with a new GUI pretty quickly, since I can map functionality to locations. Plus there's the visual aspect of any icons.
Shortcut keys are immensely useful once you build strong muscle memory of them, but frustrating if that's your only option. Certain programs, such as Rhino3D, give you full GUI, top menus, and a command line, (and scripting in multiple languages,) and being able to pick the way that works fastest for me for any given operation and my overall workflow is awesome.
Also, being able to just see what possible options are is important. I find it kind of cruel that modern terminals don't have a good way to do this (yeah there's tab, but it's not auto). Shells that have even a basic auto-suggest are almost delightful to use, by comparison (eg Rhino's).
1. I'm a libertarian interested in changing the world towards a stateless society. 2. The best way to change the world is to change incentives 3. The best way to change incentives is to use technology
My interest in tech is thus opportunistic. I don't get excited by beautiful code as such.
If you like what you can do with a computer, then you like computers, even if there are aspects of computing you do not like. No one expects a person to like absolutely everything about computing, or to never get frustrated with it. (In fact, I would argue a certain amount of frustration can result in a rewarding experience.)
Conversely, no one likes computers in some sort of abstract sense apart from what you can do with computers. If computers didn't produce any output no one would be interested in them in the slightest.
What this man is basically saying is he prefers GUI as an interface but he's willing to use command line interfaces if that's the only option. Which is not very interesting.
The bottom line to all of this, though, is that people need to accept that if they wish to use a computer without harming themselves or others they'll need to sit down and learn a few things. It'd be good to teach people that both CLI and GUI are acceptable user interface mechanisms and that they both can work well depending on the task and implementation at hand, among other basics.
Do we get constant outrage that it requires some basic training to get a driver's license? We recognize the value of driving a car and we're willing to put in the requisite training time to get a basic understanding of how to use a car safely and properly. We are going to need to cultivate the same attitude in computers if we are going to progress in a very meaningful way.
As a driver does not necessarily have to understand the inner workings of their transmission, engine, etc., a computer operator should not have to understand the inner workings of the operating system, CPU, etc., but people need to accept that they will need some basic literacy in order to have a smooth computing experience. These are complex machines, after all, and it's almost silly that people expect to magically be able to use them with very little cognition, at least initially. There is no reason not to have basic courses that teach people fundamentals in UI design, so that they can not only use the current version of program X but also figure out how to use X+1 when the vendor decides to totally renovate the interface.
And, if we have that basic literacy, people won't be so frightened to experiment with new interfaces and learn how new things work, which is a fundamental issue for most of the persons > 40 yrs that I know who use computers regularly. People would know how to make sure their files don't get lost, how to press Ctrl+Z or find the undo option, how to read corresponding man/help pages and how to look something up on Google when extra help is needed. These are the basics to successful computer operation, and everyone would be a lot happier if they just recognized the need for this training instead of constantly demanding that their computer work as simply as their toaster.
This. You can't imagine how many times I stared at a screenful of buttons that looked like an airplane cockpit or something, trying to figure out where in bloody hell was the function I needed. More than once, I would find out what the button is supposed to look like through reading help docs, but then fail to find the same button on the overly complex toolbar, since the toolbar, apparently having a mind of its own, would randomly decide to hide some of its buttons so that it would not appear as daunting (looking at you, Microsoft!) Give me bloody syntax and CLI that I can look up or Google over this clusterfuck any day.
Whatever happened to a simple text menu, organized logically and hierarchically, where you pretty much know where anything will be? And simple dialog boxes, instead of ribbon-bar-palettes that show and hide different things depending on the width of your screen?
A man page requires me to read the whole thing before I'm confident of what option I'm looking for, because it's presented as an unstructured list of parameters. A menu bar is hierarchical, and I should (theoretically) be able to find what I'm looking for quicker -- and I know if an option is disabled before trying it, and a dialog box asks me whatever else the program needs to know.
Unfortunately, Microsoft and others are abandoning the tried-and-true principles of interface design. I refuse to use anything after Word 2003, but Google Docs is generally even easier.
Not necessarily. I can usually easily grep a man page for the keywords I'm looking for. Most users (even beginners) know how to search for words on a single long page of text. In fact, one of the users of my app (a content management system for biologists) has mentioned to me that he prefers to click on plain-text output instead of using default HTML paginated output because he can instantly jump to what he's looking for by using browser text search feature (I plan on providing a Javascript-based word lookup feature in the future to emulate this).
You get the best of both worlds -- the options are there when you're learning, and your muscle memory takes over for your highly repetitive tasks.
look at it this way: my friend just bought a brand new hyundai. he likes the car. it gets him places. thats all he cares about. I drive ancient cars (my current pet project is an 89 jeep, which is carbureted. what a mess). I spend the same amount of money he does on payments maintaining it, it's a lot of extra stress and time, but I love the process of it. I wait for things to break sometimes just so I can fiddle with it (basically all of the stuff jeremy clarkson has to say about MGB drivers applies to me).
to some people I am insane.
TLDR: I poop in a hole behind a tree during a thunderstorm, and that's okay with me. you think I'm crazy for apparently denying progress, I think you're crazy for hiding in your house from the world. contrast is what makes us human. etc etc.
Also, I don't think command-line interfaces are comparable to camping in a thunderstorm. They're actually quite intuitive and fun. It just takes a couple weeks of getting used to; then you realize how powerful the command line actually is. Ask a Windows sysadmin how he spends his day; I dare you.
"More efficient after a couple weeks of getting used to", that could convince me...
"The only intuitive interface is the nipple. After that, its all learned." (http://www.greenend.org.uk/rjk/2002/08/nipple.html)
In a great many cases it is impossible to make a GUI to perform every conceivable action you want to do. You need to drop down to a more basic level, and that inevitable means text, whether it be programming languages (like HTML) or command lines. Drawing some arbitrary line based on when you in particular decided to stop learning new things is pretty meaningless.