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

This is an interesting idea, and I think his final analogy summed it up perfectly: symbolic math is like a command line. But I reject his assumption that a command line is a bad interface. And that mirrors my thoughts on this post: for the layperson, a GUI may indeed be better than a command line; for a professional (a programmer) the reverse is true.

A command line lets you combine and recombine different programs and easily do many things its creators never dreamed of. Symbolic manipulation and algebra are just like that!

Let's imagine you know how to differentiate viscerally; you understand what a tangent line looks like and how to plot that and you care not for silly equations like d/dx x^3 = 3x^2. Naturally, you understand basic arithmetic in the same way and not as mechanical manipulations on symbols. You are perfectly well equipped to deal with real problems, and perhaps find it easier than shuffling symbols around. But you would never come up with a way to get the derivative of, say, an algebraic data type[1][2]. (For the curious, this is how you can define a zipper on a type.)

[1]: http://blog.lab49.com/archives/3011 [2]: http://strictlypositive.org/diff.pdf

And that's the problem really: mechanical manipulation of symbols lets you divorce the mathematical idea from the underlying "reality". It lets you generalize patterns with complete disregard for what they mean. And, somehow, this produces indubitably useful, nontrivial results. That's the real magic of math, and that's the magic that you don't get in your high school courses. (I think linear algebra is the first subject like this, but I'm just learning it now.)




Also, I think a point that could be made that if you were to teach a 'layperson' how to use a command line, given they were willing to learn it -and not pull the "I'm too dumb, this is for you computer people" card- I think they would quickly discover that there are few things they do daily that they could do quicker.


The problem is that our education systems, by and large, include effectively no education about computers whatsoever. (Classes with touch-typing lessons/word-processing skills/etc. don't count in my mind.)

As a result, most people have no concept of how a computer really works. With just the tiniest bit of this knowledge, the command-line would seem much less arcane, and the 'I'm too dumb, this is for you computer people' argument wouldn't really apply.

It's shocking how computing is quite literally the technological advance of the millennium, both for industry and for individuals, and yet we somehow think it's acceptable to leave it up to people to learn about it all on their own, and even then only if they care to.


yes. Also, people are so thrown by complexity, that they assume they aren't capable of taking steps toward figuring something out. a CLI really is NOT that hard. They all follow a very simple pattern:

[command] [parameters]

$ ls

just a one word command. shows you directory contents. easy. not complicated looking. Lets make it harder.

$ ls -a

an option. list contents of directory. but ALL of them. still easy.

building from the ground up is easy. For some reason, people still are scared off. Why? Why are people afraid to learn?


It's easy to sight of just how much things you must know just to use the command line. When I read you comment I wondered what other options were available, so I tried...

$ls -h

This is what I've seen with most command line tools, but it doesn't work. So then I tried...

$ls --help

The output is

> ls: illegal option -- - > usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

What? I had to google it. Ok so...

$man ls

Oh, cool, a list of the options, finaly. Now, let's see what ls -a does:

> -a Include directory entries whose names begin with a dot (.).

If I were looking for invisible files I'd have absolutely no idea this is the option I need to use.

Now, I completely understand that the power of the command line relies on its consistency, I'm confident that—at some point—I'm going to be able to grasp it's elegance. But, for now, I feel like a foreigner in a new country who just knows a few phrases and struggles greatly to understand what is being said to me. Saying that the command line is easy is like saying that English is easy.


> Saying that the command line is easy is like saying that English is easy.

Well, right now it's as if we didn't teach English (or, rather, any foreign language) in schools and then somehow 'magically' expected people to pick up the single most important foreign language for communicating in modern life.

No, it's not easy, but the basics are really not hard to learn if started early and kept up consistently. Just like any other skill that we teach in schools.


But that's only if you try to learn by prodding and poking it. When I started learning English, I didn't begin by reading the definitions of a word in a dictionary. I read manuals that explained the basics in a way that didn't assume prior knowledge.

In the same way, searching for "how can I learn to use the command line" gives you a bunch of guides - of varying quality, of course - that explain the basic commands in a clearer way.


I think Bret may be targeting laypeople from what I've seen, so he will always come down on the side of enabling growth for larger numbers of people, as opposed to an 'elite' few (comparatively).




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

Search: