Live data from Hacker News

John Carmack on Functional Programming (2013) [video]

youtube.com

41–50 of 90 posts

Re: John Carmack on Functional Programming (2013) [video]

#41
post #39
post #34

Earlier quoted context omitted.

that's nice, but generally speaking the mindset is still very much imperative.

Well, it is still a huge fight to get many devs to stop writing "C with C++ compiler" style anyway. The C++ community that cares about C++Now, CppCon, ACCU kind of material, does care about applying functional programming ideas to their daily coding.

is it bad that I prefer C to all the shit in C++?

Now I don't even write C/C++ regularly, so my opinion is probably shit. But I really like the simplicity of C over all the features of C++.

Re: John Carmack on Functional Programming (2013) [video]

#42
post #31
post #10

EDIT: Why all those downvotes? Are famous developers not supposed to criticized on HN? While John has a lot of interesting things to say, the presentation is awful, almost an imposition to the audience. There's not a single slide, or any repetition to clarify structure, or any notable gestures to make up for that. A simple overview, just a damn simple list of keywords, would already go a long way. That would add a lo…

I downvoted you because: 1. You state your criticism like it's an objective fact. I think it was a brilliant talk. 2. Your edit. It violates the HN guidelines and you insinuate people only downvote you because they are Carmack fans.

> You state your criticism like it's an objective fact, when in reality I'm sure most would disagree with you.

He stated his opinion, it's how people discuss things. Ironically, by saying "in reality, I'm sure most would disagree with you", you do the same thing (express your opinion as if it is fact), AND use the weasel words of "in reality" to add gravitas to your opinion. I didn't like the talk either FWIW.

Re: John Carmack on Functional Programming (2013) [video]

#43

Earlier quoted context omitted.

As I heard it, he talked about independent agents which traverse a world by taking it as an input and reporting their own state as an output, and how easy to code such a model was in functional languages because the world was immutable. You don't have to mess around with the world data to keep the actions in sync. Of course there's a level of conflict resolution needed at some point, which wasn't something he had not…

It's not about either. He is illustrating a problem that only occurs in functional programming: There is no concept of time in pure functions. In imperative programming when two actors approach the same spot, whether the application is parallel or not, one actor ALWAYS arrives first and the other will arrive subsequently. Therefore the Second actor can read the state of the first and act accordingly... This is not th…

But one actor can always read the state of the other actor, and modify their actions accordingly. The state of each actor is immutable, so each action taken based on the state is sure to be conflict free. As opposed to imperative programming, were each actors position might not get updated correctly or in time until too late. Deadlock and starvation don't happen when you have pure functions with no side effects and immutable state like they do in non-FP languages.

Timing is harder to get right when everything is async, but if your game design is good, you just need to better implement it to get it right frame by frame. He also talks about having monads to handle things like this.

Re: John Carmack on Functional Programming (2013) [video]

#44
I am aware that my presentations aren't optimal for communicating targeted information, and it does weigh on me more and more as the years go by.

So far, I haven't been able to justify to myself the time required to do a really professional job, so I just show up and talk for a few hours. I like to think there is some value in the spontaneity and unscripted nature, but I don't kid myself about it being the most effective way to communicate important information.

I'm taking some baby steps -- I at least made a rough outline to guide my talking at last year's Oculus Connect instead of being in full ramble mode.

Re: John Carmack on Functional Programming (2013) [video]

#45

I am aware that my presentations aren't optimal for communicating targeted information, and it does weigh on me more and more as the years go by. So far, I haven't been able to justify to myself the time required to do a really professional job, so I just show up and talk for a few hours. I like to think there is some value in the spontaneity and unscripted nature, but I don't kid myself about it being the most effec…

Might not be the easiest if you intend to get a certain thought or point across but I really enjoy the format. Reminds me of long-form radio shows.

Re: John Carmack on Functional Programming (2013) [video]

#46

I am aware that my presentations aren't optimal for communicating targeted information, and it does weigh on me more and more as the years go by. So far, I haven't been able to justify to myself the time required to do a really professional job, so I just show up and talk for a few hours. I like to think there is some value in the spontaneity and unscripted nature, but I don't kid myself about it being the most effec…

While this may be true, please don't let it cause you to shy away from "full ramble mode" when the opportunity presents itself! I know I speak for many when I say that I have learned much from hearing these sorts of talks of yours over the years. Your willingness to share your wealth of experience is inspirational, regardless of the format.

Re: John Carmack on Functional Programming (2013) [video]

#47

I am aware that my presentations aren't optimal for communicating targeted information, and it does weigh on me more and more as the years go by. So far, I haven't been able to justify to myself the time required to do a really professional job, so I just show up and talk for a few hours. I like to think there is some value in the spontaneity and unscripted nature, but I don't kid myself about it being the most effec…

Just to say, from my perspective I love your talks, zero distractions, just a long cogent train of thought to follow. Please don't feel the need to make too many changes.

Re: John Carmack on Functional Programming (2013) [video]

#48

I am aware that my presentations aren't optimal for communicating targeted information, and it does weigh on me more and more as the years go by. So far, I haven't been able to justify to myself the time required to do a really professional job, so I just show up and talk for a few hours. I like to think there is some value in the spontaneity and unscripted nature, but I don't kid myself about it being the most effec…

Your contributions to computing over the years more than outweigh any lack of preparation for a presentation.

Re: John Carmack on Functional Programming (2013) [video]

#49
post #10

EDIT: Why all those downvotes? Are famous developers not supposed to criticized on HN? While John has a lot of interesting things to say, the presentation is awful, almost an imposition to the audience. There's not a single slide, or any repetition to clarify structure, or any notable gestures to make up for that. A simple overview, just a damn simple list of keywords, would already go a long way. That would add a lo…

Perhaps native speakers enjoy this kind of talk a lot. I can't speak for others but I certainly did.

I don't feel that listening attentively for a couple of hours is that much of an imposition.

Re: John Carmack on Functional Programming (2013) [video]

#50
post #12

Earlier quoted context omitted.

He talked about a whole FP-powered architecture to solve this.

Yes, and I'm curious how it turned out. Are there any followup talks on this that anybody knows about? It's certainly a solvable problem, but how many of the advantages remain once the data dependency problem is solved?

I think the crux of his point is really between constantly having to update state in a mutable way (with a decent probability of starvation and possibly deadlock) vs. pure functions, immutability and the async FP architecture he talked about. The advantage of the later is it brings maintainable code, and this stays true throughout the life of the code.

Off course, you'll have to hire or train FPers as he mentions.

Post reply on HN