Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's interesting to see such a prominent and talented coder do his work on (what looks like) a totally stock Eclipse install. Not that there is anything wrong with it at all, but it puts into perspective all the time "wasted" by thousands of programmers (myself included) around the world tweaking their vimrc to perfection, obsessing over tiling vs traditional window managers, and in general worrying a great deal about the "optimal" workspace.

It's rather refreshing to see someone that just does his work with tools that are sufficient to do the job.

Come to think of it, I see this phenomena quite often at the university I attend. The "average" guys have regular flamewars on what language is best or whether vim or emacs or some IDE is the ultimate tool, MacBook Pro versus Thinkpad and so on, while the actual top guys keep churning out quality code in whatever language fits the task on whatever machine available at the time with whatever OS is on that machine.

This is obviously a great simplification and a single anecdote, but I think there is some truth to it. Masters of art obsess over the artwork itself, not the tools used to create it.



I see the same data and come to the opposite conclusion. People with 10x my brain power can deal with dumb tools, verbose languages, a malicious codebase, architecture astronauts. I'm too stupid to do what they do, so I try to pick my battles and live where it's simple.

I'm not arguing for obsessing over tools, or for flamewars. But perhaps the dumber you are the more you should pay attention to foundations.


Books on pool and billiards will teach you how to execute a proper billiards shot. Every one of them, from Willie Mosconi's book of the 1940s to the very latest, will tell you that you should stroke the cue forward and back along a straight path, as if it were running in a groove, avoiding swerves, which will be difficult to control. You should particularly avoid swerving your cue and hand during the final delivery and follow-through.

But there are a few rare and precious films of Willie Hoppe, possibly the greatest billiards player of all time, who won fifty-one world titles at a time when billiards was one of the most popular sports in America and was played in every U.S. city by every gentleman of taste. Check out Willie Hoppe's billiard stroke, starting at about 1:10 in this YouTube video:

http://www.youtube.com/watch?v=cQynRebhP1Y

From this evidence, it would appear that Willie Hoppe ruled the world of billiards with the worst stroke ever known to man. His cue literally skews through a ten-degree angle between the start of his delivery and the end, and his hand twists too. Wikipedia sheds some light on this:

Hoppe's peculiar style of stroke was a result of his career as a child prodigy. He barely reached the table and had to stand on a box. In [his book] Hoppe emphatically advised players not to use his way of directing the cue.

The moral of this story is that grandmasters will take lousy tools and build amazing things, because they are grandmasters. We, on the other hand, are probably not grandmasters, may not want to invest tens of thousands of hours before we get some decent results, and will not actually be harmed if, at the start of our quest for grandmastery, we do ourselves a favor and get the best tools we can afford.

---

(Having said all that: I may not personally like Java or Eclipse, but I can't believe they rank as bad tools. Tens of thousands of people are productive in them, many voluntarily. And consider that people used to write great games for the Atari 2600, for god's sake; Java on modern hardware is a dream come true by comparison.)


Wow, that was an obscure and surprisingly entertaining analogy. How'd you learn of that?


The best part of a good grad school is that, when it comes time to procrastinate, you'll have a card to a very good library.

Billiards is actually easy to learn about: Pick up any book by Robert Byrne (the canonical one is Byrne's Standard Book of Pool and Billiards; it can be found all over the place) and he'll be telling you all about it by the second half of the book; he can't help himself. Hoppe got name-dropped in there somewhere.

I should emphasize that my judgement of Hoppe's stroke quality is entirely my own (though it does jibe with the anonymous editors of Wikipedia) and is based on one or two videos like this one on YouTube. It is entirely possible that Hoppe was exaggerating his sloppy-looking stroke for the cameras; this was an exhibition after all.

(I can't actually play billiards, by the way, and I'm a bad pool player. You know how there are things which are more fun to read about than actually do? Billiards turns out to be like that for me: I'm not driven to practice. So many hobbies, so little time...)


There's also maybe a similar point to be made about him using Java to code his games.

Java gets a lot of bashing these days, and there's so many "hot" languages to mention during those bashing sessions. But in the end, the guy creates games people have a strong desire to play. And then he uses the technologies he's comfortable with to get whatever job done.


I heard that, once asked about which guitar model was his favourite, Keith Richards said "give me five minutes and I'll make 'em all sound the same." [1]

[1] Couldn't verify that he was saying this in answer to the question, but here's an attributed citation of the same quote: https://en.wikipedia.org/w/index.php?title=Keith_Richards...


The same theory applies for pro PC gamers, an unusually high amount use $10 microsoft optical mice. Then there's the majority of casual players arguing over the details of the latest $90+ mice with bells and whistles.


microsoft-branded optical mice tend to be of very high quality; besides my (steel) keyboard, it is the only peripheral that I have used for more than 10 years.


I use a $60 logitech mouse for everyday use. I love the sensitivity (5000 dpi laser mouse) and find it awkward do use other peoples mice. Of course, I'm no pro gamer, so your statement is probably backed up by this.


I used to play WoW at a relatively high level (no server firsts or anything, but end game raiding). I didn't always have the "best" UI add-ons installed and did some things that were considered beginner mistakes (keyboard turning), but I knew what I was doing and I knew the game well so I still performed well.

I actually had a good reason for keyboard turning, for those familiar with the game. I was a healer and used Healbot to let me click on player names to cast healing spells. Thus, I preferred to have my mouse free for this and used the keyboard for turning, which was minimal.


>>Masters of art obsess over the artwork itself, not the tools used to create it.

Gets said in photography debates all the time.

Great talent can max out available tools, though, and it can be a limitation. That usually inspires creativity, in the case of photography.


And with Eclipse having something like "hot code reloading", the style of coding is pretty much the same as one folk programming Lisp with Emacs+Slime (edits and sees results immediately).


I'm a card-carrying Java-hater (haha only serious) and Lisper, I was pretty damn impressed by this the last time I watched Notch working on a LD thing. I looked it up this time and found out that Eclipse calls it "hot code replacement"

http://wiki.eclipse.org/FAQ_What_is_hot_code_replace%3F

There are some limitations (can only change the body of an existing method) so it's not quite as dynamic as Lisp + Emacs + SLIME, but it's still pretty cool. I wish Dalvik supported it somehow because from what I can tell, you can't do this with code running on an Android emulator.


You can absolutely modify the body of not only an existing method but the very method you are currently breakpointed in. When you do that, Eclipse drops the frame, which means it restarts the method from scratch.

Invaluable for debugging.


There is also JRebel, which goes beyond hot code replacement:

http://zeroturnaround.com/jrebel/

Works with pretty much anything JVM.


The DCEVM is a patched version of JDK 7 that allows the code reloading mechanism in the JVM to swap nearly arbitrary changes. I'd highly recommend it if you're trying to do any dynamic reloading of Java code during development. http://java.net/projects/dcevm


I learned programming with Eclipse default settings and Java, on a PC with a classic AZERTY straight keyboard with 105 keys layed out in the classic way. At some point there's not debate, yeah Java is crap, yeah Eclipse is laggy, etc, but my hands, brain and code work completely in concert when all those are united and there's no question that I can get anything done much, much faster with these. I actually gave up on using a macbook after a year and a half of constant practice because it still felt far too tiring to build my android apps compared to the PC, even though it was still Java and Eclipse.

It would be the equivalent of speaking your mother language (or native tongue or first language, whatever you english-speaking people call it :P) vs speaking a language with which you're "only" fluent when you just have to express a point very fast.

I'm not saying Notch is in the same situation (or anyone else actually), just that there are reasons, beyond being able to get things done using just the available tools, to use a setup that is often seen as suboptimal.


Doesn't look laggy on his PC though...


I use vanilla Eclipse on a 3 year old Dell Studio laptop (2.53Ghz C2D, 4GB RAM, 2x320GB 7200RPM HDD, AMD Mobility Radeon 3650 HD, Windows 7 Ultimate SP1 x64) and it runs perfectly smooth. Just as smooth as in Notch's video. I have no idea what people load their computers with to make them run so poorly :-/


Eclipse being laggy has a lot to do with what extensions and editors you install. If you know how to configure your setup correctly (ie. not install a huge all-in-one package with tons of crap you will never need, compare different extensions that are similar in functionality and choose for performance), it will be smooth. For me, coding in PHP is a good example - I tried a handful of editors and settled on the dinosaur PHPeclipse instead of some flashy PDT. It has better highlighting (to me, at least - probably only because it's the kind of highlighting I'm used to) and runs fast as a cheetah (I have a shameful couple of files that rank in the 20k+ lines and PDT would stutter on those... when I was moving the cursor). The final issue most people cite is startup time and so far, the only remedy I have found for that is keeping your workspace folder tidy and using an SSD.


To be honest I don't know either. Eclipse has always runned fine until the rare day when some plugin goes overboard and destroys all hope.

Last year for instance I've had bad issues with autocompletion on some huge classes (GLES20 I'm looking at you), but 1) that was when I was struggling on the macbook already, and 2) Someone fixed the problem somehow while I was busy downgrading to a stable version.

Eclipse kicks ass. I only said it was laggy out of mercy for the people who can't get productive with it.


Used to do the same thing with my electric guitar. I kept buying new pedals thinking that I would sound great once I found the perfect combo. Never made me a better player though.


It's like cooking: you want simple, quality ingredients.

You can't beat a good guitar connected directly to a good amp.


I'm not intending to troll you :) I swear. But actually your comment might miss the point of the OP. Give Jimi Hendrix or Slash the worst guitar and the worst amp and he'll make much better music than 99.99% of the population. Same with cooking. Have you watched Top Chefs do the gas station challenge? They can take the shittiest ingredients and run circles around most chefs who have unlimited budgets to spend on organic, fresh, whatevers.


Eclipse:Java::Textmate:Rails




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: