On a budget, and the 16gb option in my area (very remote) is more than double the price.
Does it have to be a laptop? If you just want something portable you can take from place A to place B and use with a monitor have a look at mini PCs. They're smaller than a laptop (about the same weight) so you can pop it in your bag easily to move around if that is your need.
The only real limitation is you can't sit down in a coffee shop to work. But if you have a couple fixed areas of work they are far more cost effective than a laptop and actually allow for upgrading (RAM and SSD anyway, more than you get on most laptops these days).
FWIW I picked one up for my son a couple of months ago. It's a Ryzen 5600H with 32GB RAM and 500GB NVMe SSD. Runs Windows 11 and Fedora perfectly. Does a little gaming but is mostly for school work. Makes a solid little dev system though.
Not to mention it had perfect Linux support out of the box. Literally everything worked (wifi, bluetooth, both HDMI with 4k60, etc) whereas on a laptop it can be a real pain to get everything working right. You can avoid so many headaches going mini pc over laptop.
At one then of the spectrum you can just be browsing for info, then writing code in vim, and that's it locally, if you push code up to a remote git server and that triggers remote build, test and deploy. Or even just remotely connecting into a heavier linux dev box (eg. in a cloud).
On the other end you're using a heavier IDE which triggers local recompiles on every save, heavy code indexing locally for a big project, builds are then spun locally into VMs or containers running on your local machine, etc.
8Gb is going to be fine for the first example. It will not be nearly sufficient for the second.
Browsers on linux tend to get pretty heavy, as that's often where you'll be running a mail client, video calling, Slack, etc, and they aren't exactly lightweight these days to start with.
With only 4GB, I have been mostly happy running:
- Xfce
- Firefox with thousands of tabs (most unloaded, and uBlock Origin installed!)
- Postgres
- Rails (one big app at a time)
- Nginx
- Slack desktop (Electron app)
- tmux
- vim as IDE, dozens of buffers, zero? plugins
- zram for memory compression (kernel configuration.. this is critical)
- Small (256GB) but quick SSD
- Zero swap configured
- Zero VMs locally!
If you are running Gnome, or Chrome, or Eclipse, or a big Java app, your experience will definitely be less good.My biggest consumers were Firefox and Slack. Restarting these apps nightly kept things under control.
I set this machine up as a temporary thing for a temporary project. It didn't turn out to be temporary, but it took me years to get around to migrating to a new machine, which I did just a few months ago. I was shocked at how "actually really OK" it turned out to be.
And this was with 4GB, not 8GB! So, I'd respond with "Yes, maybe."
RAM is also not all the same. 8GB DDR4+ paired with NVMe will perform better than 32GB DDR2 with a mechanical hard drive. This is part of why I'd take an M1 MacBook Air over a 16GB Intel Mac.
If your storage is slow / high latency, then swap will be slow. If RAM is low and swap is happening often, then the system will be difficult to use. zswap/zram can help, as well as adjusting swappiness if you run into issues.
I'm using a 4GB Chromebook and a 4GB Raspi 4 for a lot of work lately, and I'm enjoying the constraints.
- few browser tabs
- IDE
- compilation
- maybe virtual machine or application under test running
its very easy to run out of RAM in this scenario, just parsing the source code and providing code completion can hang a pc these days. you can swap to disc but you will be hurting
if you buying 8GB is only option make sure the laptop has free RAM slot(s) so you can upgrade later
more tips:
- forget about GUI, look up i3
- if you can, install arch, or some other distro that lets you manually pick packages, if you go for ubuntu, be prepared to be disabling a lot of services after first install (not a huge pain, you can google how to do it)
However, I'll give you a financial argument: a laptop with more memory will last you longer (unless it breaks down). It's more expensive upfront but if you then are able to use if for 5-10 years, it was a good investment. So, buy what you can afford now rather than the cheapest one. It might hurt a little but you'll save some cash longer term.
CPU speeds have stopped massively improving years ago. So, any CPU from the last ten years with 16 or 32 GB will run most workloads reasonably well. And a lot of things of course aren't really that CPU intensive to begin with. But if you run out of memory, things will start swapping and get tedious. That will happen a lot with 8GB and a lot less with 64GB.
8GB was already on the small side ten years ago. 4GB was definitely claustrophobic at the time. I upgraded my then mac with to 16GB (from 8GB) and I used it for another five years until it finally broke down. I have a new M1 currently with 16GB and a samsung galaxy book running Linux also with 16GB (cost me about 700euros a bit over a year ago, good value IMHO).
As others have suggested, consider using a lightweight window manager. XFCE is reliable and familiar, but if you're up for the learning curve, then tiling window managers like i3 or sway are very snappy.
If you're doing web development, I kind of wish more developers would test their apps in a constrained environment. Plenty of users out there will be pulling up web pages on laptops with 2 gigs of RAM or less.
If you're programming a compiled language, see if you can run the compiler on some other host. A nearby desktop or server, or in the cloud. You can easily mount a remote filesystem using sshfs, and there are plenty of other options for making this more or less seamless.
If memory is a constraint, then be sure to have enough swap space. Reading from the drive will be slower than reading from RAM, but you can mitigate this by getting a faster SSD. If you can get more than one SSD and you put swap partitions on both of them, then Linux will read/write from both for better performance, analogous to RAID 0.
I recently got a new laptop with 4x faster processor and 64GB RAM (just had to have it.)
My experience is speedy sure yet blah.
I passed up a slightly slower lighter model with less ram (granted we’re talking about 40GB now) yet charged with 65w USB-C and 12 hour battery (rather than ~8hr and conventional charger.)
I only wish I payed a little MORE for the 12 hour battery and less RAM!
8GB is fine! Don’t put yourself out for more RAM unless that is what you need.
I have an old x1c gen 4 and it is fine with linux for most of the tasks (incl some minor development tasks).
All depends on what you want to invest and for how long.
I recently spent $300 on a chair to replace my $50 chair which I was finding uncomfortable for long periods of time. I value my time at roughly $100/hour, so if I spend three more hours at my desk this month because I’m more comfortable, then it’s paid for and making me money every month thereafter.
The payoff is less clear if you work for a salary and performance is not well connected to your compensation.
At the moment my memory use with 16 GB looks like this:
total used free shared buff/cache available
Mem: 16167816 13526588 1017224 805552 1624004 1420060Swap: 24838136 10326200 14511936
and i have not found a good way to account for where my memory goes.
I'd go for a lightweight desktop env like XFCE.
Unfortunately on high contention linux is still prone to trashing memory, basically writing out a page to swap only to read it back into memory, evicting other pages. This was supposedly solved for HDDs, but it is still a problem with SSDs to the point where I had a completely stuck system, only reacting to REISUB. I did try to experiment with userspace OOMKillers, but they are no real solutions, and I think it is safe to bet that only larger memory requirements await us in the future. 8GB really is not enough today, not even for regular use let alone dev work.
Writing this on a secondhand sub-laptop from 2009 (I think the term may be netbook or something) with a 1024x600 screen. It runs 32 bit and as it's no secret that some activities are a bit slow, and that some "modern" heavy javascript-y web sites are a pain (even with noScript and uBlock) I recently examined how much RAM it had:
1 (one) Gb!
I also found out that it's (still) upgradeable to 8Gb, but I'm not sure I want to do it, as the annoyances are not really that big. Software generally just works, but forget about installing eg. Chromium and derivatives as those are 64bit only. For IDE I use Geany. Distro is Debian.
Running Dillo instead of Firefox, vi (or vim) for coding, and twm as window manager. That was super low even back then. I think the only unavoidable memory hog nowadays is wanting to have many browser tabs open. And having a heavy IDE; VSCode is pretty cheap on resource use, but with LSP support you can really feel a difference with a better CPU and enough RAM.
Some Java-based environments are very memory-hungry, some aren't.
I second the opinion of some other people that recommend going for the 8gb model only as long it allows for adding more memory later.
Also, second hand laptops could be worth giving a look. Again, depending on what kind of development you're doing, you might save quite a bit.
I'm not saying you couldn't live with 8GB, but I'd strongly recommend 16GB.
8GB can work, but don't expect to do much with Docker or VMs on it. In general, 16GB is the baseline, and I am always in favour of more RAM rather than more CPU.
Personal opinion - no it's not enough as of today.
Though it actually depends on what you are developing. Yes, because any software development environment worth it's salt should easily run. Your code and use case might require more. Again, at that point it might be worth looking into breaking down the problem if possible.. but what do I know.
My daily dev computer still has 8 gb ram and I have another computer I use with 24gb ram and I notice zero difference when doing as you say a Google chrome + zoom + vscode type workspace
Vanilla CSS, HTML, JS , static development= very well DevOps using docker = ok Vanilla python development= fine Fullstack web development using Django= fine
data science, machine learning= not ok DevOps for Kubernetes locally= don't even dream Any framework that uses nodejs= best of luck
Also: can't you buy the 8 GB model and buy the extra RAM separately?
Although I suggest not using Chrome, but another Chromium browser that can sleep tabs by default, or Firefox instead.
but you will need a decent sized swap file/partition.
And stay tf away from browsers.