|
Our last ones were i7-3770K barebones systems with 16GB RAM. I think the base system was about £850 or so, and to that we added drives (mine has a 500GB SSD and a 1TB data drive) and graphics cards (a monitor port card - think it was about £150 at the time).
This time round though I'm thinking a Threadripper + 64GB, and that will cost about double what we paid at the time. At the moment the price point seems about £2.5-3.5k depending on config and manufacturer, but it'll come down. By contrast, i9 systems look even more expensive and the current generation has heat issues.
We're looking at CPUs with lots more cores (16/32 as opposed to our current 4/16) as that way we can parallelise code analysis tasks even more, which will mean we can iterate faster.
It also goes without saying that the ongoing Meltdown/Spectre mitigation currently seems to be favouring AMD processors over Intel.
Anna ( @annajayne)
Tech Blog | Visual Lint
"Why would anyone prefer to wield a weapon that takes both hands at once, when they could use a lighter (and obviously superior) weapon that allows you to wield multiple ones at a time, and thus supports multi-paradigm carnage?"
|
|
|
|
|
Seriously: What are you guys waiting for?
I mean: What are you waiting for to complete? What holds up your development work, that can be speeded up significantly by throwing more iron on it?
Sometimes I have a feeling that I am listening to an errand boy trying to convince me that if he got a car that can go 300 km/h, he will do his errands a lot faster.
I've been in SW development for all my working life, developing office applications, network software, embedded software, ... I have never ever been even close enough to see - not even in the far distance - a developer who has a working set of 16 GByte on his development machine. Obviously, the IDEs of today are huge, but that is essentially because they carry tons of features that you do not use at all, or maybe once every three months. The code is just laying around, it is not part of your working set. It might just as well lay around in the executable file, or even in your paging file, without being loaded into memory. You are not doing your development work faster by having 16 GBytes, or maybe 32 GBytes of unused code slumbering in your RAM!
I honestly doubt that you ever have a working set of more than a gigabyte on your desktop machine, whenever you are touching the keyboard, mouse or other physical I/O. I know lots of you will scream in protest, so let me raise that to four giga for further discussion. But claiming that 16 giga is a bare minimum is just crazy, if you you take a rational approach. Sure you do have a few disk accesses now and then, but 99% of them are first-time accesses (for that work session); you can never avoid those. And even if you squeeze your RAM down to 4 GByte, so that you need to page every now and then (of course you would never do that in practice!): Paging against a flash disc is so fast that it in no way will slow down your development.
Some people insist that they absolutely require more than a 100 Mbps internet connection, too. First: What kind of remote servers you access that can deliver data to you that fast? Second: What do you need it for in your development work? If I download a two hour 4K resolution feature film, I will have to wait a few minutes at 100 Mbs, but for SW development, I retrieve megabyte of reference info in a tenth of a second (if 100 Mbps is the limiting factor). Will my developent work go faster if I could get that data in a twentieth of a second?
We demand terabyte capacities of flash disks. The only situation when I handle terabytes of data is when editing hi-res video (and I do not call that SW development...), which flows in real time at 10-100 Mbps, a magnitude below the effective speed of rotating disks. If I replace a rotating disk by a ten times faster flash disk, my video does not play ten times faster! What takes time is the rendering of the final result, but that is certainly not limited by disk transfer speed! Besides, it is a typical non-interactive batch operation that I start as a background job.
For what kind of SW dev work do you need a game level graphic card? Obviously if what you are developing is high-performance graphics application for that card, but that is essentially limited to game developers and a small handful of others. The majority of SW developers have no need for it, and it does not contribute to their productivity.
Except, of course, the psychological effect. If your employer gives you a machine with 256 GByte RAM, 8 TB of flash disk, 1 Gbps internet connection, a $2000 graphics card and at least two 30" screens on your desktop, you are told that you are a Valuable Person. It gives you a self confindence and goahead; that might boost your productivity. But that is not because that super-expensive desktop PC really opens up any bottlenecks in your work.
No need to say: RAM is so cheap nowadays that you might as well install 16G of it. Flash disk are becoming cheaper, too, and for the system disk, flash is a must (program startup is significantly faster - that has an effect on productivity). Fiber internet is a de facto standard today. A midrange graphics card is cheaper than a night downtown. There is no reason to shave off ten dollars here, twenty dollars there. When buying a car, you make no attemt to save a hundred dollars by selecting one with a top speeed of 80 km/h.
Obviously, there are special cases, like the game developer needing a top rate graphics card, the developer of weather forcasting models needing huge amounts of RAM, and the DWDM protocol developer needing more than a COM port for communciation . And notably: If you are talking about a back office build server, running twenty builds in parallel most of the day, then you have other requirements than a for a developer's desktop PC.
For general, unspecified SW development work, there is no need to buy a Ferrari to bring the groceries home.
|
|
|
|
|
I think your missing your own point. I am a software engineer (applying it loosely here as I don't consider myself a professional coder), but I also do a lot of other tasks as it seems that you do. I think a lot of people end up doing other technical sorts of projects that may require the extra horsepower. I currently have autocad, visual studio, and dameware running all at once. As to your assessment that most people rarely get over 1GB on their desktop, I've seen Chrome chew through a couple gigs by itself with a bunch of tabs open. Personally, I would go with what most people are recommending. 512GB SSD, optional large spinner or network drive for large storage, nice i5 or better processor, 16GB or better memory. But people that run virtuals and get into Docker style deployments might need something more. Other people that are using Azure or AWS might need that 100Mbps line to fast deploy applications to their remote servers where seconds can make a difference in thousands of pages delivered.
Cheers!
|
|
|
|
|
I am both a professional coder and an active hobby user of e.g. video editing software, which puts much heavier loads on the machine than any of my professional work. I have 10+ TBytes of disk storage for video, SW projects (including all my hobby projects) are a tiny little speck. I've got an upper middle range graphic card for use with a drawing application (SketchUp) - it was near top range when I bought it. For doing SW development, it would be a waste.
The Resource Monitor sure may tell you that you use four or six or even eight GB. But that is not your working set: 90% of it your machine hasn't as much as looked at for at least half an hour! If you are short on RAM, you can throw it out on disk. It might take you half a second to swap it back in, but you won't notice. And when it is in, it is probably in for at least half an hour before it is thrown out. I have several colleagues who come to work in the morning to start up their browser with a couple dozen tabs, a set of various pages "to have them handy when needed", and when they go home eight hours later, two thirds of the tabs have never been opened. That doesn't qualify a "working set"
If you need to deploy a 100 MByte product to a few thousand sites, you can make use of a fast internet connection. That is not "SW development work" and the productivity being hampered by a slow line; it is a fully automated process (or else you should definitely consider automating it). Why whould you run that sort of deployment from a developer's desktop PC?
(An then: I never miss a chance to point to Geek&Poke: Here is Continuous Deployment)
|
|
|
|
|
Some of your points are valid. However:
- ram: many of us use virtual machines. we can suck up RAM
- SSDs - TB size - yeah, maybe extravagant, but its such a PITA if you max out. I happen
to have 3 SSDs in my laptop but they are all 512GB, and there's a lot of stuff on them.
Depending on how you want to stash your old projects - one never knows when a customer will call,
and I regularly hop between three development projects.
- game level graphics card: certainly you don't need anything more than a mid-range, but I've had
issues in the past with driving multiple monitors with on board graphics. Spending $100 or so
on a graphics card with sufficient ports is useful.
- fiber internet is the de facto standard: now you're just hitting below the belt. I've been
waiting 5 years for something faster than 50Mb, and I hope it's affordable.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Virtual machines suck up RAM if you are keeping VMs in parallel on a consistent processing load and have 8 GByte RAM. But you can't keep 4 VMs busy! (unless your desktop is also the build server for a few other machines, and that doesn't belong on your desktop!) VMs do NOT suck up 16 GByte working set!
Flash: You do not stash your old projects at your laptop (and nowhere else). You keep an offline, off site backup (and then maybe an onside copy on a USB store for easy access). You can spend a few seconds - even a few minutes - pulling in an archived projects across a USB3; your productivity is not determined by the file copying time for picking up an old project! You may of course use a flash backup, but again: That doesn't affect your productivity as a developer.
Graphics cards: Running multiple monitors is a far more valid argument than graphic performance. (There are good arguments for two displays; 3+ I dare question!) But when people start arguing about a shortage of that class of cards being used to mine bitcoins, we are not talking about $100 cards, but cards with a few thousand CUDA cores. I'd guess that nine out of ten CUDA capable cards never ran any CUDA code at all, but the owner thought it required to get enough performance.
Fiber: Yes, I pointed that out, it is the standard nowadays. But a number of my friends insist on 1 Gbps fiber. I am curious about when 50 Mbps is a bottleneck in SW development work!
|
|
|
|
|
Oh righteous one yes, yes, I know about backups. lol
fiber - oh, the 50Mbps just makes my kids whine.
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Wait for a price drop on RAM, so you can get 16/32. If your MB supports up to 64, do not buy 2x8. I have found that in modern dev, one common IDE + debugger might fill up your RAM. And I usually use other programs as well (music, etc). Now seems like the worst time to buy new desktop. In a year from now for $1K you will be able to get:
- Cheaper 16G RAM
- 10nm CPU that's actually uses new technology - faster compile times if you are in that kind of dev
I know almost every year computers make some "new" technology, but prices do not, so it is worth waiting.
|
|
|
|
|
Something like this is a good start I reckon
PCPartPicker made by Marklahn
The Ryzen processors do not have integrated GPUs. I added a geforce 1030 as it's the lowest-end 1000 series card, so it has all the newest connections for monitors. If you want to be able to game, you should upgrade that to a minimum of a 1060.
|
|
|
|
|
You were caught by the spam filter and close to be taken as a spammer.
I just did remember this thread and I let you through
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
I saw the price un USD and thought comverting that to GBP would make it very reaosnable, except it's more in GBP, ouch!
|
|
|
|
|
I just bought a Dell XPS13 for $2,200 (includes 4 years NBD On-Site + accidental damage protection). 8GB RAM and 512 SSD drive. It can go up to 16 GB and a 1TB SSD. I do light development on it.
|
|
|
|
|
As much memory and as many cores as you can afford, fast disk for main OS (SSD) large mirrored (4TB x 2) disks for the data - then VMWare Workstation for all the dev work.
I have VM's for each Visual Studio back to v6 - turn them off when not needed but if you ever need to work on some old code no need to do a risky project upgrades.
The VM's can then in future just carry over to your next machine - so if the mother ship starts looking outdated or just dies you don't have to reinstall loads of stuff to get back working. And I keep my "latest" dev VM on a Samsung USB3 SSD so I can run it off my laptop as well if I need to work on a client site.
I have actually worked like this for over a decade and have upgraded the mother ship only 2 times since then - last in 2012 just beginning to think of an upgrade now - i7 3770k + 32GB ram seemed expensive in 2012 - but it is still a good workhorse 6 years later so worth it if you are looking long term
|
|
|
|
|
Make sure your PC is quiet by getting fans designed to be quiet. I only hear my PC when I turn it off and I can hear the change. Just do a little research to find quiet fans (New Egg?, Tom's Hardware)
Also you can get software to monitor the temps of the motherboard and CPU. With that you can unplug fans one by one to eliminate the noise altogether and keep everything cool under whatever load you are creating.
If you get a CPU cooler - with pipes containing liquid and radiator fins - it's much easier to keep the CPU cool anyway so you don't need as much airflow.
Less noise means better programming!
|
|
|
|
|
I use an ASUS Zenbook. Price and performance are great. Specs fall within what you stated. Not a tower with trays and bays, etc. I am not sure towers are popular anymore. I have not had one for a long time. Laptops/notebooks are my preference.
Check out the specs on Amazon or Walmart.
Cheers.
"Courtesy is the product of a mature, disciplined mind ... ridicule is lack of the same - DPM"
|
|
|
|
|
My recommendations:
CPU: Intel i5 or i7
RAM: 16 GB RAM or More (if 16 GB ram, buy only one chip, so later you can upgrade to 32 GB RAM)
HD Hybrid:
drive 1 - SSD 128GB or more for OS
drive 2 - 1TB or more for data
In Portugal ~ 800 € and you have a computer for at least 6 to 8 years.
Don't buy the top on the market.
NKS
modified 24-Jan-18 15:21pm.
|
|
|
|
|
Get a MB that supports PCIe x4 M.w2 ssd, like the Intel H270 chipset or better. The fastest hard drive i/f available for a reasonably priced desktop. Build your own machine. Use pcpartspicker to check that it all works together. Like others have said, get the 2nd or 3rd “best” mb and cpu. The latest and greatest aren’t generally worth the premium you’ll pay. You can build something blazing fast for around $1000 plus or minus depending on how many buzzes and whistles you want to add.
|
|
|
|
|
Support for up to 3 HDMI monitors.
USB 2.0 ports, in addition to 3.0.
DVD drive (yes; they're optional now).
5.1 Soundbar, bluetooth woofer with rear speakers.
Comfy chair.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
What sort of "development"? If it's just running an IDE and you're just compiling stuff, then you really don't need the absolute top of the range. Though debugging may require a slight bit more than just running your programs.
What if you're making web backends? Do you wish to install a web server onto your machine? This may need a bit more oomph than your run-of-the-mill desktop. Same goes for any ancillary stuff like database. And then what if you wish to run things like VMs to properly test programs / apps / servlets / etc.? I.e. there simply isn't a one-answer-fits-all idea.
As example, I do lots of addons for a 3d modelling program. The developing itself could have run on even an entry-level laptop, never mind a desktop. But the 3d modeller has minimum requirements, and using it on anything more complex than a cube just escalates those. To the point where my presentation laptop (the one I use to show the addons for discussion in meetings) is just about good enough - and that's a near-the-top-end gaming laptop (GTX 960, 32GB RAM, i7, 512 NVMe SSD, 1TB HDD) - the laptop cost me around $2500 about 2 years ago. My actual production workstation is a lot higher on the food chain that that, this thing is now 3 years old and cost the company around $3000.
But that's because of the 3d element. And thus would definitely not be necessary for most people.
|
|
|
|
|
I'll buy a nice refurbished Core i7 XPS desktop from Dell Outlet for around $600, then add an SSD for the OS and use the HDD for data. I might also add RAM (16 GB min) and upgrade the video card. $1,000 total cost, and blazing fast.
Where money is no object for me is the monitor. Dell 34" ultra-wide display for my tired old eyes!
|
|
|
|
|
|
|
Toutes nos felicitations
Your niece has gray hair?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: Your niece has gray hair? No, she's one of the persons in the background in the image on the right.
/ravi
|
|
|
|
|
The blond one?
Tell her "hi" from 13,355,335 members
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|