Live data from Hacker News

John Carmack: Thoughts on Haskell [video]

functionaltalks.org

71–80 of 153 posts

Re: John Carmack: Thoughts on Haskell [video]

#71

AFAICT he doesn't reach any particularly satisfying conclusions and just speculates that Haskell is an interesting avenue of research that may bear fruit for game development. It doesn't seem like he has put the same amount of effort in experimenting with Lisp. He doesn't mention any attempt to port Wolfenstein over to Common Lisp. Instead he seems content speculating from the same position many Lisp doubters have af…

I can't watch his talk right now, but at QuakeCon he recently discussed Scheme, and the potential for embedding it in a game. I think he also pondered what Quake would have been if QuakeC was based on Scheme instead. But my basic issue with talking about Carmack with respect to programming languages is that he never struck me as an expert on languages. Or even programming for that matter. The source code to Quake was…

I can understand saying he isn't an expert on languages, but to say he isn't an expert programmer is honestly just condescending.

Re: John Carmack: Thoughts on Haskell [video]

#72
post #63
post #36

I like this quotation: Languages talk about being multi-paradigm as if it's a good thing, but multi-paradigm means you can always do the bad thing if you feel you really need to, and programmers are extremely bad at doing sort of the the time-scale integration of the cost of doing something that they know is negative. I mean everyone will know...it's like "this global flag: this is not a good thing, this a bad thing…

While i can see his point, I'm not entirely sure this is the case. A text-book example of a multi-paradigm language is Scala. And yet with Scala, the more I've learned about the functional side of things, the more tempting it is just to avoid any imperative or object-oriented idioms or patterns and just go functional all the way. it's almost as if the designers of scala knew if they could convert java programmers ove…

My experience with Scala was the opposite: it has great support for OO and imperative programming. The functional way of doing things often wasn't better, while on the other hand, traits are crazy flexible. I've seen people go crazy with functional code in Scala that is barely readable and impossible to debug; the JVM debugger is still optimize for imperative programs, while no one has really figured out a good debugger for functional programming yet.

OO/imperative programming isn't all "bad." Being functional doesn't really ensure that the code is "good."

Re: John Carmack: Thoughts on Haskell [video]

#73
post #63

Earlier quoted context omitted.

While i can see his point, I'm not entirely sure this is the case. A text-book example of a multi-paradigm language is Scala. And yet with Scala, the more I've learned about the functional side of things, the more tempting it is just to avoid any imperative or object-oriented idioms or patterns and just go functional all the way. it's almost as if the designers of scala knew if they could convert java programmers ove…

My experience with Scala was the opposite: it has great support for OO and imperative programming. The functional way of doing things often wasn't better, while on the other hand, traits are crazy flexible. I've seen people go crazy with functional code in Scala that is barely readable and impossible to debug; the JVM debugger is still optimize for imperative programs, while no one has really figured out a good debug…

"There is no programming language, no matter how structured, that will prevent programmers from making bad programs." - Larry Flon

The same applies to programming paradigms.

Re: John Carmack: Thoughts on Haskell [video]

#74
post #29

Earlier quoted context omitted.

Pure FP doesn't have variables. It has bindings.

This seems like splitting hairs.

It's not. Referential transparency and immutability (or lack thereof) is a big deal, especially when it comes to multi-threaded code.

Re: John Carmack: Thoughts on Haskell [video]

#75

Earlier quoted context omitted.

My experience with Scala was the opposite: it has great support for OO and imperative programming. The functional way of doing things often wasn't better, while on the other hand, traits are crazy flexible. I've seen people go crazy with functional code in Scala that is barely readable and impossible to debug; the JVM debugger is still optimize for imperative programs, while no one has really figured out a good debug…

"There is no programming language, no matter how structured, that will prevent programmers from making bad programs." - Larry Flon The same applies to programming paradigms.

There are many programming languages, specifically structured, to prevent programmers from making a certain subset of bad programs. This is incredibly useful.

Re: John Carmack: Thoughts on Haskell [video]

#76
post #8

I'm still waiting for his in depth article about his experiences while porting Wolfenstein to Haskell - mainly to see if it's worth learning Haskell. Beacause as he said in the video: Most examples in books (I guess that counts for evangelization blogs too) are toy examples. And I'd like to know how viable the language is for bigger systems.

This is highly anecdotal, but I've built and been part of very practical/non-theoretical, large Haskell projects (100k+ lines, which is a lot for Haskell). The only big complaint I have is that it's somewhat hard to do loose coupling, i.e. for something somewhere to reference a type without either redeclaring the type (when that's possible), or having a huge, centralized Types.hs that declares all the types that are…

Do you mind telling me what field is your large Haskel project in? I want to get a feeling of where Haskel is in the commercial world. Is it a finance industry product?

Re: John Carmack: Thoughts on Haskell [video]

#77
post #76
post #8

Earlier quoted context omitted.

This is highly anecdotal, but I've built and been part of very practical/non-theoretical, large Haskell projects (100k+ lines, which is a lot for Haskell). The only big complaint I have is that it's somewhat hard to do loose coupling, i.e. for something somewhere to reference a type without either redeclaring the type (when that's possible), or having a huge, centralized Types.hs that declares all the types that are…

Do you mind telling me what field is your large Haskel project in? I want to get a feeling of where Haskel is in the commercial world. Is it a finance industry product?

No, this is net tech. Crawlers, parsers, protocol implementations, web servers, cryptography. Sorry, I'm not allowed to disclose much more. Suffice it to say it's not specialized/overly mathy/abstract, and it's very similar to the kind of software the majority of HN users write.

I do hope I can advertise it at some point, as the "Haskell in Industry" page is sorely lacking non-finance companies, and I'm sure there are a lot of companies out there using it.

Re: John Carmack: Thoughts on Haskell [video]

#78

AFAICT he doesn't reach any particularly satisfying conclusions and just speculates that Haskell is an interesting avenue of research that may bear fruit for game development. It doesn't seem like he has put the same amount of effort in experimenting with Lisp. He doesn't mention any attempt to port Wolfenstein over to Common Lisp. Instead he seems content speculating from the same position many Lisp doubters have af…

If you'll go read his opinions, you'll see that he has been a strong advocate for static analysis. His position is very understandable since he spent a lot of time working on complex pieces of C/C++ code, encountering a lot of subtle accidental errors that could have been avoided with better tools for static analysis or with a better language. He also worked mostly on client side software, where the fail fast / fail…

Tim Sweeney (Unreal Engine) has also written about haskell and specifically STM (http://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-...) and more recently on dependently typed languages (http://arxiv.org/pdf/1307.5277v1.pdf).

Re: John Carmack: Thoughts on Haskell [video]

#79

Earlier quoted context omitted.

To me, that is a great reason to listen to him. He builds big and complicated programs that people actually use.

> He builds big and complicated programs that people actually use. That's kind of an insult to, well, every working programmer.

Most people don't build big and complicated programs.

Re: John Carmack: Thoughts on Haskell [video]

#80

AFAICT he doesn't reach any particularly satisfying conclusions and just speculates that Haskell is an interesting avenue of research that may bear fruit for game development. It doesn't seem like he has put the same amount of effort in experimenting with Lisp. He doesn't mention any attempt to port Wolfenstein over to Common Lisp. Instead he seems content speculating from the same position many Lisp doubters have af…

I can't watch his talk right now, but at QuakeCon he recently discussed Scheme, and the potential for embedding it in a game. I think he also pondered what Quake would have been if QuakeC was based on Scheme instead. But my basic issue with talking about Carmack with respect to programming languages is that he never struck me as an expert on languages. Or even programming for that matter. The source code to Quake was…

As an intermediate haskeller (I use it for my business every day) his criticisms largely mirror mine. I found the quake codebase to be great in the 90s. I have also found him more than most other developers to admit when thing didn't work out, specifically that doom 3 was c++ in name only and he didn't fully understand it. A scheme based language would have been better for most modders than quakeC.
Post reply on HN