I hate that this device is so great that when I look at other options with linux support I just get drawn back to this. It is really frustrating to have such a great hardware be limited by the software, rather the userspace(kernel and drivers seem solid). MacOS is just so frustrating at times. Asahi team's linux support can't come fast enough.
The one I didn't think I would yearn for but am really reminded of everyday are- desktop environments and window managers. My friends couldn't stop praising the UX but even after a long time trying to get used to it I still am annoyed by the application switching keyboard shortcuts, lack of ability to set system wide shortcuts for launching basic things like terminal. I won't talk about the lack of some cli applications I loved because I expected that when I moved(and it is better than I thought). I have tried iterm2, hyperswitch, rectangle. I understand that different systems have different behaviours and I can't expect it to behave the same but I have observed my friends, and others and the level of keyboard driven userflow I can achieve even in something like windows just seems worse here. It's not that it isn't possible but rather the behaviour has subtle quirks that I can't always rely on it. And lastly animations and latency. Even after turning all animations, it just is slow. I was used to having applications open before my keyboard would even leave the shortcut key and here I find myself waiting for things to start. I thought I was being nitpicky until I had to use my 2014 model haswell laptop for something and it just was such a breeze compared to the provenly faster processor and storage of m1. What's everyone's experience like?
Hammerspoon is the answer to all of these. The common solution is to rebind caps lock (using Karabiner Elements) to be “hyper” (cmd + alt + shift + ctrl) and then bind global keyboard shortcuts with that using Hammerspoon.
Setting global keyboard shortcuts on Linux doesn't require you to learn a whole-ass LUA API. It's just there, for all the popular DEs.
Can you give other examples of command line app problems or keyboard driven workflow problems you’re having? I expect people here will be able to show you how to solve them.
The same for other aplications.
You can also, from terminal, do a open -a application_name if you want.
- Ways to permanently disable Gatekeeper
- Some kind of quick setup. On Linux I use a bootstrapping script, MacOS does not offer the same extensibility.
- Real virtualization support like QEMU
- Real container support (if I set up another local Docker host on a Mac I swear to god...)
- Up-to-date coreutils
- A way to install Git without dragging along a few gigs of dependencies
- Ways to monitor my network usage and ensure Apple isn't spying on me
- Real encryption (eg. Apple/NSA isn't holding a master key)
- CUDA support
- 32-bit app execution
- A way to disable the hash that gets sent to Apple every time I open an app
That's just the starter kit, if I sat down with some pen and paper I could probably keep going ad-infinitum.
For me it basically it comes down to this:
Macs are just similar enough to the Linux to fool me into thinking I know what I'm doing. But then things are just subtly different such that nothing quite works. It's like, if you were Satan and your Q4 objective was to design a computer that you could give to me -- a "computer expert" -- to make me feel like a moron every time I try to do literally anything at all on it... Apple computers pretty much hit it out of the park.
--
It's also a lot of little usability things. I thought Apple was supposed to be the usability king? Yet it patently cannot handle simple things like:
* I want "natural" scrolling on the touchpad, but "regular" scrolling when using a plugged-in mouse with a mousewheel. The options are in TWO DIFFERENT settings windows, but changing one changes the other. Why? Even Linux, not famed as the Usability King, had this figured out in 2012.
* I want one of my monitors to be vertical. When I plug them in, it's a coin-toss as to whether or not it will remember which one it is. 50% of the time I have to tilt my head 90 degrees and set the 270* monitor to 0* and the 0* monitor to 270*. In the end I wrote an apple-script to do this automatically and bound it to a keyboard key.
This also drives me bonkers. The reason I think it is still this way is that at Apple everyone is using the Magic Mouse which has touch scrolling on it (you scroll like a trackpad with your finger) and so presumably most never toggle this. Another example of pain if you go off the happy path the apple developers use and keep tidy and clean.
This may not be complete monitoring, but Little Snitch (from obdev.at) can monitor outgoing connections, alert you and let you to block or allow those. Last year when macOS Big Sur was released, this didn’t work for a while for Apple’s programs, but that was later changed by Apple.
nix?
- Some kind of quick setup. On Linux I use a bootstrapping script, MacOS does not offer the same extensibility.
Apple mdm implies that the hooks exist, although I know notthing of using that and it very well might be insufficient.
- Real virtualization support like QEMU
Isn't hyperkit decent?
I agree with the general thrust of your comment, though; just unsure of some details.
2017 article says Apple doesn't have a copy without iCloud enabled, https://www.macworld.com/article/229963/want-to-recover-a-fi...
Said another way, I highly doubt we will see a non-Apple ARM CPU outclass the x86 competition in such a way anytime soon, so saying "never x86 again" might not be very wise. ARM is not a magic bullet.
A lot of people asking for ARM based machines do not really realize that the reason is not because of ARM, but they just want faster/more efficient machines. I think to make a analogy for HN frontend sw devs, imagine a non-technical marketing person going to a developer and saying "I want this website in AMP, because AMP is fast.". And sure, a lot of sites with AMP framework are fast... but that doesn't mean that you have to build a site in AMP to make it fast. You could build a simple site with similar principles and get it fast too. Similarly, not all ARM laptops are fast. Even if the laptops hw is fast, you want something that can efficiently run x86 code as well for compatibility purposes for many years.
Some examples:
- x86 guarantees strong memory ordering on multi-processor systems, which adds completely unnecessary overhead to every memory access. arm64 uses a weak memory model instead, providing atomic instructions with relaxed or acquire/release semantics (see https://youtu.be/KeLBd2EJLOU?t=28m19s for a more detailed discussion). This significantly improves performance all around the board, but especially with reference counting operations (which are extremely common and often a bottleneck in code written in ObjC/Swift): https://twitter.com/Catfish_Man/status/1326238434235568128
> fun fact: retaining and releasing an NSObject takes ~30 nanoseconds on current gen Intel, and ~6.5 nanoseconds on an M1
- x86 instruction decode is pretty awful, a significant bottleneck, and not parallelizable due to the haphazardly-designed variable-length CISC instruction set. arm64’s instruction set is highly regular and easy to decode, so Apple can decode up to 8 instructions per clock (as opposed to 4 for x86 chips). Most sources agree this is why the M1 can have such a big out-of-order-execution window and achieve such high instruction-level parallelism compared to Intel/AMD.
- x86_64 has only 16 architectural registers, compared to 32 for arm64. This means the compiler has a much harder time generating efficient, parallelizable code and must resort to spilling registers much more often.
Apple has a much bigger issue, though. ARM doesn't scale: it's a fundamental conceit of the architecture, one that a lot of people are probably willing to take on a laptop that will mostly be used for Twitter and YouTube. This presents issues for the rest of the market though, and it will be fascinating to see how Apple retains their pro userbase while missing out on the high-performance hardware sector entirely.
I think x86 is pretty terrible too, if it's any consolation, but really it's the only option you've got as a programmer in the 21st century. I hopped on the Raspberry Pi bandwagon when I was still in middle school, I grew up rooting for the little guy here. Looking out on the future landscape of computer hardware though, I really only see RISC-V. ARM is an improvement on x86, but I don't think it's profound enough to make people care. RISC-V, on the other hand, blows both of them out of the water. On consumer hardware, it's able to accelerate pretty much any workload while sipping a few mW. On professional hardware, you can strap a few hundred of those cores together and they'll work together to create highly complex pipelines for data processing. On server hardware, it will probably move like gangbusters. Even assuming that cloud providers pocket half the improvements, a 5x price/performance increase will have the business sector racing to support it.
So yeah, it is a pretty complex situation. Apple did a cool thing with the M1, but they have a long ways to go if they want to dethrone x86 in it's entirety.
> ARM is really old now.
Well aarch64 was announced in 2011 so not really that old.
> Apple’s implementation of ARM is decidedly CISC.
CISC is a description of the instruction set not the implementation.
> ARM doesn’t scale.
No idea what this means but you can get 128 core Arm CPUs and address huge amounts of memory but perhaps you have another definition of scaling.
And so on.
Stuff like hardware primitives for AES/SHA, or the FJCVTZS “JavaScript instruction” don’t make a processor CISC just because they’re specialized. They all encode trivial, single-cycle hardware operations that would otherwise be difficult to express in software (even though they may be a bit more specialized than something like “add”, they’re not any more complex). x86 is CISC because the instruction encoding is more complicated, specifying many hardware operations with one software instruction.
I’m not exactly sure whar all the “cruft” is in ARM that you’re referring to. The M1 only implements AArch64, which is less than 10 years old and is a completely new architecture that is not backwards-compatible with 32-bit ARM (it has been described as being closer to MIPS than to arm32). NEON doesn’t strike me as a good example of cruft because SIMD provides substantial performance gains for math-heavy programs, and in any case 10 years of cruft is much better than 45.
I’m curious as to why RISC-V is different or better? I don’t know much about RISC-V — but looking at the Wikipedia article, it just looks like a generic RISC similar to MIPS or AArch64 (and it’s a couple years older than AArch64 as well). Is there some sort of drastic design difference I’m missing?
Of course the flexibility of the RISC-V model allows approaches such as that being pursued by Esperanto [1] with lots and lots of simpler cores.
[1] https://www.esperanto.ai/wp-content/uploads/2021/08/HC2021.E...
I find it hard to believe that they didn't drop Thumb from AArch64 without a lot of analysis of the impact on performance.
Remember that M1 is just a mobile SoC that work for iPad/MacBook Air. It's exceptionally great so people tend to confuse M1 is targeted higher end. 16GB max is fine for a mobile SoC in 2021. I can't wait M1X.
If we were to go back in time to before apple introduced it’s own SoC and before it had acquired chip design start ups, even before than ARM was on the table as that is what the iPhone ran.
RISC-V wasn’t a thing back then. So the alternatives were MIPS, Power or maybe a home grown instruction set.
So we just have to go with what the reality is now. The apple silicon has been well optimised for performance per watt. And it runs on an ARM instruction set that apple itself helped in the design of.
Also non Apple Arm CPUs do outclass x86 in a huge segment of the cpu marketplace - on smartphones and tablets.
I’d don’t think that anyone previously has thrown the amount of cash at laptop / desktop / server Arm designs that Intel spends on x86 designs - we are now seeing a number of firms having a serious go (AWS / Ampere / Qualcomm / Nvidia possibly) so with Intel fighting back on its process issues it will be an interesting few years!
Since almost (all?) mobile phones use ARM I can see a similar process of adapting other ARM processors to the PC market.
But of course Apple is so far ahead that we really don't know wether and when there will be a competitive alternative, so it may as well be a streamlined x64, or a new ISA, sure.
It seems to all depend on some very experienced CPU design teams and it seems that actually Apple lost some of them in the last year, I would track these news to get a better model of predicting the future than the ARM/x64 divide.
Would like to use linux again on the desktop, but macos is so nicely integrated with everything. The desktop experience is so much better than the gnome or kde version of the day. I code embedded c and web (python). Also do the occasional cad drawing and 3d printing. All this software just works on mac. Even corporate slack works okay, ms teams as well. Word, even! It sucks to be a linux desktop user or fanboy in professional environments. Not a mac fanboy, would switch if there was something better.
One drawback is that docker is just awfully slow compared to running it on native linux.
A reference to the freedom from corporate bondage you trade away for convenience in macos.
(I don't have any significant issues with Ubuntu Mate, but I don't use it for many things however.)
It seems that virtualized Ubuntu with UTM works ok: https://youtu.be/hnwK-nkXolc
If lenovo still made thinkpads like they used to: reasonably priced, easy to upgrade and repair, with large external batteries, and with top-notch keyboards, I might have opted for a thinkpad still. But they don't make those. All new thinkpads have so-so keyboards, they all have internal batteries (and often too small), and they're getting harder to upgrade and repair with every generation. Lenovo has chosen to chase after the macbook design, and that makes me less likely to buy thinkpads, because a thinkpad will never be as good a macbook as a macbook.
I've seen this a few times and am curious: I got a Thinkpad at the end of 2019, and the keyboard is waaay better than the various HP, Dell, and Asus laptops I've had in the past. Did I get lucky or were all of those just way worse than I thought? What's the difference between old and current Thinkpad keyboards?
This article is a good summary of the keyboard situation: https://www.notebookcheck.net/X1-Carbon-Gen-9-Lenovo-has-to-...
Apple is chasing a target, and so does Lenovo. But Lenovo is chasing the way a MacBook used to be, which is good in my opinion.
And Apple is skating wherever THE PUCK ARE THEY SKATING NOW SRSLY
MacBook Air M1: 49.9Wh | MacBook Pro 16" 2019: 100Wh
The 16" MacBook Pro is rumored to have double the performance CPU cores, and either double or 4x the GPU cores. So for tasks that are strictly GPU bound, battery life could be about half of the M1 Air.
Considering that this is the absolute worst case scenario battery life (assuming of course that they don't make the battery smaller), the new 16" Pro is looking pretty exciting.
The point I was making was that e.g. a GTX 2070 desktop has around the same compute power as the mobile version, but the mobile version uses much less power. It does this by being beefier (2560 CUDA cores mobile 2070, 2304 CUDA cores desktop 2070), but running at a lower clock.
Low end Ryzen 3 laptops have four cores, single thread performance within a few percent of the fastest processors in existence and will do something like render a web page at a speed indistinguishable from instantaneous.
The fastest laptops have twice that many cores. And if you actually try to use them, either half of them are low performance cores or they all clock down to a speed that makes them equivalent to a quad core desktop.
Whereas for the same price as a high end laptop, you get a desktop with 12 or 16 high performance cores and >16GB memory which is so much faster for intensive tasks that the laptop should be embarrassed to show up.
Why should I do anything other than buy an inexpensive laptop with a good screen and keyboard and a fast desktop I can access remotely for any kind of intensive workload?
using a GUI over remote kinda sucks imo. even something like text editing is not as smooth as it would be locally. photo/video editing and especially anything 3D (CAD, gaming, etc.) is really painful.
there's also the security implications of enabling remote desktop. it's not a showstopper, but it's something I'd rather not worry about for my personal computer.
and finally, if you have the money for a powerful desktop and a powerful laptop, why not get both?
anyways, I just gave away my old xps 13 and replaced it with a zephyrus g15. it's not nearly as fast as my 9700k + 1080ti desktop, but it runs most games acceptably at 1440p. c++ compilation is very fast, though obviously not comparable to an overclocked 9700k. the portability and overall fit and finish aren't as nice as the xps 13, but now that I'm not taking the laptop everywhere as a student, I don't find it to be much of a compromise.
The real answer for why most do not do this is that IT-organisations are already under-dimensioned and over-burdened and it’s cheaper to maintain a small set of laptop models (which most likely are bought with some sort of support contract) than it is to assemble and support desktop computers.
Outside of software work I run Logic as my primary DAW and it’s like there are no limits. It’s fantastic.
Crunching some numbers, some benchmarks seem to place the M1 as three times faster. Through raw numbers, the M1 seems not much more "performant per watt" than the Pentium Silver - only slightly better. And, for a laptop, the importance is (in general) more on energy efficiency than in speed.
Edit: danieldk rightly noted below that TDP is a "high load consumption estimate". Official data for the "situational" consumptions are a bit harder to find.
That's the TDP. For light daily tasks (casual web browsing, e-mail, etc.) the M1 primarily relies on the energy-efficient Icestorm cores. While typing this comment and having some applications in the background (like Slack), package power use hovers between 40 and 300mW (roughly 100mW on average).
The energy efficiency of M1 MacBook is remarkable. My wife had an M1 before I did. She was in some video meetings on battery for some hours, I wouldn't believe her when she told me she still had 80% battery remaining.
Really? I feel like that's just having any 2021 laptop. I have a 13" Linux laptop with the i7-1185g. I'm not going to pretend it matches the performance/watt of an M1, but a few hours of video calling makes a completely negligible difference to battery life for me. 20% for a few hours of video calls just feels baseline.
I've never been in a situation where I needed to get back to a charger, and can happily go the whole day of development and meetings with charge left over to spare.
I have been trying getting some numbers from `powerstat`, intrigued by danieldk's results of 0.1W consumption: I am getting 3.7W during this browsing session. That 0.1W must be related to the CPU only. The result from `powerstat` is aggregate (if I raise the display lightness to an uncomfortable level the consumption raises to 4.5W). I do not know how to only get the consumption of the CPU. Trying to check...
Edit: I am really not sure how to disaggregate consumption and find a number comparable to that 0.1W. Maybe, danieldk, you could provide instead the aggregate consumption - the total (not just CPU) average consumption of your system? And eertami? Just to get an idea.
I had a brief Linux/Windows excursion with a ThinkPad T14 Ryzen laptop. Three hours of video meetings was enough to drain most of the battery in Linux (worse power management, plus no hardware encoding/decoding in some video meeting apps). In Windows, it lasted a bit longer, but the battery would definitely be drained 50%, often more.
The ThinkPad was not a lemon. This seems like pretty normal drain if you look at people's experiences on the web.
>Official data for the "situational" consumptions are a bit harder to find.
A single HP Core uses ~4W at peak. It's performance per watt is quite far ahead than anything in x86 at the moment. Intel AlderLake might help a bit. But will still be behind in pref / watt.
It would be interesting to get a "powerstat database" of different systems for comparison.
If this is the main benefit of M1 I’m likely to be under welmed is what I’m thinking. I’ll upgrade to it next, but it’s not going to force me to upgrade. I expect at some point Apple will start making my device suck via MacOS updates like they’ve done with iOS and those devices.
I bought an M1 MacBook Pro early this year and it is a beast, performance wise.
I just started a new ML job and my company sent me a new Intel 17” MBP, and while it is beast-like, not a beast.
One trick to M1 is installing the M1 ARM version of Homebrew, so programs and libraries installed are M1 native.
I've used ARM based chromebooks. As well as ARM embedded boards running linux as a desktop. But I am intrigued by the Mac Mini M1 with 6K out. I wish I could get a demo of the 6K 32" Pro XDR Display. At $5K its hard to justify, but it looks like the only 6K monitor available right now ;)
If only it did not come packaged in a sissy mirror powder-box I'd love it. They flimsy keyboard with no travel, and the fragile glossy screen with no touch/stylus are deal-breakers for me. I did try use those at the store, no good.
https://www.cpubenchmark.net/compare/AMD-Ryzen-7-PRO-5850U-v...
Both have TDP of 15 WATT.
I have Thinkpad P14S Gen 2 (AMD) and can work on the machine the whole day without charger and it never ever get hot.
Yes, you missed something huge.
Apple Silicon M1 or nothing. It's just too good. Low power consumption allows the laptop to actually be used as a laptop. The power use-to-performance ratio is unmatched by anything on the market. Apple is breaking us free from decades of stagnation on the hardware front.
Nothing else on the market comes close. I expect this to change in the future. Will happily switch to a linux laptop once an energy efficient alternative to x86 becomes mainstream for linux. There's just no way I can go back to x86 after tasting the sweet nectar of M1.