Live data from Hacker News

Notch, WebGL, Dart, and ramping up quickly

blog.tojicode.com

161–170 of 204 posts

Re: Notch, WebGL, Dart, and ramping up quickly

#161

Earlier quoted context omitted.

Notch is a very bad programmer I despise this sort of single-dimension haughty evaluation of programming "goodness": It is garbage, and is the dismissive grenades that a particular type of maintenance programmer tosses to feel better about themselves as they try to feed the family with sloppy seconds. I single out maintenance programmers because there is a stark difference between creating something out of nothing, a…

Very well said. Nothing -> something that works (in any way possible, spaghetti code, written quickly) -> something that works (clean refactored code that can be maintained/improved/changed). You can't skip step 2. If you do, you will likely spend more time overall.

If you can skip step two without spending an unjustifiable more amount of time, you're best. Possible? Not for everyone. A great goal? Sure thing.

Re: Notch, WebGL, Dart, and ramping up quickly

#162
post #40

Earlier quoted context omitted.

So, uhm... how many blockbuster games have you shipped, just out of curiosity? Not an ad hominem attack. Just, curious, because someone with such confident opinions as yours about notch's abilities must surely have shipped a few.

99% of game and webdevs are like this. He's your tech co founder when you want to flip fast. Not your first engineer hire. everyone wants another Carmack, but while productive, he is not (yet?) anyway, i haven't shipped any blockbuster game (it is not even my job to do so) so i will see myself out now.

I started this way. I could iterate on new game prototypes quickly because I made many games then threw them away.

Might be worth noting his game plays and looks like minecraft.

After getting burned by my own design decisions, which each game I made I produced stronger abstractions and decoupled code. Aka learning from mistakes.

Devs who only write protoslop or devs who only maintain and clean code up are rarely effective on their own.

Re: Notch, WebGL, Dart, and ramping up quickly

#163
post #71

Earlier quoted context omitted.

You don't seem to understand or have experience with how game code is written. It's not written to be "modified". It's not written with a specific modular outcome in mind. It's more often than not a one-off messy code that gets the job done, because that's the requirements and the pace of the industry. And, especially for something like Minecraft, it has to be original and even explore the problem space and ideas in…

I guess it's a balance between over and under-engineering. The thing is, more often that not the person coming along to do 'external modifications' to that code is actually you, a few months after you wrote it. You can adopt some good coding practices that ensure that the code isn't a spaghetti mess that's hard to understand when you come back and look at it. That's different than designing a system to be pluggable f…

As you build and explore, you find patterns, see repetitive code, or get frustrated at the hassle it takes to add a new feature.

This is when you refactor. It's that moment of realization when coding and you say to yourself "ah, if I had a compositional object model instead of a god object inheritance nightmare I could introduce new objects so much faster and without destroying the interface of CEntity."

You quickly also realize this means re-writing your inheritance tree, decomposing all of your object classes and reconstructing each one as a bundle of components like renderable, effects, behavior, physical (position), that communicate and interact through messages.

You finally have the flexible buildable adaptable object system to meet your building and maintenance needs. But you had to rewrite 30 classes to get there.

My take is badasses in that moment take the 20 hours and do it right. Many like Notch simply didn't bother. Everyone pays for it later.

"But it's not necessary" they say. What's necessary about being great? Nothing, but being great is Awesome. That said, one would need that attitude to bite into 20 hours of extra unnecessary work with a smile. But it's the starting recipe for a great programmer.

Re: Notch, WebGL, Dart, and ramping up quickly

#164

Earlier quoted context omitted.

There are lots of problems with it. Here are a couple: He uses poor OpenGL practices, and sees poor performance as a result. He also designed the entire product in a way that makes it cumbersome to mod, without a consistent interface or a logical way for mods to work together. Modding Minecraft as a whole is one big hack. I'm more familiar with the networking side of things. The Minecraft networking protocol is a mes…

These all seem like issues that are obvious in hindsight but may not have been obvious at the time. It's much easier to look at an existing, established codebase and point out all the flaws that it is to anticipate all the future challenges. In other words, you're monday-morning quarterbacking. Maybe Notch didn't start building it with the idea that anyone would want to mod it. Heck, maybe he didn't even anticipate t…

Definitely the case. The great programmer, the moment they realize that modding is the future, make their next release to get the modding interface done right. They don't decide "eh, I'll just add a bunch of items I've been thinking about instead."

Re: Notch, WebGL, Dart, and ramping up quickly

#165
post #61

Earlier quoted context omitted.

I've also spent time examining Notch's coding habits. 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. I say this as someone who has spent a c…

What kind of a person even idolizes someone for writing great code? Steve Jobs couldn't code at all. Facebook was written in PHP. GroupOn started on WordPress. According to this Slashdot article, Sergey and Larry aren't great programmers. http://tech-beta.slashdot.org/story/13/11/01/1324209/larry-p... The Instagram founders didn't have a programming background: http://thenextweb.com/2012/04/10/instagrams-ceo-had-no-f…

Contrary to what that article is saying, the Instagram founders did have a programming background. I was at a talk given by Kevin Systrom - he said something about having gotten a B in a programming class at Stanford, so he had at least an intro-level knowledge of coding (which is honestly a better start than something like Codecademy).

Mike Krieger got a degree in Symbolic Systems, which requires quite a few CS courses.

Re: Notch, WebGL, Dart, and ramping up quickly

#166

Earlier quoted context omitted.

No, he really is terrible. I'm dead serious. I am responsible for working with his crap all the time, and I probably know more about the technical workings of Minecraft than even he does. Notch writes terrible code.

Can you give a couple of concrete examples of why he's so terrible? Or at least the areas in which he is not strong. Because it's clear to me that Minecraft was a fun and stable experience from the end users perspective, at least when I bought it (which was probably a good 18 months after the initial launch).

I'll put this out there that I'm more in the "I'm a maintainer" group, so my lens when looking at code is very much in the "how can I maintain this" sense.

There were a few articles written up about a year ago [1] from interviews with Notch. He does stuff like direct variable access instead of using setters/getters because it "gets in the way" which when it comes to encapsulation and separation of concern, etc. it throws off some red flags.

I've looked at some of his (at least I believe they were his) projects when attempting to learn a game library (libGDX) and was kinda grossed out by the code. You can say that it's because it was from a Ludum Dare perhaps, but you have to think that he kinda does this all the time. So what would be different from his production stuff.

Pretty much don't look at him as a programming idol, he's simply too cowboy for that. That's fine, cowboys have built tons of stuff, but if you are trying to learn something you may want to avoid their stuff cause it's probably running against the grain in a bad way.

[1] The Article -- http://notch.tumblr.com/post/15782716917/coding-skill-and-th...

Re: Notch, WebGL, Dart, and ramping up quickly

#167
post #54

Earlier quoted context omitted.

I've also spent time examining Notch's coding habits. 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. I say this as someone who has spent a c…

>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. Notch is inspiring to me the way people like Carmack are not, because I know I'll never be a Carmack -- he's operating on an entirely different level than me. But Notch w…

Speaking as a harmonica player, this is a bit like the difference between listening to Toots Thielemans and Stevie Wonder.

When I listen to Toots, I'm thinking, "This is amazing, and wonderful! Aw man, I could never do anything like that."

When I listen to Stevie, I'm thinking, "This is amazing, and wonderful! Wait a minute... It's not that complicated. Maybe I'll never have the soul Stevie does, but if I can't do exactly that, maybe I could do something like that!"

Re: Notch, WebGL, Dart, and ramping up quickly

#168

Now I feel bad for slowing up my current pet project by getting bogged down writing polygon collision detection when axis aligned bounding boxes would have done for prototyping. (I'm not as quick as Notch!)

Well, this can actually have a pretty significant effect on the feel of the game so depending on what kind of game you were prototyping, it might be worth it (though, your better off hardcoding a few cases of SAT than trying to get it working completely generally in a prototype).

Re: Notch, WebGL, Dart, and ramping up quickly

#170
"Just saw a nerd flamewar debating if I'm a bad programmer. I'm self-taught, prefer working along, and program for fun. Don't learn from me."

https://twitter.com/notch/status/408011329237049344

Gotta feel sorry for him, he didnt ask to be or not to be an idol, must be disconcerting to have a bunch of random strangers talking about how good you are.

Post reply on HN