← Back to context

Comment by hackinthebochs

5 years ago

But why should any of that be aspirational to an "average" developer? It's like learning how to do mathematics by copying Terrence Tao's patterns of behavior. Perhaps Carmack's output is more a function of the programmer than an indication of good practice for average devs.

I guess I'm still not being clear - when you read John Carmack's programs you realize that it just isn't necessary to do complex nonsense.

If you take a look at the doom source code you realize this isn't the cutting edge of mathematics, he is cranking out great software by avoiding all that and using high school algebra (literally and figuratively) instead.

While other people spin their wheels sweating over following snake oil bob's pamphlet Carmack is making programs that people want, source code that people want and work that stands the test of time.

  • The circumstances he operated under while writing Doom were much different than most people encounter. The couple of people working with him on the code were all experts in their field and have a complete understanding of the problem space. What you seem to be identifying as indications of unnecessary complexity of modern development practices might really just be accident of circumstance and the individual skill of the contributors at the time. It is a mistake to look at the behaviors of the unusually talented few and see takeaways to apply more broadly.

    • He wrote doom by himself and worked with people on later projects. You can look at the source yourself. What he himself said is the exact opposite of what you are saying - because he was able to write things directly he was able to experiment a lot. He was able to get the easier things working and go through trial and error on more difficult aspects.

      If you would actually read through some of his work you would see that it a refreshingly simple way to do thing. No trying to hide that global data isn't global, no unnecessary indirection etc. etc.

      > What you seem to be identifying as indications of unnecessary complexity of modern development practices might really just be accident of circumstance and the individual skill of the contributors at the time

      I have no idea what this is supposed to mean.

      > It is a mistake to look at the behaviors of the unusually talented few and see takeaways to apply more broadly.

      This is the point you are trying to make but you just keep repeating it without backing it up in any way.

      John Carmack used his skill to do things in a simple and direct way. Anyone can start to imitate that immediately. There is no invisible magic going on, he just doesn't subscribe to a bunch of snake oil nonsense that distracts people from writing the parts of their program that actually do things.

      5 replies →