Re:C++17: I See a Monad in Your Future
by danabramov on Thursday February 27, 2014 @05:54PM
(#7315846)
It's not about a language feature, is it?
I wonder what programming language is not a mess?
Re:C++17: I See a Monad in Your Future
by username42 on Friday February 28, 2014 @04:17AM
(#7317813)
Ada is not a mess. C89 was not a mess. Almost all languages become a mess when the become older or when standard committees are involved. For C++ it was a mess very early. After C++98, it was an awful mess of compiler incompatibilities. Strangely, a usable language seems to have recently emerged from this mess.
Re:C++17: I See a Monad in Your Future
by marcosdumay on Thursday February 27, 2014 @08:48PM
(#7316730)
The ones that nobody improves.
Either because they are new, because nobody use them, or because they are LISP.
I really don't like how no lisper thinks it's a good idea to improve LISP, but it's this way.
Re:C++17: I See a Monad in Your Future
by steveklabnik on Thursday February 27, 2014 @07:24PM
(#7316411)
I'll just state the obvious: Scheme. ;)
And Unlambda.
Joking aside, Haskell is pretty pleasant to program in most of the time.
forcing strict evaluation feels like a mess,
template haskell feels like a mess,
debugging space leaks feels like a mess,
not to mention that the haskell learning curve is very high
Haskell is pretty good at a lot of things, so don't misunderstand me, Haskell it's really good! But, at the same time, it still has lots of room for improvement. I guess perfection doesn't exist.
Oh, there's room for improvement. I guess we just used different standards for `mess'.
I think something like http://lambda-the-ultimate.org/node/1446 could be the way forward. (And would be achievable from Haskell with enough work.)
Everyone and their grandma recommends me Scheme, but i am more willing to try a lisp that i can actually use in production like Clojure, i don't know.
Re:C++17: I See a Monad in Your Future
by steveklabnik on Thursday February 27, 2014 @10:30PM
(#7317079)
The assertion was "not a mess," not "usable in production." ;)
Touché ;).
Why is Scheme unusable for production?
I wouldn't even think where i would use it, can you enlighten me?
On the other hand, C++ is already a mess. It's not even a beautiful mess, but it is a very functioning mess. Adding more stuff to it just seems like heaping more things on top of a pile that's already falling over in pieces.
Granted, like most everything else in C++, it will probably be optional, and hey, if nothing else, having more (optional) features is very pragmatic.