I have been planning to buy a Mac for my development side projects. Before I do this, I thought I would ask people here for their experience and suggestions.
I got a mini for light dev work, it is unbelievable responsive and if it fits your limits 16GB Ram and ssd space (you can upgrade with external cheaper ssd) it is a very good machine.
Docker is still not easy with the new architecture.
I love my M1 for development, I have a work M1, and I like it so much I am getting M2 for person use.
I had 2 main issues at first, but they are both resolved. One, if you want to use arm native Python conda now supports arm which is great. The second issue was docker, but it turns out that docker has qemu built in. here is an example of how to use x86 docker images on a M1 Mac.
As usual, it depends on what you mean by my development side projects. You will need to be more explicit on your use case if you want to get helpful suggestions. I own an M1 MacBook Pro and I can do any programming projects I'm interested on it.
As a counterexample, I have a friend who wants to do embedded development and FPGA, for his use case a Mac is useless.
My M1 Air is the best computer I've ever owned. Handles everything I throw at it.
My M1 Pro (work computer) is such a leap from my old intel machine. It's wild to be running our services locally with Docker, install Xcode, and take a Zoom call without so much as hearing the fans. Battery lasts all day. Don't know if I'd fork over that much money myself, though.
I lived out of an 8gb M1 Air for a year or so - it was great, but I should’ve gone with 16gb. Now I’m on a 32gb M1 Pro and concur with you that this feels like a sweet spot. Docker, Parallels, multiple browser windows, Slack, Blender, Unreal Engine … all at the same time. You just don’t have to think about manually managing your memory pressure.
Same. I got the M1 Air earlier this year. Was worried I was too late in the product cycle, but after using it, this thing will be a beast for years to come.
Once you experience a computer that is absolutely silent, it’s really hard to go back to a normal laptop. My windows notebook spins it’s fan constantly and it drives me crazy. I have to put the machine to sleep and unplug the charger just to shut the damn thing up when I’m not using it
x86_64 docker is possible, but quite bad, also will always crash on some images (e.g erlang 24 due to added JIT). Switched to github actions for building own images
Just got an M1 Mac since I spilled water all over my 2019 16" macbook pro. I was a little worried going in but its super snappy. vs code, gimp port and the overall OS loads faster and is more responsive.
I use an M1 MacBook pro for work. I’ve had no problems in general. There are few wrinkles with python development. The main thing is about various data specific libraries getting ported over. Most of the problems are solved with a quick google though.
Been using a 14” MBP for a few months now. Best machine I’ve ever owned. I don’t care that much about the CPU perf, but that’s been praised to death online. What amazes me is the SSD perf and battery life.
Some docker containers are still problematic, but most native software and dev tools work flawlessly.
Some back story: I bought a top-of-the-line X1 Carbon ThinkPad for ~$3,000 3 years ago. Within 1 year of owning it: the USB-C charging port broke, the fans started whining, so I had to open/adjust the case, Windows Hello never worked (?), the fingerprint sensor was wonky, and the battery ended up lasting around 5 hours with a realistic workload. This was after owning just about every top PC laptop brand out there: Alienware, Razer, a nice ASUS I had when in college, etc.
I bought my M1 MBP around a year ago. It's now 4:30pm, and I've been using it since 10am, sitting at 50% battery without plugging in at all. Everything just works. I even installed Steam and can play some games on it. I hated the idea of owning a Mac and have fought tooth and nail until I finally bit the bullet. It's literally the best laptop I've ever owned and I am never going back.
My gaming rig is a different story, but for productivity on-the-go, there's no comparison.
I use a surface laptop 4 as my mobile workstation, and I like it overall, but the battery life leaves a lot to be desired. I'm OS agnostic, so the M1s caught my attention, but I use the touchscreen so much I'm not sure how happy I'd be with it unavailable to my workflow.
I’ve realized that the only reason I desired a touch screen on windows notebooks was because windows trackpads are so awful. Even on high end $3,000+ machines.
The Mac trackpads are so responsive that they feel every bit as good as having a touch screen.
I've switched to using an iPad pro for all of my productivity and media consumption needs. With stage manager and an external monitor, it's going to become a very capable workstation, as it already is for me.
I wish I could buy a new Mac and run Windows on it. But I really dislike macOS. I've tried to like it, but it just feels like a crippled OS compared to Windows. I hate the lack of support for true fractional scaling, the comically bad window management (Windows 7 was miles ahead of where macOS is today), the shitty text rendering, the lack of configurability, the half-assed attempt to bring the iOS security model (which is not itself bad) to macOS, etc. etc. etc. The dock used to be better than the taskbar, but the Windows taskbar has been strictly better since Windows 7 too.
Agree 100%, this was what kept me away from a Mac, and why I was happy to let go the old MBP. I've been at it for months now but still hate the scaling and window management. I believe there's some third party tools that handle this and it's time to look into them.
The build times for a M1 are so fast that it's still a requirement for me though. The battery life for a MBP is amazing - it's almost a whole work day even on full compiling. So it's not really a choice.
> I've been at it for months now but still hate the scaling and window management. I believe there's some third party tools that handle this and it's time to look into them.
Don't know about the scaling, but for window management I find the Rectangle app quite helpful.
I am not sure what's wrong, but I've been underwhelmed with my 14" MBP's battery life.
I was super excited to get one for work solely because of all the buzz about battery life. But here I'm getting 5 hours or so. Firefox and Chrome are by far the biggest offenders, but I don't do anything special.
I doubt it’s the only issue, but I switched to Safari for most things years ago, back when I had an Intel Mac. It significantly extended my battery life.
Try with Safari and install an ad-blocker, both firefox and chrome keeps letting ads continue to animate (GPU) and use WebWorkers in the background, Safari basically freezes tabs that are not in use and don't drain the battery.
Firefox with uBO [0] and Auto Tab Discard [1] is pretty good on the battery. I often go 10h without a charge on my M1 Air and usually there's still a bit to spare.
I have, but nothing stood out. I even tried Firefox Profiler (which is pretty good btw, kudos to the team), and it looks like DOM processing and renderer both spend a lot of CPU. But alas I'm not a frontend developer and have no incentive to dive deeper :)
I use my M1 MBP for professional development, for which I have also been using my 2014 (5K) iMac.
The MBP is fine. Before it I had a top-of-the-line Intel MBP which was a detestable piece of shit because of its shameful keyboard. And of course Apple compounded the offense of the "butterfly" keyboard by depriving "pro" customers of an entire row of keys and replacing them with the embarrassing emoji bar. I HATED that computer, almost entirely because of the keyboard.
The newer (old-style) keyboard is merely OK, but it hasn't caused me to pound the shit out of the computer to the point where internal components started to protrude through the back cover. It still lacks a real Delete key, but that's just Apple being petulant babies.
The physical design does repeat an absurd blunder, though: The USB ports are, AGAIN, so needlessly close together that you can't use two adapters next to each other. WTF, Apple. WTF.
Performance-wise, I haven't stressed it too much but Rosetta seems to work admirably. The biggest issue is the unfeasibility of running Windows in Fusion on it, but I guess I'll just get a Windows computer at some point.
I've had a M1 mac mini for about a year now. It's been a really great machine, dead silent (never heard the fan), super fast and responsive. No complaints really, software mostly seems to have caught up to the new architecture. I do most of my work in JS/TS, React, etc. Don't know if I'd buy a M1 mac mini right now though, feels like a M2 refresh is due soon.
For work I have a 2019 16 inch MBP with an i9-9980hk which was the last high-end intel model they released.
My personal laptop is an M1 Pro MBP and it runs faster, quieter, cooler, and has over twice the battery life.
That said, for both machines I do a lot of c++ compiling and the difference would be far less noticeable if I wasn't regularly running the cpu at 100% for significant periods of time.
If you work with the Python math/science ecosystem (sklearn, numpy, tensorflow, pytorch) there are some teething issues, especially with legacy codebases stuck on older versions of TF (Rosetta doesn't support AVX). It's great for Java/C++ though.
Big thumbs up. The ARM ecosystem is mature enough that 95% of what you want to do will just work, either natively or with Rosetta 2. If you need to do something very low level you might run into issues, but since many other developers are in the same boat any problem likely has some workaround.
Nothing can beat the price/performance of the M chips. There are some drawbacks, but overall it’s the best computer I’ve owned.
They are incredible. M1 Air is the best computer I’ve ever owned (16gb) and my M1 14 (64gb) is the second best.
I can only imagine that the m2 air with 24gb will be even better. To me the extra weight of the 14 wasn’t worth the extra monitor hookup. The tiny power adapter and no fan airs are where it’s at.
I’m really disappointed that the M2 Air doesn’t support two external displays. I don’t need the bulky expensive MacBook Pro. The M1 Air is already far more powerful than I need.
I really hope this isn’t artificial market segmentation by Apple to sell more Pros.
Yes I'm not buying an M2 Air for the same reason (even though I love the form factor). I've been looking into DisplayLink but I'm just not confident enough to rely on that.
The single external display limitation is a big downside to some of the M1/M2 machines.
I used an m1 pro for work for about a month. I wound up returning it and getting issued a Linux laptop instead.
The laptop itself is absolutely amazing. The thousand paper cuts with things not properly supporting m1 was just too much to bear.
I think if the projects you're hoping to work on have first class support for Apple silicon you can't find a better machine for love or money. If they don't, then steer clear.
If you had one early on consider it again. The first 6 months was abysmal for me, but ever since https://github.com/lima-vm/lima has been locked down I have ways to compile everything and run any container I want. `nerdctl` has taken a tiny bit of effort to learn but it's been well worth it.
> The thousand paper cuts with things not properly supporting m1 was just too much to bear.
This was almost me in Nov 2020 - Firefox barely worked, Docker was a no-go, Homebrew choked on probably 50% of packages - but in 2022 I can't recall the last time I ran into a Apple Silicon-specific issue.
When I first got my M1, support was pretty rough. These days it's pretty tough to find something that's broken.
The biggest incompatibility to point out is VMs. UTM exists, but is more limited in its capabilities and isn't as fast as I'd like. I've switched to using docker for everything instead of the standard Vagrant/VirtualBox setup everyone else at my org uses.
The M1 and M2 macs have excellent performance and battery life, but beware of the fact that they don't work with Virtualbox. Virtualbox combined with Vagrant is great for declaratively spinning up a quick vm without using any proprietary software.
Vagrant has a few advantages compared to Rancher (and Lima[1] which I believe Rancher uses under the hood).
Because of its popularity, there are so many open source Ruby provisioning scripts you can use as a reference when provisioning your own VMs. You can also package up a provisioned VM as what they call a "box" that can be shared with other developers. It also natively integrates with tools like Ansible, Chef, and Puppet which make it a lot easier to manage the provisioning process.
And finally, many of the books and tutorials I've read use Vagrant, so it's much easier to follow along if you have Vagrant installed. For example I was recently reading the book Ansible for Devops by Jeff Geerling, and Vagrant and Virtualbox were used pretty extensively throughout the book.
Also, if you decide to package VMs to use in production it's pretty easy to integrate with Packer, which is another Hashicorp product.
Docker is extremely popular and so there are plenty of reference Dockerfiles. Books and tutorials on K8S, Packer, ECS, GKR, etc all use OCI images, so docker (or something similar) is useful to have on hand. Yes, packer supports vagrant too, but just go to their website and go to guides, and notice how many docker guides they have and how prominent they are compared to vagrant. I think it's not about the individual implementations but about the paradigms they work in
Let's say I have a bug in prod. I just adjust my code, or Dockerfile, or some declarative config (say cloudformation or k8s definitions) and push it, and the CD doesn't say "go to existing machines and update them", it says "spin up containers with this new build and configuration, divert traffic to them, and then remove the old containers when safe". For me, provisioning is not something I want to touch outside of setting rules for autoscaling and saying "start using this new build". So arguments about provisioning (for my usecases) don't help - they sound like adding more responsibility onto me that computers already handle for me.
I don't feel that this declarative and abstract model is necessarily ALWAYS better than the imperative model you get with ansible et al. And I can think of an example: if you just need to run 1 command everywhere, ansible (or chef or puppet) is much faster than pushing a commit and waiting for the build and deployment. Or maybe if you needed a custom kernel. But I've never had an instance where those things were valuable or valuable enough; in all my experiences, fine-grain provisioning and treating servers like pets instead of cattle has never been a better choice (especially given bursty traffic), so I'm trying to broaden my horizons and understand where it would be a better choice.
I definitely get where you're coming from, but I think developers tend to overestimate the complexity of managing servers, and underestimate the complexity of managing a Kubernetes cluster. The last time I looked into Kubernetes even the most minimal setups required 500MB of memory on each machine, and that's assuming you're using a lightweight implementation like k3s or k0s. If you're using a managed service like EKS or GKE you're going to require even more memory and cpu resources. Kubernetes is ostensibly supposed to help you autoscale, but you only end up needing to autoscale because of the memory and cpu that Kubernetes is itself consuming. Most webapps can scrape by with just a single vm. Hacker News itself runs on a single machine [1]. Also if you reserve a vm for long term usage most cloud providers will give you a pretty steep discount [2]. If you need the ability to burst during periods of high traffic, you can just use a burstable instance, which all of the three big cloud providers support (i.e. Azure, GCP, and AWS).
I used to think managing servers introduced unnecessary complexity until I tried it, and realized it's really not as difficult as I thought. With kernel live-patching and unattended upgrades, I never have to manually update anything. Blue-green deployment is as simple as rsyncing files to the server, starting the updated app on a different port, and then updating your reverse proxy's config to point to the new version of the app. Any decent reverse proxy like Caddy or Nginx will support zero downtime config updates. You don't have to build containers, store them in a registry, or update any yaml manifests. Kubernetes manifests have gotten so complex that developers are inventing programming languages like Jsonett and Dhall to generate configuration files.
Also, the skills you learn from managing servers are incredibly portable. Some of the Unix skills that I've gained from playing around with EC2 instances have actually helped me manage my personal Mac (which is of course a member of the BSD family of Unix operating systems). When you learn Cloudformation those skills don't even translate to other cloud providers. The skills that you learn from managing a server are also incredibly stable and stand the test of time. Bash is older than Docker, the programming language (Golang) that Docker was written in, and likely many of the developers using it.
As an M1 MacBook Pro owner, I'd say the experience is quite frankly superlative. Oodles of power and battery life. Sadly, the RAM isn't upgradeable. So try to get as much as RAM as you can afford. Should help with longevity.
On a M1 Ultra MBP. It's been mostly great. Battery lasts way longer than my previous Intel MBP. The fan rarely comes on. It's much faster. It doesn't get too hot to touch like the Intel ones do.
Issues I've had, any node project that uses a native plugin has had issues. If you're lucky they've updated. If not, .... I haven't seen if there's a workaround that doesn't require the plugin to update. As an example, the canvas npm package uses a native plugin and tries to download from somedomain.org/foo/bar/<arch>/the-bin and since arch is now arm64 it just gets a 404. Note, that issue might have been fixed but I've run into similar issues on other projects with other dependencies.
M2 > M1* in single thread, but in anything multi-threaded, the M1 Pro is better for multi-core, and the multi-core advantages of the M1 Pro are greater than the single core advantages of the M2.
The fact that your video is in Final Cut might give advantages to the M2, but I think for your use cases if the M1 Max is in your budget I'd either get that or wait for the M2 Pro.
There's a few videos on this on youtube and countless blogs. Here's my general take.
I have a company assigned m1 macbook pro 13.3 inch. It's a machine to make sure that M1 mac stuff works and it was the only M1 series laptop out when I started so I've done all my testing on that machine.
Synopsis: It's great, great battery life, operating is slick, can't complain except there is only two usb-c ports and you need one for power.
Would I buy an M series mac for personal use? nope, I bought an M1 ipad, which is an amazing piece of hardware that will only get better with iPad OS 16.
Now enough about me, lets look at why your two choices are:
14" MBP M1 Max Pro OR Mac Book Air with an M2 in it.
Why are those your two choices? First the big boy in the mix ... if you want a massively capable development machine to do all of the development things and it still be a portable laptop then the 14" mbp M1 Max Pro is your choice. The 16 is too big and if you must have the beefier Ultra, you should probably just wait until the new Mac Pro comes out or look at the studio. The 16" MBP is a desktop workstation disguised as a laptop.
So if you're going to go all out with money, then stick with the M1 series, but get the 14" MBP.
If you want the best bang for your buck and don't need all that extra horsepower than the M2 Macbook Air is up for order and starts delivering in a week. It's ultra portable, functional, future-proofed, and better design than the M2 MBP which is your only other M2 option at this time.
> Although after all this I'm still not sure why the M2 MBP exists. By the time it's useful it costs nearly as much as the MBP 14" for the same spec which is far superior. And if you want to cheap it out, the M1 MBA is probably a better deal because it's far cheaper and perfectly adequate.
I would buy an M1 if given the choice. But be aware that you’ll need to devote at least two weekends to compiling your own dependencies. Tensorflow “just works”, but the source code on M1 is closed source(!). Pytorch is relatively ok to compile, but you’ll have to figure out how to build it as CPU only. Jax was painful (sorry to say), but they seem to have recently sorted out their build issues.
Then we get into the hardware roulette. My M1 air has a “pink screen of death” issue (Google it and you’ll find dozens of stories, with no resolution). So get ready for a small chance of randomly rebooting when you’re in the middle of dev work, which is always so-much-fun.
Even with these flaws, I’d still take it. Even LuaJIT seems to work on M1 now. But it’s not all roses like the rest of the comments are saying.
Also fork over the extra $800 for the upgraded ram and disk space.
Try running only Mac Silicon apps and no Intel ones, see if that helps for the wake-up-reboot issue. I kept seeing "Bad CurrentVBLDelta for display 2 is zero. defaulting to 60Hz." in the logs only from Intel-based apps, which, after put to sleep fills the logs so much it can't handle it after waking up so it reboots/crashes. Closing the Intel apps solved this.
I replaced an AMD RyzenThreadripper 1950X with an entry level M1 Mini.
Main things: 1/4 the RAM so I just need to be mindful about what I keep open. That said, Apple’s memory management is amazing, so this isn’t as big a deal as I thought it would be. Use macports. Native binaries. I don’t use Chrome. I use Orion or Safari and those are great. For dev work, I do Bash, Ruby, and x86 ASM. I test the assembly stuff in UTM. Nothing I do is really heavy, except for compiling Linux for random hardware I have as a hobby pursuit.
The only thing I miss is prototyping setups of servers. I don’t have enough RAM or threads. This doesn’t bother me much tho, since cloud pricing has dropped since 2017.
I'm especially interested to hear from longtime Linux users who started using MacOS for the first time.
The M1s are attractive, and can hopefully retire with proper Linux thanks to Asahi. But I'm worried that I'll come to hate it only past the return window.
I admit I made the transition a few years ago. I converted the remainder of my services into containers and haven't "run" linux as a workstation operating system since switching and it's been over a year since I had a linux VM running as well. I have found every tool I used in linux to be the same or better on mac products.
For personal use, my only workstation is a iPad Pro with a keyboard and mouse.
99 comments
[ 3.7 ms ] story [ 199 ms ] threadDocker is still not easy with the new architecture.
I had 2 main issues at first, but they are both resolved. One, if you want to use arm native Python conda now supports arm which is great. The second issue was docker, but it turns out that docker has qemu built in. here is an example of how to use x86 docker images on a M1 Mac.
As a counterexample, I have a friend who wants to do embedded development and FPGA, for his use case a Mac is useless.
My M1 Pro (work computer) is such a leap from my old intel machine. It's wild to be running our services locally with Docker, install Xcode, and take a Zoom call without so much as hearing the fans. Battery lasts all day. Don't know if I'd fork over that much money myself, though.
Wow. My ears started playing a loud phantom fan noise just reading that. No way my 2019 mac can handle that.
Some docker containers are still problematic, but most native software and dev tools work flawlessly.
I bought my M1 MBP around a year ago. It's now 4:30pm, and I've been using it since 10am, sitting at 50% battery without plugging in at all. Everything just works. I even installed Steam and can play some games on it. I hated the idea of owning a Mac and have fought tooth and nail until I finally bit the bullet. It's literally the best laptop I've ever owned and I am never going back.
My gaming rig is a different story, but for productivity on-the-go, there's no comparison.
I use a surface laptop 4 as my mobile workstation, and I like it overall, but the battery life leaves a lot to be desired. I'm OS agnostic, so the M1s caught my attention, but I use the touchscreen so much I'm not sure how happy I'd be with it unavailable to my workflow.
The Mac trackpads are so responsive that they feel every bit as good as having a touch screen.
The build times for a M1 are so fast that it's still a requirement for me though. The battery life for a MBP is amazing - it's almost a whole work day even on full compiling. So it's not really a choice.
Don't know about the scaling, but for window management I find the Rectangle app quite helpful.
I was super excited to get one for work solely because of all the buzz about battery life. But here I'm getting 5 hours or so. Firefox and Chrome are by far the biggest offenders, but I don't do anything special.
Just wanted to give another anecdote.
[0] https://ublockorigin.com/ [1] https://addons.mozilla.org/en-US/firefox/addon/auto-tab-disc...
I leave Javascript off by default on uBO and only allow it selectively when I have something to gain on each website.
The MBP is fine. Before it I had a top-of-the-line Intel MBP which was a detestable piece of shit because of its shameful keyboard. And of course Apple compounded the offense of the "butterfly" keyboard by depriving "pro" customers of an entire row of keys and replacing them with the embarrassing emoji bar. I HATED that computer, almost entirely because of the keyboard.
The newer (old-style) keyboard is merely OK, but it hasn't caused me to pound the shit out of the computer to the point where internal components started to protrude through the back cover. It still lacks a real Delete key, but that's just Apple being petulant babies.
The physical design does repeat an absurd blunder, though: The USB ports are, AGAIN, so needlessly close together that you can't use two adapters next to each other. WTF, Apple. WTF.
Performance-wise, I haven't stressed it too much but Rosetta seems to work admirably. The biggest issue is the unfeasibility of running Windows in Fusion on it, but I guess I'll just get a Windows computer at some point.
What kind of adapters? I have usb-c -> usb-a adapters that fit side-by-side just fine.
"You're posting too fast. Please slow down"
THEN WHY IS THE REPLY BUTTON ENABLED, rude jerks? WTF?
My personal laptop is an M1 Pro MBP and it runs faster, quieter, cooler, and has over twice the battery life.
That said, for both machines I do a lot of c++ compiling and the difference would be far less noticeable if I wasn't regularly running the cpu at 100% for significant periods of time.
Such a little thing makes a world of difference.
Nothing can beat the price/performance of the M chips. There are some drawbacks, but overall it’s the best computer I’ve owned.
I can only imagine that the m2 air with 24gb will be even better. To me the extra weight of the 14 wasn’t worth the extra monitor hookup. The tiny power adapter and no fan airs are where it’s at.
I really hope this isn’t artificial market segmentation by Apple to sell more Pros.
The single external display limitation is a big downside to some of the M1/M2 machines.
The laptop itself is absolutely amazing. The thousand paper cuts with things not properly supporting m1 was just too much to bear.
I think if the projects you're hoping to work on have first class support for Apple silicon you can't find a better machine for love or money. If they don't, then steer clear.
This was almost me in Nov 2020 - Firefox barely worked, Docker was a no-go, Homebrew choked on probably 50% of packages - but in 2022 I can't recall the last time I ran into a Apple Silicon-specific issue.
The biggest incompatibility to point out is VMs. UTM exists, but is more limited in its capabilities and isn't as fast as I'd like. I've switched to using docker for everything instead of the standard Vagrant/VirtualBox setup everyone else at my org uses.
https://asahilinux.org/
Overall 9/10. Everyone already agrees they’re fast af and very capable.
Because of its popularity, there are so many open source Ruby provisioning scripts you can use as a reference when provisioning your own VMs. You can also package up a provisioned VM as what they call a "box" that can be shared with other developers. It also natively integrates with tools like Ansible, Chef, and Puppet which make it a lot easier to manage the provisioning process.
And finally, many of the books and tutorials I've read use Vagrant, so it's much easier to follow along if you have Vagrant installed. For example I was recently reading the book Ansible for Devops by Jeff Geerling, and Vagrant and Virtualbox were used pretty extensively throughout the book.
Also, if you decide to package VMs to use in production it's pretty easy to integrate with Packer, which is another Hashicorp product.
[1] https://github.com/lima-vm/lima
Let's say I have a bug in prod. I just adjust my code, or Dockerfile, or some declarative config (say cloudformation or k8s definitions) and push it, and the CD doesn't say "go to existing machines and update them", it says "spin up containers with this new build and configuration, divert traffic to them, and then remove the old containers when safe". For me, provisioning is not something I want to touch outside of setting rules for autoscaling and saying "start using this new build". So arguments about provisioning (for my usecases) don't help - they sound like adding more responsibility onto me that computers already handle for me.
I don't feel that this declarative and abstract model is necessarily ALWAYS better than the imperative model you get with ansible et al. And I can think of an example: if you just need to run 1 command everywhere, ansible (or chef or puppet) is much faster than pushing a commit and waiting for the build and deployment. Or maybe if you needed a custom kernel. But I've never had an instance where those things were valuable or valuable enough; in all my experiences, fine-grain provisioning and treating servers like pets instead of cattle has never been a better choice (especially given bursty traffic), so I'm trying to broaden my horizons and understand where it would be a better choice.
I used to think managing servers introduced unnecessary complexity until I tried it, and realized it's really not as difficult as I thought. With kernel live-patching and unattended upgrades, I never have to manually update anything. Blue-green deployment is as simple as rsyncing files to the server, starting the updated app on a different port, and then updating your reverse proxy's config to point to the new version of the app. Any decent reverse proxy like Caddy or Nginx will support zero downtime config updates. You don't have to build containers, store them in a registry, or update any yaml manifests. Kubernetes manifests have gotten so complex that developers are inventing programming languages like Jsonett and Dhall to generate configuration files.
Also, the skills you learn from managing servers are incredibly portable. Some of the Unix skills that I've gained from playing around with EC2 instances have actually helped me manage my personal Mac (which is of course a member of the BSD family of Unix operating systems). When you learn Cloudformation those skills don't even translate to other cloud providers. The skills that you learn from managing a server are also incredibly stable and stand the test of time. Bash is older than Docker, the programming language (Golang) that Docker was written in, and likely many of the developers using it.
[1] https://news.ycombinator.com/item?id=16076041
[2] https://instances.vantage.sh/?cost_duration=monthly
Issues I've had, any node project that uses a native plugin has had issues. If you're lucky they've updated. If not, .... I haven't seen if there's a workaround that doesn't require the plugin to update. As an example, the canvas npm package uses a native plugin and tries to download from somedomain.org/foo/bar/<arch>/the-bin and since arch is now arm64 it just gets a 404. Note, that issue might have been fixed but I've run into similar issues on other projects with other dependencies.
I assume most of it will be worked out soon.
(Regular full stack software engineering, occasional graphics editing in Affinity Designer, audio work in Logic Pro, and video in Final Cut)
Here's a review comparison: https://www.youtube.com/watch?v=FWfJq0Y4Oos
The fact that your video is in Final Cut might give advantages to the M2, but I think for your use cases if the M1 Max is in your budget I'd either get that or wait for the M2 Pro.
I have a company assigned m1 macbook pro 13.3 inch. It's a machine to make sure that M1 mac stuff works and it was the only M1 series laptop out when I started so I've done all my testing on that machine.
Synopsis: It's great, great battery life, operating is slick, can't complain except there is only two usb-c ports and you need one for power.
Would I buy an M series mac for personal use? nope, I bought an M1 ipad, which is an amazing piece of hardware that will only get better with iPad OS 16.
Now enough about me, lets look at why your two choices are:
14" MBP M1 Max Pro OR Mac Book Air with an M2 in it.
Why are those your two choices? First the big boy in the mix ... if you want a massively capable development machine to do all of the development things and it still be a portable laptop then the 14" mbp M1 Max Pro is your choice. The 16 is too big and if you must have the beefier Ultra, you should probably just wait until the new Mac Pro comes out or look at the studio. The 16" MBP is a desktop workstation disguised as a laptop.
So if you're going to go all out with money, then stick with the M1 series, but get the 14" MBP.
If you want the best bang for your buck and don't need all that extra horsepower than the M2 Macbook Air is up for order and starts delivering in a week. It's ultra portable, functional, future-proofed, and better design than the M2 MBP which is your only other M2 option at this time.
But is the M2 v2 or is it another v1?
For example, I saw some mention of M2-specific thermal throttling: https://news.ycombinator.com/item?id=31941326 (also mention of slow 256gb SSD?)
> Although after all this I'm still not sure why the M2 MBP exists. By the time it's useful it costs nearly as much as the MBP 14" for the same spec which is far superior. And if you want to cheap it out, the M1 MBA is probably a better deal because it's far cheaper and perfectly adequate.
Some background: I’m a professional ML dev.
I would buy an M1 if given the choice. But be aware that you’ll need to devote at least two weekends to compiling your own dependencies. Tensorflow “just works”, but the source code on M1 is closed source(!). Pytorch is relatively ok to compile, but you’ll have to figure out how to build it as CPU only. Jax was painful (sorry to say), but they seem to have recently sorted out their build issues.
Then we get into the hardware roulette. My M1 air has a “pink screen of death” issue (Google it and you’ll find dozens of stories, with no resolution). So get ready for a small chance of randomly rebooting when you’re in the middle of dev work, which is always so-much-fun.
Even with these flaws, I’d still take it. Even LuaJIT seems to work on M1 now. But it’s not all roses like the rest of the comments are saying.
Also fork over the extra $800 for the upgraded ram and disk space.
Main things: 1/4 the RAM so I just need to be mindful about what I keep open. That said, Apple’s memory management is amazing, so this isn’t as big a deal as I thought it would be. Use macports. Native binaries. I don’t use Chrome. I use Orion or Safari and those are great. For dev work, I do Bash, Ruby, and x86 ASM. I test the assembly stuff in UTM. Nothing I do is really heavy, except for compiling Linux for random hardware I have as a hobby pursuit.
The only thing I miss is prototyping setups of servers. I don’t have enough RAM or threads. This doesn’t bother me much tho, since cloud pricing has dropped since 2017.
The M1s are attractive, and can hopefully retire with proper Linux thanks to Asahi. But I'm worried that I'll come to hate it only past the return window.
For personal use, my only workstation is a iPad Pro with a keyboard and mouse.