[1]http://www.computercraft.info/forums2/index.php?/topic/8325-...
[1]http://www.computercraft.info/forums2/index.php?/topic/8325-...
see, you are a programmer - you make code. notch is a game developer. he USES code to make THINGS. the things matter, not the code. the game developer ethic is "nothing matters but getting the game running." it's not that notch is a shoddy programmer at all, it's that he has different priorities than you.
Only now, three numbering schemes later (alpha, beta, release), in release version 1.8, does the core game actually have features such as abstracting implementation IDs from object types (EG: now there is minecraft:glass to resolve instead of remembering decimal value 20. Though mods for r1.8 are only just beginning, so that scoping might not yet exist.)
These aren't mutually exclusive. When Carmack, Sweeney et al. built Quake/Unreal, they made something that was both fun and had incredible code quality. Derivatives of the Quake & Unreal engines run today and have been for the last 20 years. I'm doubtful that any code written by Notch for Minecraft will be running anywhere 20 years from now. Likewise, don't NASA engineers "actually make something" while adhering to strict code quality? Doesn't Google "actually make something" while adhering to strict code quality? The choice between "code quality" and "actually delivering" is a false dichotomy invented by people who needed an excuse.
Next, I never implied Notch was a shoddy programmer. Notch is a great programmer by his own merits and I don't think anyone can doubt that - however great programmers can produce shitty code. What I was responding to was OPs assertion that 10x programmers exist. Notch produced some pretty great stuff, and iterated quickly, but that speed didn't come free and surely theres a lot of technical debt that others now have to deal with.
Lastly, I'm not saying this is a bad thing. Sometimes its more important that you can ship first, and fix later. Sometimes being first to market is better than being the best. What I want to point out however this is a normal tradeoff and this doesn't make Notch a "10x engineer" (when I say 10x here I mean a mythical man who has achieved enlightenment that none of us can achieve even if we worked for 1000 years). He's a great developer, but we shouldn't pretend that there weren't tradeoffs to his approach and that his style is anyway mythical (like a unicorn).
the point is that game development is inherently a big job and you have to make massive tradeoffs if you want to get something working in a reasonable amount of time by yourself. of course if you have thousands of people to throw at the problem you can go nuts and adhere to the highest of quality standards.
but i agree that notch isn't a mythical programmer or "10x engineer".
And Tim Sweeney did a lot of development on Unreal 4 on his own[1]. The trade offs of structure & abandon can work at many scales, you don't have to be Google to do it. Likewise Redis[2] has largely been the work of a single developer, and isn't reckless.
Now while Minecraft is a toy and Notch likely didn't start out with the thought to develop it into a business, that doesn't mean the value of its code is worthless. Yes the tradeoffs are there, but we shouldn't get carried away and start to believe you can only write "good" code if you have a thousand engineers.
[1]http://www.tgdaily.com/business-and-law-features/36436-tim-s... [2]https://github.com/antirez/redis/graphs/contributors
There are other problems with original Minecraft, that surfaced when people started to actively disassemble (or deobfuscate) it. But those are mostly unsourced, and I do not feel the authority to speak about it.
[0] http://what.thedailywtf.com/t/optifine-modder-rips-the-minec...
Not all code has to be a platform. It's entirely acceptable to write code that "just works" and does not pretend to be 'future proof' or any nonsense like that.
In YC they tell you the same thing: just write the hell out of it and get it done. You will rewrite everything later anyway when you know more about the business and the customers. Games work a bit different, but the lesson applies.
Yes good engineering is important, and Google is a great example. Do you think the code Larry and Sergey wrote early on was anything close to shippable code at Google today? I guarantee you it was a mess of python scripts and c libraries.
YAGNI. Make your product the edifice, not your code.