News for hackers. Stuff that matters.
Re:Programming is terrible – Lessons learned from a life was... by nemothekid on Sunday March 15, 2015 @10:02PM (#9209310)
Its rather strange you would bring up Notch, as I wouldn't consider Notch-run Minecraft a marvel of engineering. I'd hate to be the guy who cleans up after him, and while Minecraft works (and it is a really great game), most people consider to be terribly built.[1] So yes, while Notch is a rather speedy engineer, I wouldn't consider the skills of an engineer based on how fast they code. Maintainability is an important feature (however, at the same time maybe building a house of cards really quick than flipping it to Microsoft for 1B, maybe ignoring maintainability is not so bad).

[1]http://www.computercraft.info/forums2/index.php?/topic/8325-...

Re:Programming is terrible – Lessons learned from a life was... by amagumori on Sunday March 15, 2015 @11:23PM (#9209634)
game devs like notch have made a conscious and canny decision to value actually making something over code quality. also, notch didn't build minecraft expecting it to be a runaway success.

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.

Re:Programming is terrible – Lessons learned from a life was... by nemothekid on Monday March 16, 2015 @01:58AM (#9210072)
game devs like notch have made a conscious and canny decision to value actually making something over code quality.

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).

Re:Programming is terrible – Lessons learned from a life was... by amagumori on Monday March 16, 2015 @03:58AM (#9210318)
uhh...when you mention NASA engineers and Google "actually making something" while adhering to strict code quality you seem to overlook the fact that NASA and Google are organizations with thousands of developers and notch is ONE GUY.

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".

Re:Programming is terrible – Lessons learned from a life was... by nemothekid on Monday March 16, 2015 @05:04AM (#9210473)
uhh...when you mention NASA engineers and Google "actually making something" while adhering to strict code quality you seem to overlook the fact that NASA and Google are organizations with thousands of developers and notch is ONE GUY.

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

Re:Programming is terrible – Lessons learned from a life was... by reedlaw on Monday March 16, 2015 @12:04AM (#9209780)
I think we all use code to make things. However, not caring about the code can spell disaster for the thing we're making. In the case of Minecraft it appears the code is good enough but I wonder how many more features would exist if it wasn't for the poor design.
Re:Programming is terrible – Lessons learned from a life was... by tlarkworthy on Monday March 16, 2015 @12:36AM (#9209893)
worth noting that games have a fairly short half-life normally, so dev's are writing a new game rather than adding features to an existing legacy game (unlike mainstream software development). You also get to vary the scope of the game as the time budget runs out.
Re:Programming is terrible – Lessons learned from a life was... by bayesianhorse on Monday March 16, 2015 @12:52AM (#9209937)
So far, it hasn't lead to disaster in case of Minecraft...
Re:Programming is terrible – Lessons learned from a life was... by mjevans on Monday March 16, 2015 @05:27AM (#9210521)
Minecraft is fun. However I'd clearly state that Minecraft, especially the early multi-player stuff that Notch worked on, /was/ a disaster.

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.)

Re:Programming is terrible – Lessons learned from a life was... by nihonjon on Monday March 16, 2015 @02:55AM (#9210203)
Programmers I've worked with who valued refactoring code instead of building features have also been some of the most negative people I've met.
Re:Programming is terrible – Lessons learned from a life was... by zapu on Monday March 16, 2015 @11:48AM (#9212111)
Even though Minecraft is not top quality code, you've provided very weak source. See [0] which provided memory usage analysis, that turn out pretty bad. It credits Notch (remember that he stopped working on the game at some point) as author of more optimal code, though ("The original Notch code (pre 1.3) was allocating about 10-20 MB/sec which was much more easy to control and optimize.").

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...

Re:Programming is terrible – Lessons learned from a life was... by encoderer on Monday March 16, 2015 @07:58PM (#9215374)
I have to second what amagumori wrote.

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.

Re:Programming is terrible – Lessons learned from a life was... by platz on Sunday March 15, 2015 @11:17PM (#9209614)
They sure picked some weak examples to pick on in that thread.