Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Join Us

Name: Anonymous 2011-09-11 13:02

I went on the Haskell site to take a look at the language and I was blown away by the documentation for new people. There are free books on it, plenty of written tutorials, and even a browser interpreter that teaches you the basics of Haskell by prompting you to type code and then explaining it to you.

This is the first time I've ever seen a language that had a community so willing to try and teach you. Do any other language communities come close to this or is Haskell an anomaly?

Name: Anonymous 2011-09-11 19:12

>>1
Haskell
Haskell, OCaml and their ilk are part of a 45-year-old static-typing movement within academia to try to force people to model everything. Programmers hate that. These languages will never, ever enjoy any substantial commercial success, for the exact same reason the Semantic Web is a failure. You can't force people to provide metadata for everything they do. They'll hate you.

An important theoretical idea behind type systems is "soundness". Researchers love to go on about whether a type system is "sound" or not, and "unsound" type systems are considered bad. C++ and Java have "unsound" type systems. To date, the more "sound" a type system is, the more often it's wrong when you try to use it. This is half the reason that C++ and Java are so successful: they let you stop using the type system whenever it gets in your way. The other half of their success stems from the ability to create user-defined static types. The reason C++ and Java (particularly Java) have been so successful is that their type systems form a "let's not get any work done" playground for n00bs to spend time modeling things and telling themselves stories. You can't actually model everything; it's formally impossible and pragmatically a dead-end. But they try. And they tell their peers that you have to model everything or you're a Bad Citizen.

One very real technical problem with the forced-modeling approaches that static type systems are often "wrong". It may be hard to imagine, because by a certain definition they can't be "wrong": the code (or data) is programmatically checked to conform to whatever constraints are imposed by the type system. So the code or data always matches the type model. But the type system is "wrong" whenever it cannot match the intended computational model. Every time want to use multiple inheritance or mixins in Java's type system, Java is "wrong", because it can't do what you want. You have to take the most natural design and corrupt it to fit Java's view of the world.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List