As an aside, I haven't taken the time to pin point the exact problem, but as much I prefer to use Firefox, it doesn't seem to do a great job of managing resources for the SPAs we're building.
I agree, though, that it's next to unusable on a low-power dual-core system like the MBA if only for limited RAM.
(It generally does not. Instead it uses more lightweight isolation primtives. That has always been one of its main selling points.)
EDIT: see reply
> That does seem pretty heavy for a MBA of any generation?
It very much depends on what you are running inside the containers. I regularly have a dev environment with ~8 relatively lightweight containers running on my Early 2014 MBA without any problems.
If you change a small bit of css, the whole container is rebuilt? That seems super inefficient to me?
My backends arn't JS, but I still couldn't imagine rebuilding a container everytime I changed a piece of code. Right now I change a file, django picks up the change and reloads. No noticeable delay.
I think the attempts to make local workflows mirror production 1:1 (local k8s, for example) are misguided. They miss too hard on the productivity story. Especially once you start having to swap out local debugging for remote debugging (which only a handful of languages support effectively).
This is the biggest miss for many companies striving for microservice architecture. The local development story is terrible, and it stays terrible, without a lot of opinionated decisions around what your dev workflow needs to look like past the ~3-5 services mark. At a past gig I had to change 5 different repositories (5 separate PRs, all needing approval) to send an email. In a rails app that would have been a trivial task.
That sounds like no thought was put in the system before development. Well thought out scopes & contracts between services should not create a situation like that. Reminds me of a commenter on HN who were rolling back changes to all microservices if one service needed a rollback. These kinds of issues are dead giveaways that devs are paying lip-service to "microservices." Also, devs need to understand that they don't need to be on microservices or on the latest fad. Use what works for the team. A 10-team of devs cannot necessarily adopt workflows of a FAANG.
1. Terraform repo for AWS deploy
2. Step functions application logic (server-side polling daemon)
3. Email service template
4. Feature flag configuration
5. (Something in the monolith to trigger the workflow, probably?)
This wasn't an entirely small engineering org - 300-400+ devs?
I agree, though, is the point. I think folk don't put enough thought into the development story when going this route. I think monorepos are the only sensible way to go about it once folk have cross-service work to accomplish, and monoliths are a _good_ way to build applications for longer than folk give them credit. That said, some monoliths are more productive than others. Slow startup/compilation can destroy productivity.
Windows is not perfect but it excels in many regards nowadays and the last years, Macs were really expensive and risky. They were too expensive to just have a fall-back machine lying around (if you make serious money with you gear, every hour counts). I have 3x 2.5lb notebooks here, if one needs to be sent in, so what.
Edit: just opened it but there are no ads... what do you mean?
What I don't understand about this, however, are people being paranoid about W10 while they're happily accepting Google and friends to infiltrate their lives ¯\_(ツ)_/¯
You are of course exempt if you don't use any cloud-based services that you don't host yourself :D
That stuff also has a nasty tendency to ""accidentally"" get re-enabled after updates from many reports I've heard.
A new Windows install requires at least an hour of de-cluttering and shit removal, while for a new Mac full setup to my liking takes about 5-10 minutes and I generally don't have to uninstall much of anything. The only thing I sometimes remove are apps I never personally use like Garage Band to save a bit of disk space, and that takes like ten seconds.
Then there's the almost Android level of obviously spyware telemetry going on. Yes I know Apple has telemetry but I trust them quite a bit more than Microsoft both not to do anything deliberately sketchy with my data and to be competent with their security. They also do a lot less and a lot less invasive telemetry. Redirecting local search, sending file list dumps, etc. to the mothership is unforgivable unless I have explicitly opted into that kind of behavior e.g. for tech support or debugging. That's the kind of stuff I associate with borderline malware, not an OS by a supposedly reputable company that I paid for.
Microsoft's recent behavior is pegging them in the low end of the market and ceding the high end of the market to Apple. Then of course there's Linux. If Apple did something barking stupid that forced me to ditch the platform that's where I'd go. I'd miss the Apple degree of trouble-free operation but at least I'd keep my privacy and security and lack of foistware.
"Ceding high end of the market to Apple". I would not go into much details but for example my gaming grade laptop runs circles around Mac that costs twice as much. So sure I'd rather be a "low end" peon with the decent hardware.
Node performance has gotten a lot better since some updates, there was a period where CPU use and performance was just bad. I think it was a webpack bug. But now things are pretty good! Runs Sketch and other graphics apps not too bad. As a comparison, It seems to be much faster at compile and test running than running the project on Chrome OS Crostini on my ChromeBook Pixel LS (higher wattage, older, i7 + 16GB ram) I imagine the Quad core in this would smoke the LS.
Rust compilation takes like 15 seconds for small changes in actix project. For amethyst game library i wouldn't even try.
Kind of annoying. Working with a simple create-react-app project with TypeScript is fine though.
I'm betting your if you cpu is hot constantly while developing, it's file watching that's the issue. I had to do some work to get things to use proper file system events in macos and not just polling with my legacy gulp project. try installing fsevents if it's not already?
This is the point at which the MBA stops being a productive environment. I'm not saying this has to be the case for every project, but if your team uses local dev environments, it's quasi standard procedure at this point.
If you are using make to call Babel or other JS build tools you can use the jobs flag to parallelize it and again the cores will help.