Hacker News new | ask | show | jobs
by latch 5349 days ago
This is a good contrast to this recent front-page HN story: http://news.ycombinator.com/item?id=3075145

"If you're a developer, you need to spend money on a great computer, an awesome monitor, a fantastic chair and a good bed"

Personally, I think Zed's approach is far more responsible/sane. If you "need to spend money on a great computer", you are either doing something very different than me, or very wrong.

4 comments

If you are working on software that will run on customers' machines tomorrow, it makes sense to do at least a good chunk of development on very average hardware. These days, most client development is web stuff, so you don't often have the excuse of compile times.

But if you're working on software that's supposed to run well on high-spec machines and servers, or targeting machines a few years in the future, then you're better off with a higher spec machine; one with lots of RAM and CPU cores, so you can play around with the various tradeoffs of time vs memory vs parallelism. Or if you have a big source tree - the one I have is perhaps 10GB in size, and takes about 14 minutes to build today - then it makes lots of sense to reduce turnaround time by throwing hardware at it.

For example, I work on a compiler that is used by the build tree. I can't really be sure the compiler is "good" unless it builds the whole tree, and the tree's tests run; if I checked it in as is, the integration server could find the problem, and then I'd be in everybody's bad books. Reducing the build time by 5 minutes, iterated over perhaps 5 or 10 builds in a day, and it starts adding up to non-trivial productivity advantages.

Maybe I'm being a closed-minded idiot, but "i write compilers for a living" isn't something a lot of programmers can claim. I guess I'm working on the assumption that most programmers are building enterprise apps. I don't know why I think that.
I'm working on backend systems for a small startup, and I am writing software that on my work laptop (MacBook Pro, Core 2 Duo at 2.4 Ghz, with 4 GB of ram) takes about 30 seconds to compile. Tests take another minute or so to run. That is 1 minute and 30 seconds too long because my attention is now elsewhere ...
It's certainly possible to develop with less than top quality tools, but when a developer costs $100k-$200k/yr (loaded cost), spending $10-20k on tools vs. $0-2k is pretty reasonable, if it either provides a bump in performance (and I believe it does), or just makes the developer happier.

If you go on-site with clients, it's pretty sketchy to have a taped together Gateway 2000 vs. a MacBook Pro/Air, too.

I'd be concerned if I took my car to a mechanic who was using chinese crap tools, or went to a doctor with duct tape holding every piece of equipment together.

Probably one of the better things to spend money on is having entire spare hardware lying around in case someone's laptop is stolen or fails.

Shouldn't it be worth it to decrease friction in something you are spending 8-10 hours a day on? Personally I can't stand when I run into the physical/computational limitations of a system I'm on. I also can't stand it when someone on my team complains about this.

A nice computer, a good amount of RAM, good input devices, a good chair and a desk are paltry compared to what you should be paying a great engineer or designer.

Tools don't make the talent, but they sure do make the extraction of talent into product/technology much easier all around.

Like I said in another comment, in my opinion, a 2006 (intro of a intel's c2d) computer with 8gigs of ram + an SSD was pretty much the last time your average programmer saw any appreciable gains on the desktop.

Things _have_ moved forward since then, especially if your are multi-thread/core sensitive. For everyone else, even at 8-10hours a day, I'm not sure it'd be considered a great investment for such incremental improvements.

Unfortunately in some (most ?) big enterprise we are still stuck with Windows XP (so 3.5gigs of RAM) and shitty hard drive that are further killed by the antivirus :(
RAM and i/o will certainly make the biggest difference for the average person or engineer. That and HID's and your display.

My computer before this one at its core was not the latest/greatest Mac Pro, but I had upgraded parts (RAM, video, HD) which made the biggest difference.

Well I have an awesome bed, so I agree with the article there. I use a piano bench for my chair though. Keeps me from sitting there too long. I have a lot of computers since I use them actively for different tasks, so I do agree as a professional you have to spend money on good tools. And I also agree having a dual monitor setup is the way to go. I do laptop+monitor for most of my work.

I think the difference though, is I don't immediately go out and buy everything Apple shits onto the market or the latest greatest PC possible when Intel drops a new CPU. I go and get the tool that fits what I need to do, and base the decision on which one will get things done.