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

The whole exchange is great! Keep on reading the subsequent messages. Here's some interesting parts:

" The fact is, that is exactly the kinds of things that C excels at. Not just as a language, but as a required mentality. One of the great strengths of C is that it doesn't make you think of your program as anything high-level. It's what makes you apparently prefer other languages, but the thing is, from a git standpoint, "high level" is exactly the wrong thing. "

and

"And if you want a fancier language, C++ is absolutely the worst one to choose. If you want real high-level, pick one that has true high-level features like garbage collection or a good system integration, rather than something that lacks both the sparseness and straightforwardness of C, and doesn't even have the high-level bindings to important concepts.

IOW, C++ is in that inconvenient spot where it doesn't help make things simple enough to be truly usable for prototyping or simple GUI programming, and yet isn't the lean system programming language that C is that actively encourags you to use simple and direct constructs."



I just read the whole thing... Linus basically says "I wrote it in C so idiots like you wouldn't (and couldn't) contribute".

Which is mean spirited and kind of an asinine thing to say, but so awesome at the same time.


That's not what he said. He said "I wrote it in C because C was the best language for the job. It's also nice that C discourages idiots from trying to contribute.".

He's right on both counts. I've always found using tools designed for smart people to be an effective way to cut down on the number of stupid people attempting to work on a project, but the main advantage is getting to use a good tool instead of a bad one.


<i>"pick one that has true high-level features like garbage collection or a good system integration, rather than something that lacks both the sparseness and straightforwardness of C, and doesn't even have the high-level bindings to important concepts."</i>

That's a straw man. There are garbage collectors and "system integration" libraries for C++. The language doesn't lack for high-level bindings, but it also doesn't force you to adopt a paradigm. This flexibility is C++'s greatest strength, as well as its greatest weakness.

Personally, I find it more than a little ironic that a huge amount of the complexity of C++ comes from its insistence on remaining backwards-compatible with C. Linus may love the "lean system programming language", but it sure does bring a lot of ugly baggage to the C++ party....


"...but it also doesn't force you to adopt a paradigm. This flexibility is C++'s greatest strength, as well as its greatest weakness."

Lisp is mult-paradigm also. I think the difference is that Lisp has a philosophy. The paradigms fit together in a consistent way. For example, Common Lisp has an object system, CLOS. But they implemented it around generic functions, in order to keep the functional programming nature of Lisp intact.

Lisp will let you do pretty much anything. But it often gives you a "nudge" in a particular direction. I believe pg points this out in On Lisp; you can write procedural code in Lisp, for example, but the code flows a lot better if you write in a functional style.

C++ just seems like a kitchen sink language. Everything is in there somewhere. But it doesn't seem like the parts were designed to fit together in any particular way.


I agree with you about Lisp. I like Lisp; it's definitely more elegant than C++.

That said, C++ was designed to be resource efficient, at a time when the best Lisp interpreters were...well...less so. So, while C++ and Lisp both have OO, functional, procedural and metaprogramming techniques (among others), C++ has made some ugly choices to achieve efficiency at the same time.

For the record: I am not trying to get into a Lisp/C++ debate.


Now, why in the world would someone mod down my comment?

Honestly, folks...it isn't a criminal offense to disagree with Linus Torvalds. There are positive things to be said about C++.




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

Search: