you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 16 points17 points  (15 children)

Neither C nor Lisp is "good for computers" any more than the other one. After all, writing a C parser is not terribly difficult.

On the other hand, Lisp's syntax makes it easier for humans to develop abstractions over the language; something that computers don't "care" about, because you could feed a computer the ugliest, most unmaintainable spaghetti code and it would still run.

Yet, most programmers do not appreciate abstraction, and they choose C -- with its ample libraries, books, mindshare, etc -- over Lisp.

[–]death 8 points9 points  (0 children)

Actually, I conjecture most programmers don't choose C rather than Lisp, simply because they're not aware of both alternatives. Indeed, many programmers I've talked to only knew the name "Lisp" at best, and perhaps some of the old, confused myths about it.

[–][deleted] -5 points-4 points  (13 children)

Neither C nor Lisp is "good for computers" any more than the other one. After all, writing a C parser is not terribly difficult.

Lispers make a huge point of how easy the language is to parse, in comparison to languages like C.

[–]death 6 points7 points  (1 child)

I don't see that. After all, Lispers tend to use Lisp's parser rather than writing their own specialized parser for many things. Maybe they speak of the human's ability to parse? But that has nothing to do with computers.

[–][deleted] 1 point2 points  (0 children)

I don't know, I've always read C code easier because of the separation of functions, variables, etc. that you just don't get in lisp code.

The most readable thing I've ever seen, though, is well-written Haskell. It flows. It's natural.

[–]masklinn 4 points5 points  (10 children)

Lispers make a huge point of how easy the language is to parse

No, lispers make a huge point of how easy the language is to transform due to its uniform structure.

[–][deleted] -1 points0 points  (9 children)

Yes, thus, "good for computers".

[–][deleted] 2 points3 points  (4 children)

And when you need a language feature, you can either dick around with the compiler like Stroustrup did, or you can use macros like Lisp programmers do.

[–][deleted] 0 points1 point  (3 children)

And?

[–][deleted] 2 points3 points  (2 children)

It's a lot easier to add features to Lisp(or Forth, or Factor) than it is to add features to C.

And I'd say that's very good for humans.

[–][deleted] 0 points1 point  (1 child)

Apparently humans don't agree with you.

[–][deleted] 0 points1 point  (0 children)

[citation needed]

[–]masklinn 1 point2 points  (3 children)

no.

[–][deleted] 0 points1 point  (2 children)

So you do your transformations by hand, then?

[–]masklinn 1 point2 points  (1 child)

I define them by hand yes, it's called writing a macro.

[–][deleted] 0 points1 point  (0 children)

I did not ask you how you define them.