Hacker News new | ask | show | jobs
by paulrpotts 3654 days ago
I'm having a hard time understanding the idea that a developer needs some kind of massive AV workhorse with 32 GB of RAM.

Do you mean animator, graphic artist, or video editor?

How much RAM does a compiler, debugger, IDE, and database need? If you are a web developer, are you running a clone of your whole server stack on your laptop, including databases?

I'm a developer, and what I want from a laptop is, mostly, a big clear screen and a port to connect another big, clear screen when I'm at my desk. Since my work products are largely text files, I don't even need a large hard drive. A fast CPU helps build large codebases but since I have incremental compilation in my C/C++ toolchain, it's not like these days I spend a large part of my time compiling.

Genuinely curious -- what kind of a developer needs more than 16 GB of RAM to make a machine viable for development?

I have a Mac Pro with four hard drives and a big screen too, but I use that for audio and video production where it is helpful.

4 comments

I am building a next generation database product. With debugging symbols enabled, the running database can easily take up 8GB in some of our unit tests. Then there is a web services layer written in Java above that. And then there is my IDE. And a web browser that leaks abysmally on Google Apps. And a bloated chat application for communicating with all my remote colleagues. At that point the OS starts spending a lot of time trying to compress pages.

I have also experimented with doing building and testing on a remote server, but the overhead of having to synchronize local changes to the remote server, rebuild, etc. tends to overwhelm the cost of debugging and iterating on individual tests.

Ah, thanks for the explanation. That makes sense.

For what I do, which these days is mostly embedded programming, I've gotten used to the fact that even a wimpy laptop's CPU and RAM far outstrip what I had on my desktop a few years ago. I was just looking at some e-mails I sent in 1993 where I was talking about building a compressed trie structure for a database to go on CD-ROM, on a Pentium machine, and how it kept running overnight and crashing. These days it could easily fit in RAM without hitting VM and I'm not sure it would even make the fans speed up. (Hmmm, I think I might have the old data set and source; I should give it a try!)

Once in a while I have to do something horrific, like build an embedded Linux kernel with customizations on a VM... and that is punishing, so I do try to run that on a desktop box with some Xeons...

Oh, I definitely recognize the absurdity of the amounts of memory modern software consumes. Twenty years ago I used Linux with 256MB RAM and had pretty much the same sorts of applications running.
I'm a C++ developer working in games dev, my machine has 64GB of ram and that's absolutely definitely not enough. I've got a 12-threaded Xeon and just compiling the whole project would take nearly 2 hours on a single PC, distributed it takes 20 minutes(and uses most of RAM). If I need to run my own game servers I'm running from swap constantly(the usage hovers around 90-110GB just for the server + client), we had SSDs installed specifically because of that - but I think IT is already putting together PCs just for programmers with 192 or 256GB of ram. But even working in Unity on a small project, 16GB is bare minimum.
Depends on how much of the operational environment you need to run on your machine and how you're partitioning that environment. It's not unreasonable to have 3 VMs running - data tier, web tier and client tier. That's just normal app development and you can easily chew through 16 GB.

If you get into the realm of developing big data analytics solutions, machine learning algorithms or VR applications, well, 32 GB is the practical starting point and 64 GB is sounding less insane. At this point though you'll start to be inhibited by Apple's relatively anemic GPU horsepower as well as the lack of RAM.

Like anything it all depends on what you're doing.

I work with a set of database, API and front end services for which I have a collection of VMs, each based in the same vagrant/puppet specs as the production hosts.

Spinning up a dev environment requires two Linux VMs and a Windows VM for the web service. Then the Visual Studio for C# development kills everything.

I would prefer to spend a bit of extra money for 32GB of RAM rather than a Windows laptop for the VS development.

I guess Apple doesn't care about developers like you with above-average requirements.

They have no incentive to provide more RAM when the average IOS mobile dev only needs an existing MBP or Air. As long as every new mobile app developer is still buying a macbook, why should they bother? Maybe when people start showing up to conferences with non-apple laptops they'll start to think about upgrading!