5 ms·
This is underestimating modern processors and overestimating programming compute resource usage. Your post may apply if we're working with 4K+ resolution video
by ctvo 7y ago
This is underestimating modern processors and overestimating programming compute resource usage.
Your post may apply if we're working with 4K+ resolution video files, rendering and other activities, but the modern programmer, even compiling binaries, will be fine on a MacBook Air.
How do I know?
I use a 2 generation old Macbook as my primary personal development machine. I write Go, Rust, Java and TypeScript using the common tool chains for all those languages.
- geerlingguy 7y agoYou haven't been forced to deploy something that builds a local K8s cluster and builds and runs 10+ containers just to get a microservices app up and ready for development, I see... (only partially /s).
- ctvo 7y agoThat's a good point, and outside of my personal development workflow. Condolences!
- baddox 7y agoIt doesn't even take that much. Docker Desktop on MacOS is widely known to be terrible and have extremely poor performance. Running webpack-dev-server with filewatching through Docker nearly grinds my 2017 Macbook Pro to a halt. Obviously most node/webpack/JS stuff can run natively on Mac but it's not uncommon to see dev stacks that dockerize everything because that's how the production stack works.
- emerongi 7y agoI often have up to 10 VSCode editors, an IntelliJ window and two browser instances open. Add some server processes, UI watchers/builders, and my Thinkpad starts to freeze up. In an ideal world, I would have a low-latency remote desktop going, but even in 2020 it seems like a pipe dream.
- oarsinsync 7y agoI’ve been using paperspace cloud machines with parsec for low latency Remote Desktop. Originally used it for gaming. It’s remarkable how good it is for everything else too. 5ms encoding lag, 10ms network lag, totally workable.
- bdcravens 7y agoYou can improve this substantially on MacOS using docker-sync (the issues with Docker performance on Mac are primarily related to the file system) I wrote a little about this; it's for Rails but the same ideas apply: https://medium.com/@bdcravens/fixing-docker-for-mac-and-rails-performance-baf35f554bc7 https://medium.com/@bdcravens/fixing-docker-for-mac-and-rail...
- baddox 7y agodocker-sync helps a little bit, and so does limiting Docker to 1 CPU core, but I still routinely get spurts 100% CPU from Docker that despite supposedly being on 1 core still grind my machine to a halt.
- noir_lord 7y agoThat's my work pretty much except not k8s but it does spin up between 4 and 8 containers (depending on which system) some of which require 4GB of RAM or more (don't ask..). On the flip side standard issue laptops are now 16" Macbook Pro's with 32GB of RAM which is pretty hardware.
- TheKarateKid 7y agoJust because there are needs for high-end CPUs for some developers it doesn't mean that all programmers need them, as OP's comment implied.
- godelski 7y agoI don't get this argument. Run local for basic testing, else use it as an ssh machine. I work with super computers. The power of my development machine usually doesn't make much difference, I spend a lot of my time ssh'd anyways. So if something has a nice screen, good battery life, and a comfortable keyboard then I'm good. As long as it works for presentations and can compile my latex files, I'm good. I don't see Airs as development platforms. They are portable platforms.
- asdkhadsj 7y agoIn fairness, as a Rust dev my computer sounds like it's a jet engine anytime I compile. I wouldn't even think about using a slimmer CPU. Not that you're wrong, it's just where my head is at haha.
- thedance 7y agoWell my "programming laptop" spends all of its CPU these days on corporate garbage such as splunkd, which regularly melts down, some kind of corporate managed software updater which is terrible, Zoom, and trying to render dashboards from Grafana which is among the most flagrantly wasteful javascript hacks ever devised. It doesn't help me much that vim and screen are efficient.
- tommoor 7y agoprogramming != running a text editor. A lot of usecases involve running a replication of the server environment locally in resource intensive containers
- VLM 7y agoI'm lucky to have development access to a small slice of a very large vmware cluster. I'm surprised no one else operates this way. The performance gains are immense.
- semi-extrinsic 7y agoOr how about just having a workstation at work? E.g. the Dell XPS 15 is a very popular laptop, but an equivalent cost workstation is around 8x faster for sustained well-parallelizable loads. Use a KVM switch with your work monitor, or use it as a headless server, do whatever. Want to work on machine learning stuff? Throw in an RTX 2080 Ti, off you go, never worry about cloud costs. Are you I/O bound? RAID0 off a couple NVMe drives. It's immensely flexible and I'm surprised it's not more common.
- nine_k 7y agoIt's more cost upfront, which is often a show-stopper. "Why can't you spin a beefy instance on EC2 when you need it for these 2-3 hours of intense work? It's so much cheaper!" Also, a cloud VM, if it breaks, is replaced "for free" and "instantly"; fixing a physical machine has a cost and is a delay. Unless you're big enough to keep a spare (probably makes sense for many dozens of machines), it also looks a bit uneconomical from the business's POV. Never mind that your cloud costs in a year end up being comparable to said workstation.
- viraptor 7y agoThere are other people who operate that way. But lots of them use AWS or some other provider for that instead of local resources.
- ithkuil 7y ago
- lliamander 7y agoI'm using a 4-year-old Thinkpad with a dual core U-series i7 and 32GB or RAM. The results are...adequate. A typical compile for me takes about twice as long compared to colleagues with newer H-series processors, but the individual projects are pretty small so that often isn't a huge deal. However, once you try and run nearly a dozen docker containers for local testing, things slow down quite a bit. Multitasking while those tests are running is very difficult.
- chrisseaton 7y agoI thought the same thing, but then I got a MacBook Air and couldn't believe how slow it was in practice. I didn't know if it was thermals or memory bandwidth or something, but Java compiles which used to take 5 minutes would suddenly take 30 minutes and it just wasn't even really tractable to use.
- ksec 7y agoGenerally speaking If you need any heavy computational workload for more than a few min the MacBook Air doesn't fit. The 3.4Ghz Boost only works in seconds and it long run it could only sustain at about 2 Ghz. Not to mention previous MacBook Air were Dual Core only.
- Fredej 7y agoYeah, I'm writing C++ on a 2013 Macbook Air. This would be a _huge_ upgrade for me.
- mm89 7y agoI agree with you :) but let's not tell the employers who gladly buy the top-of-the-line models for their programmers ;) I am quite happy with my new 2020 MBP.
- ben174 7y agoGeneralizing "programming" is a fools errand at this point. For some, their IDE alone would warrant a pro-spec machine. Some people need to virtualize their development environments. Some people need to virtualize several environments interconnected. And for some people, programming is just a simple terminal session with tmux running - VIM on one screen, shell in another, tests in another.
- lliamander 7y agoI totally agree that you can't fit all programmers into one bucket. I think we should be able to describe some general patterns in programmer workflows such that we can give concrete advice to programmers about what kind of hardware they would need. A perfect example of this the recent Level1Techs video about compiling an Unreal engine game using the AMD Threadripper 3990X[1]. Some concrete advice: 1. Often the heaviest aspect of a programmer's workflow isn't compiling the code, but running automated tests using VMs and stuff 2. compilers tend to benefit from large cache sizes and good single-threaded performance. Multi-threaded performance only makes a difference in limited scenarios. I've also heard that storage performance, and in particular storage latency, can make a big difference on compiler performance, but the difference is starker on Windows than on Linux because NTFS is a lot slower than many Linux file systems (EXT4, XFS, etc.). The thing is, we as programmers don't have a good mental model for how the software tools we use (IDEs, virtualization/docker, compilers) scale with modern hardware, and very few technology reviewers are producing content that would help us understand. [1]https://www.youtube.com/watch?v=VQa6r6Ci1jg https://www.youtube.com/watch?v=VQa6r6Ci1jg
- dzhiurgis 7y agoDepends on what IDE you use. Webstorm pushes even my octacore pretty well. Sure, some people prefer to work like it's still 60s tho.
- swah 7y agoEven Chrome brings my machine to a halt. I've been running Docker recently and 8Gb of ram is instantly gone. Sometimes I think most folks are simply more patient with their computers, and will wait a few seconds for operations to finish, while I get a feeling something is taking too long and start messing around with ps aux, killing processes and such...
- tlarkworthy 7y agoYou can lower docker resources in a settings. I use it on my air.
- tjoff 7y agoThat is peanuts. Have you tried opening a browser and surf the world wide web?
- closeparen 7y agoCompiling routinely pegs all 12 cores on my top-spec MBP for 5-10 minutes at a time. YMMV.
- foobaw 7y agoWhat about large excel files with a bunch of pivot tables and v/xlookups?