8 ms·
This is the part... John discusses his functional programming adventures in Haskell at QuakeCon 2013. "So what I set out to do was take the original Wolfenstei
by Arjuna 9y ago
This is the part... John discusses his functional programming adventures in Haskell at QuakeCon 2013.
"So what I set out to do was take the original Wolfenstein 3D, and re-implement it in Haskell."
[...]
"I've got a few conclusions coming from it. One of them is that, there's still the question about static vs dynamic. I know that there was a survey just coming out recently where the majority of programmers are still really not behind static typing. I know that there's the two orthogonal axes about whether types are strong or weak, and whether it's static or dynamic. I come down really pretty firmly, all my experience continues to push me towards this way, that strong, static typing has really significant benefits. Sometimes it's not comfortable, sometimes you have to build up a tight scaffolding to do something that should be really easy, but there are real, strong wins to it."
https://www.youtube.com/watch?v=Uooh0Y9fC_M#t=4876 https://www.youtube.com/watch?v=Uooh0Y9fC_M#t=4876
(Starts at approximately 1:21:16 in case the direct link doesn't work correctly.)
- hellofunk 9y agoThanks very much for sharing this. Awesome.
- meta_AU 9y agoAnother great quote from that same talk is akong the lines of "Any syntactically valid code, that the compiler will accept, will eventually make it into your code base."
- AndrewOMartin 9y agoThis is great when you're re-implementing Wolfenstein. Not so much when you're doing exploratory computer science, or blue-sky prototyping. To build upon his analogy, scaffolding is most helpful when you have a reasonable knowledge of the shape of the building. "It depends on the context" isn't exactly a shocking discovery however. I love Carmack, love his presentation style, and when he talks from experience, I listen.
- the_af 9y ago> Not so much when you're doing exploratory computer science I'm not sure. The following experiment is outdated (I'd love to see it redone more rigorously and with modern languages) and has several methodology flaws, but "An Experiment In Software Prototyping Productivity" (1994, Paul Hudak et al) shows that Haskell and static types are actually great for rapid prototyping and exploratory programming, even in the face of vague or incomplete requirements. This runs contrary to common sense, which is why the experiment was fascinating.