Apple Silicon: The Dev Tools That Work and Don’t Work (Yet)
source link: https://medium.com/better-programming/apple-silicon-the-dev-tools-that-work-and-dont-work-yet-5288452b9b4a
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Apple Silicon: The Dev Tools That Work and Don’t Work (Yet)
A useful checklist for software engineers on macOS
The new Apple Silicon Macs have been out for a while now. The machines have shown drastic processing power and battery improvements while being at the same price point. As a result, most tech reviewers have no issue recommending them to people for everyday use.
However, the story is different for software developers.
There are currently two main concerns with the new lineup. First, there’s limited external monitor support. The new M1 MacBook Air and MacBook Pro only support one external monitor via Thunderbolt 3. The Mac mini, which does not have a built-in monitor, supports two external monitors via a Thunderbolt 3 port and an HDMI 2.0 port. For people who require more external monitors for development, this could be a dealbreaker.
Secondly, and more importantly, people are concerned about the availability and performance of development tools on the new ARM-based machines. Personally, I am not worried about their performance. Apple tools, such as Xcode, run amazingly, but even x86-based applications running on Rosetta 2 have been shown to outperform the current Intel-based MacBooks. My real concern is that many popular development tools simply do not work on the new MacBooks.
To help you to decide whether or not you should make the switch, I have compiled a list of tools and their status below:
Disclaimer: I do not currently own an M1 MacBook. This is just information I have gathered online.
Virtualization Software
- Docker: Not working. Native support won’t be ready before February 2021 due to Golang dependency. See the official blog post.
- VMWare: Not working. Native support on the way, but no timeline yet.
- Parallels Desktop: Not working. Native support on the way, but no timeline yet.
- VirtualBox: Not working with no news of whether or it ever will be available.
Tools
- Homebrew: There will be no native support for months to come. It can be installed via Rosetta 2, but expect a “very broken experience.”
- Eclipse: Works on Rosetta 2.
- Visual Studio Code: Works on Rosetta 2. An experimental build for Apple Silicon is available. Issues can be tracked on GitHub.
- JetBrains IDEs: Should all work on Rosetta 2 (e.g. IntelliJ, PyCharm, WebStorm), but not natively. See status on JetBrains.
- Android Studio: The IDE works, but Android emulators do not (source, source).
Languages
- Java: Works natively.
- Node.js: Works on Rosetta 2, but not natively. Status tracked on GitHub.
- Python: Should work natively by the looks of this issue.
- R: Works on Rosetta 2, but not natively. See the official blog.
- Golang: Seems buggy on Rosetta 2, but native support coming in February 2021.
- Rust: Works on Rosetta 2, but no timeline for native support.
Frameworks
- .NET / .NET Core: .NET 5 works on Rosetta 2, whereas .NET 6 will work natively.
- Flutter: Works on Rosetta 2, but you’ll need to develop on a physical device. See the official Wiki and the issue on GitHub.
- Electron: Supported natively in 11.0.0. See release note.
Libraries
- Tensorflow: Supported natively by Apple’s private forked version of Tensorflow.
Conclusion
To sum up, I am happy to report that most code editors, programming languages, and frameworks are working well on the new MacBooks. However, there is a major deficit in the support for virtualization software, which will likely be the case for months to come. If your development workflow depends on these tools, you should definitely hold off on switching.
Thank you to all the nice folks who have shared their development experiences online, including DevOps Directive, Attila Vágó, David Fekke, and many others who I have linked to above.
If you have any information or corrections, please share them in the comments. I’m happy to modify the list. I hope this has helped!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK