Linked by Thom Holwerda on Thu 6th Sep 2012 18:07 UTC, submitted by MOS6510
General Development "Imagine an approach to programming where you write down some description of what your code should do, then before running your code you run some automatic tool to see if the code matches the description. That's Test-driven development, you say! Actually, this is what you are doing when you use static types in most languages too. Types are a description of the code's inputs and outputs, and the check ensures that inputs and outputs match up and are used consistently. Modern type systems - such as in Haskell or above - are very flexible, and allow these descriptions to be quite detailed; plus they are not too obtrusive in use and often very helpful."
Thread beginning with comment 534301
To read all comments associated with this story, please click here.
It's interesting...
by satsujinka on Fri 7th Sep 2012 20:27 UTC
satsujinka
Member since:
2010-03-11

that the other programming related "news" have lots of comments, but this one has none.

I mean Haskell's a great language so I'm surprised there's no dialog here. Is it a demographic thing? Or is the post just too long to form coherent posts?

Reply Score: 2

RE: It's interesting...
by Alfman on Sat 8th Sep 2012 01:20 in reply to "It's interesting..."
Alfman Member since:
2011-01-28

satsujunka,

Having tried haskell (along with prolog), I have to say it is way ahead of it's time. It is truly in a league of it's own.

algebra : calculus :: C++/Pascal/Java/... : Haskell


In a conventional language, I'd have the write the specific algorithm to solve a problem. In Haskell, I can write the relationships and constraints of the answer I want, but then it's up to the language to find a way to reach the answer. Many functions can be evaluated forwards and backwards.

It requires a radical shift in thinking, which is probably why it's not been popular. Several generations down the line though I hope we'll see more languages adopting the Haskell approach programming, emphasising the "what" instead of the "how".

Reply Parent Score: 3

RE[2]: It's interesting...
by satsujinka on Sat 8th Sep 2012 02:57 in reply to "RE: It's interesting..."
satsujinka Member since:
2010-03-11

Except Haskell really doesn't require too much of a change in thought patterns (especially if you've encountered other functional languages.) You don't have to use type annotations. You don't have to understand monads and arrows. You have to deal with immutability, but the concept isn't foreign (pretty much all languages have a notion of constants.) There's even 'do' notation that's basically an imperative language.

I think the thing that gets a lot of people is that functional languages are largely math based. For some reason that scares people, when it really should be viewed as a good thing. And in many ways it is, after all if you came out with a new language today and said it didn't have first class functions... you'd probably be laughed at.

Reply Parent Score: 2

RE[2]: It's interesting...
by zima on Sun 9th Sep 2012 06:45 in reply to "RE: It's interesting..."
zima Member since:
2005-07-06

I can write the relationships and constraints of the answer I want, but then it's up to the language to find a way to reach the answer. [...]
It requires a radical shift in thinking, which is probably why it's not been popular. Several generations down the line though I hope we'll see more languages adopting the Haskell approach programming, emphasising the "what" instead of the "how".

Asking as a mostly layman: could that be the closest thing we have to the mythical / fantasy / cargo cult scifi standard of "Computer! Do [one thing] and [some different thing]!" commands? ;p

Reply Parent Score: 3