Live data from Hacker News

Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

news.ycombinator.com

21–30 of 31 posts

Re: Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

#21

I don't program in Haskell, but I find the language to be incredibly alluring and appealing because it seems almost like a way to access the Comp. Sci. gnosis. It's so different, and so incredibly elegant and amazing in what it does and how it does it, that it feels as tho it reveals some arcane, secret knowledge that, once appreciated, will change how you view every aspect of reality itself.

Damn, now I have to learn Haskell.

Re: Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

#22
Really good C++ programmers are often unwilling to give up the control and power (in practical terms) of the language + libraries. Any piece of code written in a higher level language can always be 'improved' upon / optimized in C/C++, while still remaining reasonably generic. This over time pretty much guarantees that 'timeless' code, like math and graphics libraries, ip stacks etc. will have their canonical representations in C or C++, with 'easier' languages simply linking to those, instead of bothering to provide their lesser own. Soo, those who want to write timeless code do it in C / C++, hard or not.

I think Haskell's appeal lies in being everybody's favorite local maximum, while remaining only a very select few's global one.

Re: Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

#23
post #10

Better question: why do people continue to waste time starting language advocacy wars, when they could be learning new languages?

Why is it so important to learn new languages all the time? Wouldn't you rather just get your startup going as quickly as possible? The implementation is not inherently interesting. It's just a means to an end.

"The implementation is not inherently interesting. It's just a means to an end."

If no one on your team finds implementation details inherently interesting, your implementation is likely to suffer, perhaps to the point of being uncompetitive.

Re: Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

#24
post #4

People enjoy programming in C++? Many people enjoy learning difficult things for the challenge of it, but no sane person enjoys using tools that remain difficult once understood. There are concepts in Haskell (and Lisp, ML, Smalltalk, etc...) that are considered difficult or confusing by the mainstream. They're also powerful , making it rewarding to learn them. Languages like C++ and Java are difficult simply because…

> Languages like C++ and Java are difficult simply because they're big and inconsistent - memorizing them is not very rewarding.

Your 'programming body memory' memorizes the language, and the mines, no biggie - you just program a certain way. What /sucks/ about C++ is the amount of boilerplate you have to write - in, probably, most interactions with the STL, and in class definitions, there's a thought-interfering degree of mandatory (or 'good style mandatory') boilerplate. At least 'for' loops will get cleaner with C++-0x.

Re: Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

#25
post #14
post #13

Earlier quoted context omitted.

C is not C++. You sound like a C programmer more than a C++ programmer.

Nah, I use C++ features pretty heavily. I'll even admit that I use Boost. I use STL when possible, because it's usually more efficient than hand coding and saves some time on implementing common algorithms. C++ gives you the ability to put together really powerful frameworks to work with, but deep within the code you're still working with the same fundamentals.

STL and boost are the future of C++.

Re: Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

#26
post #22

Really good C++ programmers are often unwilling to give up the control and power (in practical terms) of the language + libraries. Any piece of code written in a higher level language can always be 'improved' upon / optimized in C/C++, while still remaining reasonably generic. This over time pretty much guarantees that 'timeless' code, like math and graphics libraries, ip stacks etc. will have their canonical represe…

Haskell is mathematical sound. At least it tries to be.

Re: Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

#27

I don't program in Haskell, but I find the language to be incredibly alluring and appealing because it seems almost like a way to access the Comp. Sci. gnosis. It's so different, and so incredibly elegant and amazing in what it does and how it does it, that it feels as tho it reveals some arcane, secret knowledge that, once appreciated, will change how you view every aspect of reality itself.

Dude...get a grip...it's a programming language, not LSD.

Re: Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

#28

I don't program in Haskell, but I find the language to be incredibly alluring and appealing because it seems almost like a way to access the Comp. Sci. gnosis. It's so different, and so incredibly elegant and amazing in what it does and how it does it, that it feels as tho it reveals some arcane, secret knowledge that, once appreciated, will change how you view every aspect of reality itself.

Haskell is fun in that you get to write things using combinators, through abusing laziness, and in a style that feels very mathematical. It makes me program utility function combinators in other languages, which is excellent.

It's not so fun the moment you want to use more than one Monad at once, though.

Re: Why do some people like difficult programming languages such as C++ and Haskell? Here's my theory...

#30
post #4

People enjoy programming in C++? Many people enjoy learning difficult things for the challenge of it, but no sane person enjoys using tools that remain difficult once understood. There are concepts in Haskell (and Lisp, ML, Smalltalk, etc...) that are considered difficult or confusing by the mainstream. They're also powerful , making it rewarding to learn them. Languages like C++ and Java are difficult simply because…

Some C++ wizards took Greenspun's 10th rule as a challenge and developed template metaprogramming libraries like Loki and Boost :P Its kind of interesting to observe how C++ typelists do compile-time metaprogramming, they use a cons linked-list of types in templates. Its kind of sad to watch though because there's no REPL to set the cons free.

Now that's an interesting thought--a two-stage compiler to replace C++: C with a LISP preprocessor.
Post reply on HN