<story><title>Notch, WebGL, Dart, and ramping up quickly</title><url>http://blog.tojicode.com/2013/12/notch-webgl-dart-and-ramping-up-quickly.html</url></story><parent_chain><item><author>ddevault</author><text>I&amp;#x27;ve also spent time examining Notch&amp;#x27;s coding habits.&lt;p&gt;He is a terrible, terrible coder. Minecraft was (and still is) an unoptimized, poorly designed piece of crap when he handed it off to the rest of Mojang. The DCPU-16 he designed had many flaws and his assembler for it threw out assembly convention. He makes very basic mistakes very frequently and his core designs are flawed.&lt;p&gt;I say this as someone who has spent a considerable amount of my life [1][2][3] figuring out this terrible crap and working around it. Notch is a very bad programmer, and people only revere him because he made Minecraft.&lt;p&gt;To reply to you all at once: regardless of his ability to create or ship a game, which is not in question, his ability to &lt;i&gt;write good code&lt;/i&gt; should not be idolized. His failures have tangible reprecussions that have long plagued the Minecraft hacking community and Mojang itself.&lt;p&gt;[1] &lt;a href=&quot;https://github.com/SirCmpwn/Craft.Net&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;SirCmpwn&amp;#x2F;Craft.Net&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https://github.com/SirCmpwn/Tomato&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;SirCmpwn&amp;#x2F;Tomato&lt;/a&gt;&lt;p&gt;[3] &lt;a href=&quot;https://github.com/SirCmpwn/organic&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;SirCmpwn&amp;#x2F;organic&lt;/a&gt;</text></item><item><author>kleiba</author><text>&lt;i&gt;Now, I haven&amp;#x27;t seen one line of Notch&amp;#x27;s code. I have no idea if it&amp;#x27;s well structured or spaghetti. I would make an educated guess and say that there&amp;#x27;s a lot of the basics in this project that have been ported over from the Minecraft or 0x10c code.&lt;/i&gt;&lt;p&gt;This last point is rather unlikely I think. I spent more than one or two weeks worth of time watching the various screencasts you can find on twitch.tv of Notch coding (I find it highly relaxing).&lt;p&gt;He usually writes everything from scratch. He doesn&amp;#x27;t copy &amp;amp; paste from other projects because he&amp;#x27;s experienced enough to pretty much to just write down the code he wants. He also hardly ever looks up documentation (besides using autocomplete for library methods). Also, he practically doesn&amp;#x27;t write any code comments in these toy projects.&lt;p&gt;He&amp;#x27;s extremely productive in my opinion, and can easily spend hours at a time coding. He does a lot of play testing and small gameplay fixes, even at early stages.&lt;p&gt;I&amp;#x27;ve learned a whole lot just watching these videos. For instance that we don&amp;#x27;t have the same taste in music :-) But thank god for twitch.tv.</text></item></parent_chain><comment><author>willismichael</author><text>&amp;gt; He is a terrible, terrible coder.&lt;p&gt;I&amp;#x27;ve had an idea brewing in my head for quite some time, and while I still don&amp;#x27;t quite have the words to express it completely, it more or less boils down to this:&lt;p&gt;There isn&amp;#x27;t necessarily a correlation between being a good programmer and shipping a successful product.&lt;p&gt;Now of course we can argue over the definition of &amp;quot;good programmer&amp;quot; and &amp;quot;successful product&amp;quot;.&lt;p&gt;I started as a hobby programmer in my childhood and teens, then went to college, and since then have written code for various companies.  For several of the earlier years (including college), I had this wide-eyed fantasy of the brilliant, beautiful code that I would work on once I became a &amp;quot;Real Programmer&amp;quot; (whatever that means).&lt;p&gt;My hopes and ambitions shattered once I got into the workplace and discovered some of the slop that I had to maintain.  Then for a few years I was on a crusade to banish all ugly code from whatever project I happened to be working on at the time.&lt;p&gt;Lately I&amp;#x27;ve realized that having pristine, elegant code is NOT the goal.  The goal is to ship software that people actually use.  I don&amp;#x27;t really know much about the internals of minecraft, but I &lt;i&gt;do&lt;/i&gt; know that nearly half of the teenagers in my neighbourhood spend hours and hours playing minecraft.&lt;p&gt;I have to admit that I&amp;#x27;m still an idealist at heart, and of course the best situation would be to have a project that is both externally successful &lt;i&gt;and&lt;/i&gt; well-designed (making it simple to fix bugs and add new features and such), but I&amp;#x27;m constantly having to remind myself to stop trying to get everything perfect and just write code.</text></comment>
<story><title>Notch, WebGL, Dart, and ramping up quickly</title><url>http://blog.tojicode.com/2013/12/notch-webgl-dart-and-ramping-up-quickly.html</url></story><parent_chain><item><author>ddevault</author><text>I&amp;#x27;ve also spent time examining Notch&amp;#x27;s coding habits.&lt;p&gt;He is a terrible, terrible coder. Minecraft was (and still is) an unoptimized, poorly designed piece of crap when he handed it off to the rest of Mojang. The DCPU-16 he designed had many flaws and his assembler for it threw out assembly convention. He makes very basic mistakes very frequently and his core designs are flawed.&lt;p&gt;I say this as someone who has spent a considerable amount of my life [1][2][3] figuring out this terrible crap and working around it. Notch is a very bad programmer, and people only revere him because he made Minecraft.&lt;p&gt;To reply to you all at once: regardless of his ability to create or ship a game, which is not in question, his ability to &lt;i&gt;write good code&lt;/i&gt; should not be idolized. His failures have tangible reprecussions that have long plagued the Minecraft hacking community and Mojang itself.&lt;p&gt;[1] &lt;a href=&quot;https://github.com/SirCmpwn/Craft.Net&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;SirCmpwn&amp;#x2F;Craft.Net&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https://github.com/SirCmpwn/Tomato&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;SirCmpwn&amp;#x2F;Tomato&lt;/a&gt;&lt;p&gt;[3] &lt;a href=&quot;https://github.com/SirCmpwn/organic&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;SirCmpwn&amp;#x2F;organic&lt;/a&gt;</text></item><item><author>kleiba</author><text>&lt;i&gt;Now, I haven&amp;#x27;t seen one line of Notch&amp;#x27;s code. I have no idea if it&amp;#x27;s well structured or spaghetti. I would make an educated guess and say that there&amp;#x27;s a lot of the basics in this project that have been ported over from the Minecraft or 0x10c code.&lt;/i&gt;&lt;p&gt;This last point is rather unlikely I think. I spent more than one or two weeks worth of time watching the various screencasts you can find on twitch.tv of Notch coding (I find it highly relaxing).&lt;p&gt;He usually writes everything from scratch. He doesn&amp;#x27;t copy &amp;amp; paste from other projects because he&amp;#x27;s experienced enough to pretty much to just write down the code he wants. He also hardly ever looks up documentation (besides using autocomplete for library methods). Also, he practically doesn&amp;#x27;t write any code comments in these toy projects.&lt;p&gt;He&amp;#x27;s extremely productive in my opinion, and can easily spend hours at a time coding. He does a lot of play testing and small gameplay fixes, even at early stages.&lt;p&gt;I&amp;#x27;ve learned a whole lot just watching these videos. For instance that we don&amp;#x27;t have the same taste in music :-) But thank god for twitch.tv.</text></item></parent_chain><comment><author>derefr</author><text>I might say that Notch is the &lt;i&gt;best&lt;/i&gt; kind of coder, for what his goals are. Notch is, really, a game designer. The goal of a game designer is to iterate a set of rules and mechanics until something &lt;i&gt;fun&lt;/i&gt; is tracked down (&amp;quot;fun&amp;quot; is sort of the &amp;quot;product-market fit&amp;quot; of game development.) in the process, they may create &lt;i&gt;prototypes&lt;/i&gt; that allow them, or others, to &lt;i&gt;play-test&lt;/i&gt; the rules&amp;#x2F;mechanics, but that prototype is not the output product of the game-designer&amp;#x27;s work, the ruleset &lt;i&gt;itself&lt;/i&gt; is.&lt;p&gt;Now, frequently, a game-designer may also be a &lt;i&gt;game-developer&lt;/i&gt; (someone who takes a ruleset that&amp;#x27;s already known to be fun, and builds a solid &lt;i&gt;game engine&lt;/i&gt; to enshrine its behaviors), and a &lt;i&gt;game UX designer&lt;/i&gt; besides. But this doesn&amp;#x27;t have to be the case. Miyamoto doesn&amp;#x27;t code or do UX. Will Wright doesn&amp;#x27;t code or do UX. And Notch &lt;i&gt;should&lt;/i&gt; be in roughly the same category.&lt;p&gt;Obviously, there might be some dysfunction at Mojang that results in prototypes getting shipped instead of &lt;i&gt;developed&lt;/i&gt;—but that&amp;#x27;s a separate issue.</text></comment>