1,188 karma · joined September 2, 2012
Come'on, you don't even have proper memory at that age. And then "to figure out how it worked", sure. We all dissected electronics when we were young, but that is hardly what I would call hacking. I don't get people's obbsession with bragging about how early they start. I guess it's since most hackers (pg, esr, Linus etc.) have these stories how early they start and somehow people think they need to do so to become great programmers (or hackers). It's not all bad though, I remember how motivating it was reading about those stories at young age.
I have to say though; static types itself doesn't prevent bugs, they only prevent common errors. But if you got an expressive type system like Haskell (or OCaml etc.) you can write well-typed programs. A great example is Yesod[0], which is a web framework completely designed around being well-typed.
EDIT: Okey, "well-typed" may not be the right term. TAPL calls every program that pass the type-checker well-typed so what I meant is programming written type-safe.
Do you have any example were the documentation available is only scientific or technical papers? I've been learning Haskell for a year now, and even though I've read some papers due to interest I've never felt like it was the only form of documentation.
0. https://github.com/id-Software 1. http://en.whttp://en.wikipedia.org/wiki/File:Quake_-_family_...
Elm is theoretically classic FRP with a option of a arrow interface, but the combinators for building signal networks is not provided by defult. Therefore I feel its a bit unfair to call it FRP and not having a prefix explaining that its a derivitive there of.
The core points in your criticism is known though, and basically apply to any other language. Most language with new concepts and new syntax will be difficult to learn if you already are used to another language. Especially if the language is almost the opposite of the one you learn. Imperative language are about writing how and writing functionally is about writing what. Widely different mindset is needed to accomplish many tasks. Recursion being one thing, monadic computation being another. One thing many people coming from OOP to Haskell have a hard time with is that they write new classes when what they really want is new datatypes.
In the end you win when you've learnt a language such as Haskell though, cause even if you won't write production code in it you will learn a lot of useful practices you can apply to everyday programming. Also you will have a new language to write your side projects in. ;)
It's a new company focusing on this exact problem. They offer tools like an IDE and deployment model. You can just sign-up on their website and start coding directly, you don't need to mess with setting things up. They also got School of Haskell which is a central place of really great tutorials ranging from tutorials on developing web apps to category theory stuff.
Check them out: https://www.fpcomplete.com/
The Norvig quote sounds more reasonable.
On a serious side note, it doesn't need pipes since the shell utilities are wrapped as function which are composable in Haskell.