News for hackers. Stuff that matters.
Re:“Mostly functional” programming does not work by PaulAJ on Sunday April 27, 2014 @09:39AM (#7654996)
Yes, that is what I meant. Thanks for the clarification, although I think the term "beauty contest" trivialises the issue. Its not about beauty, its about buggy software.
Re:“Mostly functional” programming does not work by Silhouette on Sunday April 27, 2014 @10:48AM (#7655268)
Its not about beauty, its about buggy software.

Right. But until we have a comparable body of production software written in pure functional code -- and by comparable, I mean closer to the volume of code written in today's mainstream languages and by average developers, not a few applications written by elite developers -- we can't say for sure whether the pure functional approach does in fact prevent buggy software, or whether it simply leads to different kinds of bugs.

A lot of advocacy for functional programming and languages like Haskell makes claims about being safer because certain types of programmer error are prevented. However, relatively little commentary also highlights downsides like the need for accumulating parameters and strictness annotations just to achieve acceptable performance, or the maintenance hazards of having both monadic and non-monadic implementations of algorithms. Until someone finds a way to prove that a large-scale lazy functional program can't exceed the available system resources with an explosion of thunks, any claim that this approach is inherently safe seems rather premature.

Re:“Mostly functional” programming does not work by coldtea on Sunday April 27, 2014 @10:21AM (#7655152)
Well, most of the software I depend upon everyday, and is almost rock-solid is written in C++.

So not sure where you are getting at.

Re:“Mostly functional” programming does not work by angersock on Sunday April 27, 2014 @01:04PM (#7655838)
"Its not about beauty, its about buggy software."

In the vast majority of cases, it's about delivering customer value--whether through good, buggy, or nonexistent software.

A buggy language used to make buggy software beats a perfect solution every time if it gets you paid.

EDIT:

Downvote all you'd like; in the vast majority of cases the pain point of a customer getting solved is what matters, not how we solve it.

Re:“Mostly functional” programming does not work by paulajohnson on Sunday April 27, 2014 @03:47PM (#7656503)
I can have it done next week if it doesn't have to work.

And of course this is a false dichotomy anyway.

Re:“Mostly functional” programming does not work by dllthomas on Sunday April 27, 2014 @02:41PM (#7656190)
There is an element of truth to this. It is also how we get things like Heartbleed.
Re:“Mostly functional” programming does not work by angersock on Sunday April 27, 2014 @04:47PM (#7656788)
So, library code and critical infrastructure would fall outside of the "vast majority of cases". :)

And again, the question there is "Did Heartbleed keep people from getting value out of OpenSSL?". The answer is no, even if the value provided wasn't as advertised. It was more useful to have something--anything!--than nothing.

Re:“Mostly functional” programming does not work by dllthomas on Tuesday April 29, 2014 @07:16PM (#7670561)
'So, library code and critical infrastructure would fall outside of the "vast majority of cases".'

Arguably, though the limited sandboxes in wide deployment are sufficiently full of holes that most code provides some access to something that might be considered critical infrastructure.

'And again, the question there is "Did Heartbleed keep people from getting value out of OpenSSL?". The answer is no, even if the value provided wasn't as advertised. It was more useful to have something--anything!--than nothing.'

Possibly. Belief that you're secure when you aren't can quite definitely be much worse than no belief that you're secure, but I'm significantly less sure that Heartbleed moved many people from "sufficiently secure" to "insufficiently secure" in many individual cases (the possibility exists, I just lack the data to make any determination).

Also, for many use cases, there exist (and existed then, of course) alternatives that are probably more secure. If "nothing" meant using those instead it was quite a bit better to have "nothing".