7 ms·
RAM? maybe for Visual Studio/Xcode/Android dev. But for any nodejs/ruby/php development, a 10 year old machine with 1GB RAM is perfect.
by antoineMoPa 8y ago
RAM? maybe for Visual Studio/Xcode/Android dev. But for any nodejs/ruby/php development, a 10 year old machine with 1GB RAM is perfect.
- matthewmacleod 8y agoBut for any nodejs/ruby/php development, a 10 year old machine with 1GB RAM is perfect. I don't think I'd enjoy the experience of developing on that machine!
- amiga-workbench 8y agoA lot of shops have large and swollen Linux VM's to run your database, web server and interpreter in for consistency with the production environment. If I wasn't running on a Mac at work I could comfortably use containers without the overhead of another VM.
- fiddlerwoaroof 8y agoThe new docker that uses the Mac’s builtin hypervisor works pretty well
- amiga-workbench 8y agoI didn't know about that, I'll give it a look over.
- beatgammit 8y agoYou could always install Linux. I personally would hate running a VM regularly for my job. It just adds complexity without much benefit.
- amiga-workbench 8y agoIt gets worse than that, I'm still on spinning rust, although I do have 21gig of RAM so I can keep my VM's running. Looking forward to putting an inexpensive linux workstation together when this Mac eventually bites the dust.
- 00deadbeef 8y agoThe benefit is the VM can precisely match production, and every project you work on can have a different VM with a different set of software.
- wlesieutre 8y agoAnd people who only close browser tabs every six months
- simias 8y agoAs long as you don't have to run a bloated electron app or anything similar at least... I have a relatively minimalist Linux environment by today's standards (I use Emacs, Firefox with about 10 tabs, the Signal client, a few terminals and a lightweight WM) and I already use 1.5GB of RAM at the moment. Firefox alone uses 408M of RES, the Signal app almost as much (!) while my Emacs with dozens of buffers uses "only" 130MB. How times change. The rest is used by all sorts of system processes and minor daemons. So basically I'd be fine with 1GB if it wasn't for the bloat that's modern web-based development. These days I'd say that 4GB is a more reasonable baseline.
- dijit 8y agoThere are two things that cannot be true at the same time. "Ram is cheap" and: "The maximum ram you can get is 8-16G" Developers who are making electron applications (not that electron is the primary cause, it's just a correlation I see often) constantly consider that "ram is cheap" for their users and thus do not pay attention to memory consumption like they should. This means that you're right in a way; vim is good enough for most people and a decent terminal emulator is going to cost you much less than 100mb of ram. However; slack is consuming 2GiB on my machine, Skype for business is using 500MiB, Outlook @ 600MiB. I use safari and not chrome (safari is @800MiB with too many tabs open) but if I were using chrome I could be using many multiples of gigabytes. If everyone thinks their program is worth 1GiB of ram or more then your machines become very limited in what can be backgrounded. You might as-well run Android/iOS if you're running with 1G of ram with todays application/web ecosystem. The thing is; I am quite conservative with memory usage and I'm still quite sure I wouldn't be able to work on anything with 8GiB or less. ( I mean, I just checked and I'm using 15G of memory: https://i.imgur.com/xd6eB91.png https://i.imgur.com/xd6eB91.png )
- carlmr 8y agoElectron is kind of the cause. You can program lean in Electron (see VSCode), but realistically the people that program JavaScript/TypeScript are usually not your CS pros. It's a language that everyone can get into easily, attracting very subpar developers as a result. So it's not Electron, but it's what Electron enables.
- sascha_sl 8y agoSure, there's a very low barrier to entry, but node has a big hurtle in the middle. You can relate if you ever had to setup a JS taskrunner/webpack from scratch. If you don't do it regularly, expect to spend 2-3 hours going through documentation and lots of outdated StackOverflow posts. JS is easy as long as you stay within the constraints of whatever scaffolding you're using, if you need anything outside of that or need to upgrade your stack you need to know a lot of little things. "Best practices" move fast in JS, and projects die fast too.
- beatgammit 8y agoEh, 1G is pretty limited. I'd want at least 4G. Yes, 1G is workable (I could do most webdev on a Raspberry Pi), but a desktop environment and a browser running one tab uses half of that, and each tab would increase that usage. The 4G isn't for building or running code, it's for tons of browser tabs open with documentation. I routinely have >10 tabs open, and that's quite likely to cause swapping on 1G RAM. Sure, I could slim everything down by running a tiling window manager instead of a desktop environment or configuring my browser to unload older tabs (or close and reopen with bookmarks), but that takes extra time, and if time is money, that money is better spent on a few extra gigs of RAM.
- c22 8y agoAs a counterpoint I currently have over 130 tabs open and my machine isn't breaking a sweat. The secret is leaving Javascript disabled by default and selectively enabling it on a per-tab basis only when needed. This strategy works great if the main thing you're looking at is documentation.
- hinkley 8y agoSo you’re not doing anything with Docker or ML, or a compiled language, and you have no unit tests?
- muro 8y agoI haven't done web development lately. Why do unit tests mean higher requirements on the hardware?
- HumanDrivenDev 8y agoAt a guess - the various popular test runners are slow and bloaty.
- hinkley 8y agoDepending who you talk to, there are behavioral breakpoints at one, three, and seven minutes. If you have a few thousand tests at a couple milliseconds apiece (really really easy to do even in a midsized project) you’re getting above that 1 minute range. Shaving 40% off with a faster computer stops people from task switching while testing. Task switching pretty much doubles your test cycle because you never switch back at the precise moment the tests are done (we are developers. We always underestimate everything by a factor of 2).
- cpburns2009 8y agoCan Chrome or Firefox run on less than 1 GB of RAM nowadays?
- jamesgeck0 8y agoFor a small app on a box running Linux, _maybe_. Any other case? That hasn't been true for years. The large Rails app I work on can eat up 500mb RAM easily. The webpack dev server I'm running to compile the Angular frontend for said Rails app is taking another 500mb. Visual Studio Code (easily the best TypeScript editor) is using over a gig of RAM all by itself.
- 00deadbeef 8y agolol, I'm sorry but no a 1GB machine will not cut it even for a hobby, never mind in a real business environment. A good IDE like PhpStorm is going to use 1-2GB. A browser will consume 1GB+. Want multiple browsers for testing? Add another few gigs. Most devs now use a VM or container with PHP, MySQL, etc running inside it. Add at least 1GB, maybe 2GB. You probably need Slack or HipChat running. 0.5GB to 1GB. A mail client. 256MB+. Your company probably has Office 365, so you'll need Outlook. 1GB+.
- azangru 8y ago> 10 year old machine with 1GB RAM is perfect No, a machine with 1GB RAM is not perfect. If you are a frontend developer coding in node. And if you are not, you might need a browser for Stack Overflow; and you might need Docker or vagrant for virtualization. And, you may also want an Electron-based editor, such as Atom or VS Code. Even 4GB is hardly ideal. 8GB is probably where it starts getting comfortable.
- mythrwy 8y agoI propose we give every front end dev at _most_ 4GB RAM for awhile and see if web bloat stops inflating.
- azangru 8y agoThere are far better ways to address this particular problem. Introduce web performance budgets in frontend projects; test frontend projects on specific target devices on which you need them to perform well; perhaps create dedicated web performance teams that will work on the tooling and testing for better performance. Development machine does not need to have the constraints of a testing machine; it's counterproductive. In any case, "web bloat" is relative to the target users and target devices. It's one thing to target cheap Android phones in India; it's quite another to target laptops of a SF-based startup. In the second case, web bloat is negligible.
- Wowfunhappy 8y ago> In any case, "web bloat" is relative to the target users and target devices. What about, relative to how many resources should be required for whatever tasks the software needs to perform? Just because I have a lot of ram doesn't mean I want Slack to use it all. I'd rather give that space to the OS for file caching and such.
- eeZah7Ux 8y agoYes please! Very few companies do this type of dogfooding.
- wink 8y agoAlso not strictly true - this is enough for some version of PHP development. The last PHP app I was developing was running in the same mode as the whole company's infrastructure was developed and running - one puppetized Vagrant VM for the code and one for mysql, and sometimes a few more for other services. Sure, even if you just want to abstract the stuff away from your host machine you could reconfigure stuff to run on one VM - but that's again diverging from production. And in the grand scheme of things we were working on several different vm types a lot more than only on this PHP app...
- asark 8y agoThe actual act of writing code, maybe, but: 1) 4GB—let alone 1GB—is already cramped with just Slack and any one of your usual bloated shitware issue trackers/wanky PM toyboxes (Jira, Asana) open in a tab or two, plus the usual few tabs of DDG/Google, Stack Overflow, some docs, et c. That's before any actual code-writing tools enter the picture. The basic suite of tools to just be working at all in almost any role is just barely not-painful to use on 4GB. Worst case you're in an agency and have all your tools, plus several duplicates for the same purpose for a client or three, and so on, all open. Yes, it's because all these tools are terrible and eat like 20x the RAM they have any right to and even that's generous, but I still have to use them. 2) Better hope you don't need any design tools at all. (Sketch, say) if you're trying to get by on 4GB or less for everything, unless you like only having one thing open at a time or dealing with UI sluggishness I guess. 3) Docker(-compose) or minikube or whatever? Service dependencies, local mock services? Running test suites? Without a strong CPU and 16GB you'll see slowdown. 4) A fan of any of the fancier webmail clients, like recent GMails or Inbox or Outlook or whatever? I'm not and just keep the Basic HTML version of Gmail open because its full-page loads are faster than the "speedy" AJAX garbage on those, but if you are into that sort of thing take a look at their memory use some time. FWIW I think almost all the tools surrounding and supporting development these days are god-awful resource hogs that somehow still manage not to be very good and think 1GB absolutely should be enough memory to get by doing node/ruby/php dev, but I still have to work with that junk, and 8GB's the bare minimum to do that without hitting swap constantly, IME, and even with that you've gotta be careful. 16GB's much more comfortable, especially if you sometimes have to do things other that just Web dev.
- antoineMoPa 8y agoI have 8GB here, under Debian. I can easily run docker (with a rails server), firefox (discord, slack, facebook, youtube, online radio + outlook webmail, all at the same time), with many Emacs windows. I think I could manage to have less RAM (I frequently code on my chromebook with 2GB RAM). My theory is that the ram expands to the amount available https://en.wikipedia.org/wiki/Parkinson%27s_law https://en.wikipedia.org/wiki/Parkinson%27s_law
- 8y ago
- nileshk 8y agoI found out last year that 1GB RAM is not enough for TypeScript development (whose compiler runs on nodejs). I was building a fairly small TypeScript project on a Linux instance with 1GB and no GUI and no other processes hogging RAM. I was consistently having builds fail with errors about half of the time. Finally figured out that it was running out of RAM and if I turned off source map generation the errors went away. I didn't really need source maps in this case, as I was not developing on this machine, but it certainly would be a problem if I was trying to do development. Sure, there is a lot of development that can still be done with 1GB RAM, but you're going to run into limitations and it is far from "perfect"
- winrid 8y agoNope. The project can still have crazy dependencies that need compiled (thrift etc). Every morning every Dev in our shop no matter the project is going to run "mvn clean compile -U" Sure you can split the large projects up. Just get some time from your PM.. next quarter.... :)