The machine itself?
- Faster than blue blazes
- Dead silent
- Cold to the touch (even when cranking)
- Has excellent screen and keyboard
- No touchbar
- Has bonkers battery life
- Comes with tiny a/c adapter that charges it quickly
When I say fast I mean desktop processor fast. It hauls ass.I do all of my development remotely via ssh and local forwards so the different platform doesn’t affect me at all.
Kinda bummed that I can only hook one LG5k display in at a time but whatever, that is kind of a fringe desire anyway. If there was a 14/16" version I'd throw money at Apple again.
Once I compared zoom using 120% cpu on my intel Mac to 30% cpu on my apple silicon Mac it was game over. The processors are just more efficient in so many ways. I've been pretty jaded on hardware recently but this made me sit up and go "holy crap" everything else just became obsolete.
Unless you have something x86 specific you need to be doing locally or need a huge screen do not hesitate to buy this machine. Apple has knocked it out of the park.
> I do all of my development remotely via ssh and local forwards
I do a little with SSH tunnels, but not much. Do you mean you have it set up so that on your Mac you can go to localhost:8080 (or whatever) in your browser and it will actually go to the remote machine?
Host dev
HostName <ip_of_dev_box>
User <my_username>
ForwardAgent yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_m1_air
LocalForward 8443 localhost:8443
LocalForward 8080 localhost:8080
LocalForward 8065 localhost:8065
LocalForward 3000 localhost:3000
...
Those line's effectively mean forward my local port 8443 to the remote host's 8443. The local port + remote port (and even the remote host) don't need to be the same.Since it’s forwarding a TCP port your aren’t limited to forwarding just the web traffic either. I forward:
- Database ports (run mysql or psql locally for example)
- Docker socket
- Backend api ports
- Redis port
- Webserver port
And more...Then you just use local clients as if those things were all running on your local machine
Highly recommended.
:)))
However, I am greatly disappointed in the fact that I cannot use both usb-c for displays, only one of them. I did not know of this limitation until I discovered things were not working as expected.
Everything is super responsive, it's far better than the 2014 mac mini (4GB of ram) with 2020 SSD.
Rosetta 2 seems to work without any hitches so far.
I tried running some iOS apps, but it seems the ones available don't run all that well. From the ones I could install, it is nice to receive app notifications!
I don’t mind what they did on phones with the headphone jack, because they provided an excellent alternative. On MacBooks, they just take away ports without a solid replacement.
I use a 15" MacBook Pro and a Caldigit TS3+ – more expensive, but I have a single cable supplying power, a bunch of USB ports, Ethernet, audio, an SD reader and 2x4k monitors. It pretty much feels like magic and has been completely flawless. It won't run three screens though – I do sometimes use a third myself, but that needs an additional direct HDMI -> USB-C cable.
Can you explain this a little better? I have a MAc Mini 2014 lying around that never got to put to good use (I inherited it when my father died) and one of my daughters tried to use for video editing but deciding against because of the memory limitations.
Would you say even thought with the little RAM it is still good?
To get around that I’ve tried using both Spotify and discord in browser, and occasionally Spotify will cut out for a few seconds.
At one point I resorted to using xquartz to run a few things remotely. It was.. okay but frankly vnc performed better.
- The battery life is great.
- Something I wouldn't have thought is how much I enjoy that the machine is not heating up under stress. Difficult to describe, but that is really really nice
- I have the MBP and the only time I heard the fan was when I compiled the Rust toolchain.
- Tried to run Linux in Parallels but that didn't work (some sort of weird error, didn't investigate further)
- Within Xcode/Swift everything works as expected, just much faster ;)
- My M1 has problems when I'm connecting my external 5K display. It works great, but when I put the M1 to sleep and wake it up again it can't find the display anymore. Even plugging it in / out doesn't help. I read somewhere that that'll soon be fixed with a software update.
- I had higher hopes for the ability to run iOS apps. I really wanted Netflix and Amazon Alexa to work. I hope they'll reverse their stance to not support M1s at some point.
Overall, I'm very happy with the M1, but I still have a 2018 Mac mini that continues to be my main machine. I bought the M1 because I have an upcoming Mac app that I've worked on for ~2 years and I wanted to make sure it works on M1 (https://hyperdeck.io).
e.g. Those who never closed their apps before, kept several browsers with several dozen tabs, Note taking apps, IDE, VM etc. all the time.
Is lighting fast opening of apps on M1 = Never having to close the apps in any machine with large RAM?
You don't start to feel the 8GB until you:
* have a lot of tabs open in Safari (like ~30+)
* have heavy web apps (GMail & Outlook, I'm looking at you)
* run a virtual machine (Only so much you can give a Parallels instance w/ 8GB)
* run some known performance & memory hogs (Slack, Teams, etc.)
* vpn seems to slow things down a bit
I generally will close down apps when I don't need them (but that's _always_ been my habit). I do find the M1 to be fully sufficient (and still faster than my previous MBP) when doing my day-to-day (including VS Code, JIRA, Slack, Xcode, Node, etc.). I also use my M1 for music performance and composition, and that's worked just fine for my purposes (but so did the previous MBP). I will (as I did before) switch contexts by closing apps I don't need, so it's hard to say if apps from development impact the apps for music or not; they rarely run side-by-side.
Things that have greatly improved my productivity:
* This thing is as cool as a cucumber, and absolutely sips its battery. This means I can be more comfortable taking my MBP to the couch, or to the patio (when it was warm) and not worry about watching the battery %.
* This thing _in general_ is much snappier. Native apps load quickly, and performance in the apps I use is about twice that of the previous MBP.
* I can type on this keyboard!
* Using a single external monitor is fine; I work from a couple of locations, and both my Dell P2415Q and my LG 24MD4KL-B 24" Ultrafine 4K work fine.
There are edge cases here where the M1 falls short:
* I can slow the poor thing to a crawl for a few seconds if I attach a 4K monitor and then try to AirPlay to another 4K display. It catches back up and is generally fine after, but you see the beachball for a while.
* Lots of tabs in Safari will cause slow tab switching, and some web sites just chew through CPU. Battery life is still _way_ better than the previous MBP, but it definitely impacts the feel of the device.
* Bluetooth mice -- ugh. I bought a Logitech MX ergo and had to switch to using the receiver instead because the MBP bluetooth felt so laggy.
* Most iOS apps just aren't well suited for the device. Apollo (for Reddit) works pretty well, but even that has its quirks where sometimes keyboard shortcuts will just stop working.
* VMs. If you run Windows in Parallels, you _will feel it_. I do not run VMs all the time for this reason, but spin them up and down as needed.
Thank you for your time writing this detailed comment.
Few things which caused degraded performance were obvious e.g. tabs, VM.
But things which surprised me,
> * vpn seems to slow things down a bit
With great single core performance and WiFi-6 I would have expected networking to fine.
> Bluetooth mice -- ugh.
Digging further, Bluetooth/WiFi/USB issues seems to documented by others as well[1] unfortunately these gets buried under other reviews following a common narrative for M1 macs.
Maybe you should try install "Logitech Options", because I did that immediately on the first day, which might have fixed it.
I can't exactly explain how or why, but it seems to enforces discipline by reducing task (and context) switching - so much that I got myself another laptop with 4Gb.
One advantage of having it is that the company I work for has a very international and diverse user base, but gives us developers super modern machines. Some developers tend to overgineer and cause performance issues on slower computers. With an older laptop I can understand better how the app will be perceived by users.
In my experience with 16GB Intel Macs for years, I have never had memory problems. I'm sure there are some large data migration cases which could make it a problem, but for my typical development (1-3 instances of a JetBrains IDE open, PostgreSQL and MySQL servers running, Docker running, sometimes even VirtualBox running, half a dozen or more terminal sessions, 1-5 Rails apps running - all of these simultaneously) I have been fine with 16GB.
If anything does start to create memory pressure, it's usually Chrome or Firefox after they've been open for weeks (since my laptop uptimes are usually 30-90 days), with far too many tabs open.
If you don't need it, you don't need it but to say 16 gigs on an M1 is somehow "better" seems silly to me.
That video is at: https://nickjanetakis.com/blog/for-the-time-being-16gb-of-ra...
The TL;DR is 16GB holds up really nicely in most cases. That's also with running WSL 2 which is something you wouldn't need to do on macOS so in theory memory usage should be even more efficient on macOS.
My biggest complaint is that it doesn't warm my lap. The battery life makes up for that though.
My other computer has a 3900x and it's been getting very little use even though I'm homebound.
May I recommend investing in a cat
I've been unable to get native openblas yet through homebrew, though havent tried recently.
For deep learning inference I'm using Vulkan/moltenvk/ncnn got it to work and was able to hack around.
- VS Code Insiders works well for Web, Nodejs, and Ruby.
- iTerm, Alfred, and Dash all work as expected.
- Homebrew support is excellent.
- Only a few issues with needing to re-install updated Ruby gems or Nodejs packages due to incompatibility issues from native C extensions, i.e. FFI (ruby), Sharp (nodejs), libvips (c++).
- CPU intensive tasks are very fast compared to a 2015 MacBook Pro.
- Input/Output is limited, and you will probably have to buy a dock and deal with display issues if you want more than one external monitor. I am still dealing with this.
Overall I would recommend, compatibility is 95% excellent. The feel of the Mac is satisfying and problems can be solved within an hour most times.
If you need many monitors for your work, you many want to wait until the compatibility improves, or buy a dock and roll the dice.
I am wanting to get virtualbox running though
https://github.com/evansm7/vftool
Still waiting on native VS Code but rosetta works fine.
Recently after several big apps like Chrome, iTerm and Slack updated to native binaries everything has been _very_ smooth.
I use docker heavily with zero issues - arm64 or amd64.
If you have the arm64 openjdk installed from Azul, you can edit out the dependency from the cask and it works fine.
Also the 16" was much more expensive, but and it has much shorter time on battery - but I already paid for it and I'm usually close to a power plug anyways.
Maybe I'd use the M1 more if zoom was less prevalent.
Obviously I can't run my intel-based VMs, but I was able to run all my web development toolchains: Django, Vuex/Flask, PHP, Postgres/MySQL/SQLite.
I also play games: mostly KSP. The 8GB RAM isn't enough for a small KSP save (a dozen flights, a few hundred parts), and I had to restart KSP every couple of hours due to memory pressure.
Best computer I've ever owned, but I've already killed one inside two weeks of owning it and the replacement is going out the same way: something in my environment or in the way I use it caused the M1 to kill itself.
It starts off as the occasional panic/reboot. Continues to manifest as any activity that requires touching the disk ends up locking the computer up for tens of seconds (spinning beachball cursor, but you can't move the cursor with trackpad or external mouse). Ultimately the MacBook just dies in the middle of whatever it was you were doing, and nothing you or the Apple Genius can do will convince it to boot again.
- Cross-compiling code written in Go (latest beta is native ARM) takes less than 2 seconds (total) even though in that time it is building all 4 platforms (Linux, Windows, Mac ARM, Mac Intel).
- VS Code is more responsive than the Ryzen 7 Pro was (obviously subjective). The Insiders build is native ARM.
- DotNet 5 (Core, which is Intel only until .Net 6) builds apps as fast as the Ryzen 7, and running my own C# web sites/services is indistinguishable from it.
- After decades of coding, 2 of them with C#, I'm fast. So I flip between VS Code, Terminal, and Brave, at a very rapid pace as I iterate code. Not once have I been slowed down on this 8GB machine.
- Node and Python are working great. Node via Homebrew is ARM. Python 3.9.1 was already installed (I've not checked if it is ARM as it is behaving perfectly).
- Running `npm install` subjectively feels far faster.
- The keyboard is very good (not ThinkPad quality, but still better than most). It's using the new type that the 2020 Intel Air got, not the one from the last few years with all the issues.
- The keyboard backlight keys are no longer there, so unless you open up the preferences pane you have to rely on the auto-ambient-sensing, but that is working perfectly.
- Charges off any decent USB-C charger, not just the Apple one it comes with.
- Developing for a full day of combined Go and DotNet Core eats about 40% battery. Probably only that much because Core is under Rosetta. Still runs cold though.
- It never heats up, except for when using the non-ARM Go in which case it occasionally hangs and if I don't kill Terminal it starts eating 1% every few minutes. Nothing else has misbehaved at all.
As an aside, and I know you were only asking about dev work but it may help provide context to others, running DiRT 4 (rallying) on it for an hour only used about 4% of battery life, operating at high res high quality with no lag, and the Air never even got warm. The amazing thing about that is that this was running under Rosetta.
So this was emulating Intel. Running a game better than the Intel Air 2020 did, whilst under emulation, on the cheapest M1, silent, cold, using only 4% battery for an hour. Almost unbelievable.
EDIT: It also plays Monument Valley (iPad or iOS version, not sure which) perfectly, in full screen with mouse support. Bonus.
Normally though, I’ve had battery life hit up to 22-24 hours in light usage and the battery doesn’t drain much while it sleeps so that can sometimes mean multiple days of battery life.
I find for programming the biggest limitation is the 13” screen when on the go, as it has been an adjustment for me from having a larger 15” or 16” screen. I’m looking forward to seeing the new 16” Apple Silicon arrive in June, if you can believe the rumours. Apparently they’ll be adding native ports for HDMI. Cross fingers that it natively supports HDMI 2.1 for example...
I develop almost exclusively in Rust. Compared to my $1800 work MacBook Pro (early 2020, two fans, 16GB RAM), all my Rust projects literally compile twice as fast on 1.49.
The desktop seems snappy, but I haven't left it on long enough to see if it slows over time. Very satisfied with it so far!
The #1 problem is external monitor support. I use a Seiki 4K monitor. If you unplug it, the laptop regularly becomes unresponsive and kerneltask eats all your cycles. If it sleeps with a monitor on and wakes with it off, that’s almost a sure beach ball.
Rumors are that a fix is coming, but you never know. You can see from the other comments that in general external monitor support is erratic, and that’s very bad for a 13” laptop. I’ve taken to rebooting between monitor unplugs. Very obnoxious and I’m infuriated having to do it.
But then when it all works, it’s pretty sweet, so all is forgiven. So basically, it’s a slightly abusive relationship. Buyer beware.
Managed to compile FreePascal and Lazarus for M1 (aarch64); was fairly straight forward.
I’ve been playing / prototyping with FPC/Lazarus over the holidays so it’s nice to run without Rosetta.
Compiles are super fast, but of course fpc/Lazarus is pretty quick already. ;-)
I have tried the Docker beta, it runs well, even with 8gb, but being limited to ARM images limits its use.
I span up Hasura last week and it worked fine - there will be a speed impact but I couldn't notice it for that use case.
Main thing: it just works, silently and quickly!
This machine is so super nice. The keyboard is awesome, the dedicated emoji button is useful. But the cherry on top is insane performance and insane battery life.
To me, this machine is to other laptops as the iPhone was to all smartphone before it.
Battery life - I had bigger expectations :) , it’s indeed nice but still seems to run off quicker than reviews and reports I have read.
Compiling - that’s where it really chimes. I actually get better build times than my desktop 10700k machine (both with Xcode 12.2 and compiling same archs.
The hiccups, As we develop audio plug-ins (which are dlls). it seems that Apple now has extra XPC services ‘sandboxing’ those. (also for native arm64 binaries). So far, so good. but... with extra hardened runtime, it’s not debuggable! so unless we go the SIP off way we cannot debug under it (which is needed since it might behave differently).
I think you should focus the questions on what development tasks you expect. Since people developing for web will have different hiccups than people developing native macOS or iOS.
It’s still an ‘insider’ machine. :) Many major apps are still insider or test/tech builds. Docker, Parallels, Android Emulators, VS Code, etc...
TL;DR - it’s the bleeding edge. prepare to search workarounds for tiny issues while installing.
having a machine not frying your ‘laps’ and silent (no fan) while out-performing my desktop 10700k in many tasks is quite amazing.
Super happy with the keyboard, performance is superb. No airflow, sometimes it gets a liiiitle bit warmer. Nothing hot or warm. My previous one was a mbp 2013 16gb.
Performance is buttery smooth, super fast..
I also expected more from the battery, but I think that might be because of chrome :-)
The M1 is not so great if:
- You want to develop real-time raytracing. The M1 using the Metal API does 3.6 FPS (20.1 million rays per second) while the RTX 2070 does 135.5 FPS (757 megarays/sec) on one benchmark: https://www.willusher.io/graphics/2020/12/20/rt-dive-m1
- You need reliable ECC memory and/or a corruption resistant filesystem like ZFS/BTRFS/ReFS. (You can get ECC on serious Thinkpads (X1/P15/P17), Dells, and HPs designed for science and engineering, and also RTX graphics, Cuda machine learning, etc., and run both Windows and Linux.)
- You need hi-performance x86 Linux VMs to compile and test your production back-end code locally on your device.
- You need a multidisk RAID drive configuration (available in laptops above mentioned) which allows you to keep working if one disk fails.
- You need to be able to quickly and inexpensively field-service/replace a failed disk drive, bad memory stick, broken screen, or damaged keyboard.
- You need to be able to quickly swap an old battery for a fresh one. (I replaced the battery in my MacBook Pro when it swelled up and almost cracked the trackpad glass; I had to use acetone nail polish remover to release the adhesive Apple uses to glue the battery into the case. Apple uses glue for everything these days and opposes right-to-repair legislation.)
- You need to be able to use portable graphics APIs such as Vulkan.
- You need to run industry standard CAD/CAM applications performantly and cost effectively.
- You want to develop VR applications.
- You want to run an 8K display. If you see a 280dpi Dell 8K next to a ~220dpi Apple 5K/6K you see there is no comparison. The Apple "retina" renders font edges softer than print.
- You need a device your device vendor allows you to configure to not phone home to said device vendor's servers. If you buy Windows Enterprise or Red Hat Enterprise or Ubuntu this level of privacy is officially supported. Apple aggressively markets itself as pro-privacy but does not offer this: your M1 will be sending quite a few packets to Apple-owned IP ranges.
- You need a device you can constructively criticize on internet forums when it doesn't work well for doing anything other than desktop-and-mobile Webkit webdev and Apple App Store development. If you ever need to share your frustration with your M1 on Reddit or HN you risk instant downvoting.
It doesn't say "8 or 16GB" and the button is "Select", and not "Customize" or similar. Appreciate the pointer.
Where you can run into issues is architecture support. I'm running Node natively, but this means that some packages that don't support ARM will fail to build properly. I've been able to work around/do without for now, but depending on your use case, it could be an issue, if you want to run Node natively. (I do not have a feel for Node via Rosetta 2 performance.)
Things that rely on disk speed like npm install are much faster, though.
I tried upgrading some projects so they could run arm native, but it some cases it would have forced my colleagues to update their OS since such-and-such updated library dropped support for their OS version.
I briefly went down the path of having a patchwork of arm and x86 stuff running together (like having webpack be arm native but the rest of the project not) and it was lots of fiddling. If I wasn't careful to segregate x86 and arm into completely separate shell environments, I'd end up with ldd trying to link to shared libraries with the wrong arch during [brew, npm, bundle] install. It was more trouble than it was worth.
The battery life on the MBP is amazing.