Development Setup for an M1 Mac (2023)

This post is a bit divergent from my usual write ups, but I know a few people off hand that are looking to upgrade their macs, and are a bit apprehensive to do so. Well – I’ve gone through the pain myself, so you don’t have to!

A bit ago, I got the opportunity to upgrade my work laptop to an M1 MacBook Pro. And yes, it has been painful. But also, it’s been worth it. I’ve gotten past most of the pain, but it took me a while to sit my lazy self down and figure out a workflow that works for me.

This isn’t a post to convince someone to upgrade, or to not upgrade. This post will not include how I setup my terminal or zshell or editor for regular development. This is me just sharing how I’ve setup my machine for development specifically for working on an M1 machine. I focus on Python development, but parts will help any type of development.

What’s Different About This Post

There are many write ups on how folks setup their Mac for development. However, very few (if any) setup their computers to make use of the M1 processor – many just use the Rosetta emulator for everything.

I’ve created a split setup, which tries to take advantage of the tools and packages that have indeed been made available for M1 machines, and use an emulated x86 environment when not.


  • I focus on setting up zsh with Homebrew, pyenv, pyenv-virtualenv, and pipx. However, the approach used can be applied with bash or fish, for Ruby’s rbenv, Java’s jenv, Node’s nvm, anything that’s essentially path management.
  • I specifically avoid using conda as I’ve found conda and virtual environments do not play nicely together. I’m sure conda can be helpful for some folks, especially if only working in science-, math-, and/or research-related projects.
  • I may be missing some steps; it was months ago that I got this computer. I apologize! But I trust y’all are smart to figure out what’s missing.
  • My approach may not work for you and your workflow; or may not go far enough for you. Feel free to use the comment section to share what you’ve done differently.
  • See Miscellany for tidbits on Docker, and Tensorflow.
  • I’ll try to keep this updated as I discover new quirks.

Step 0: About This Mac

To start, here are the relevant details of the machine I’m working with, as of the date of this post:

  • MacBook Pro (14-inch, 2021)
  • OS: Monterey, 12.4
  • Chip: Apple M1 Max

Development Setup for an M1 Mac (1)

Step 1: Rosetta 2

Rosetta 2 is an “emulator” or a translator for software built for Intel-based processors to run on Apple’s Silicon/M1 processors.

While many apps for macOS have transitioned to running on M1 machines, there are still a lot of non-user-facing (a.k.a developer-facing) software and tools that do not play nicely. For instance, for Python, there are many packages with C-extensions whose binaries are not yet built for the M1, causing a lot of headaches (I’m looking at you, grpcio, tensorflow, librosa). Then there’s Docker, which will run fine on Apple Silicon, but can cause frustration when trying to build & deploy to a non-M1 environment. Enter: Rosetta 2.


In a terminal, run:

softwareupdate --install-rosetta --agree-to-license

Optional Step 2: iTerm2 for Rosetta and Native

This step is entirely optional. However, if you choose to skip this step, you’ll want to do Step 3.3.

You may find it a lot easier to have two copies of (or, one that runs with Rosetta, and one that does not. Having both makes it easy to visually separate which environment you’re working in, as you can now customize the look and theme of each terminal app.


  1. Open Finder to /Applications (or /Applications/Utilities if using
  2. Create a copy of (or Name the copy (or, or whatever that makes sense to you).

    Development Setup for an M1 Mac (2)

    (Video) How To Setup A MacBook Pro M1 For Software Development

  3. Right-click on the new Rosetta terminal copy, and click “Get Info”.

  4. Check “Open using Rosetta” then close the “Get Info” window.

    Development Setup for an M1 Mac (3)

  5. Open the Rosetta-version of your terminal app and confirm it’s using Rosetta:

    $ archi386$ uname -mx86_64
  6. Open the native version of your terminal app to see what the output of those commands look like otherwise:

    $ archarm64$ uname -marm64

Now we’ve created a copy of our terminal app that can be used for tools not yet available for the M1.

Additional Optional Steps

  • For a helpful visual cue about which terminal you’re running, make an adjustment to your terminal’s general theme. I just made the background of mind a little lighter.
  • When is open, the menu bar still says “iTerm2”. You can change this by opening up /Applications/ and making the following edit (you’ll have to restart the app for it to pick up):

     <key>CFBundleName</key>- <string>iTerm2</string>+ <string>Rosetta-iTerm2</string> <key>CFBundlePackageType</key> <string>APPL</string>

Step 3: Initial Shell Setup

Depending on whether I’m running in an emulated environment or not, the development tools I install (i.e. homebrew) and setup (i.e. pyenv, pipx) will live in different paths.

I trust that those using bash or fish can figure out how to translate this step appropriately.


  1. Create two files: ~/.zshrc.x86_64 and ~/.zshrc.arm64.
  2. Open ~/.zshrc and add the following snippet:

    # Detect if running Rosetta or not to pull in specific configif [ "$(sysctl -n sysctl.proc_translated)" = "1" ]; then # rosetta (x86_64) source ~/.zshrc.x86_64else # regular (arm64) source ~/.zshrc.arm64fi
  3. Optionally, in the same ~/.zshrc file, add the following snippet to allow you to switch between a Rosetta-based shell and native. This is quite handy, particularly if you skipped the optional step 2.
    alias rosetta='(){ arch -x86_64 $SHELL ; }'alias native='(){ arch -arm64e $SHELL ; }'

We’ll come back to add to the two new zshrc files we’ve created to configure homebrew, pyenv, and pipx.

See Appendix below for the full ~/.zshrc* files.

Optional Step

When running in Rosetta, I’ve added a prefix to my prompt. In my ~/.zshrc.x86_64 file, I defined a new function:

function rosetta { echo "%{$fg_bold[blue]%}(%{$FG[205]%}x86%{$fg_bold[blue]%})%{$reset_color%}"}

Then, I added it to my prompt:

(Video) Macbook air M1 Setup For Software Engineering


That looks like:

Development Setup for an M1 Mac (4)

Note: in the above PROMPT declaration, virtualenv_info, collapse_pwd, and prompt_char are custom functions; git_prompt_info comes from oh-my-zsh.

Step 4: Native Installation

First, we’ll setup brew pyenv, pyenv-virtualenv, and pipx for our native environment. We’ll setup brew, pyenv, and pipx with their respective defaults, where brew installs into /opt/homebrew, pyenv with ~/.pyenv, and pipx with ~/.local.

In the next step, we will do the same within a Rosetta terminal/shell with different directories. It’s particularly helpful to have pyenv and pipx separated like this, so that each installation can’t interact with the other. That is, our Rosetta-installed pyenv-virtualenv or pipx can’t see or delete virtualenvs that were created with the native installed pyenv-virtualenv or pipx, and vice versa. I won’t accidentally activate a virtual environment in the native shell that can only work in Rosetta.


In the native (not Rosetta) shell or terminal app:

  1. Install Homebrew by running:

    /bin/bash -c "$(curl -fsSL"
  2. Add the following to the new ~/.zshrc.arm64 file:

    # Brew setup for arm64local brew_path="/opt/homebrew/bin"local brew_opt_path="/opt/homebrew/opt"export PATH="${brew_path}:${PATH}"eval "$(${brew_path}/brew shellenv)"
  3. Start a new native shell/terminal session in order to pick up what we’ve added to ~/.zshrc.arm64.

  4. Run the following command to install the required packages for pyenv setup:

    brew install openssl readline sqlite3 xz zlib tcl-tk
  5. Install pyenv:

    brew install pyenv
  6. Add the following to ~/.zshrc.arm64:

    # setup for pyenvexport PYENV_ROOT="$HOME/.pyenv"command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"
  7. Start a new native shell/terminal session again in order to pick up what we’ve added to ~/.zshrc.arm64.

  8. Install pyenv-virtualenv:

    (Video) Setting up new M1 Max MacBook Pro - Apps that I use for my app dev

    brew install pyenv-virtualenv
  9. Start a new native shell/terminal session again in order to pick up what we’ve added to ~/.zshrc.arm64.

  10. Install pipx:

    brew install pipx
  11. Add the following to ~/.zshrc.arm64:

    # `pipx` setupexport PATH="$PATH:/Users/lynn/.local/bin"export PIPX_BIN_DIR="$HOME/.local/bin"export PIPX_HOME="$HOME/.local/pipx"

Start a new native shell/terminal session again in order to pick up what we’ve added to ~/.zshrc.arm64.

Step 5: Rosetta Installation

Now, we’re going to install and setup brew, pyenv, pyenv-virtualev, and pipx for Rosetta. brew will automatically install into /usr/local, while we’ll have to configure pyenv and pipx to look into different directories when setting up Python versions and virtualenvs.

Caution! The steps below look quite similar to the previous step. Pay attention to:

  • The different paths for both brew, pyenv, and pipx; and
  • The new directories for pyenv and pipx.


In the Rosetta-enabled (not native) terminal app or shell:

  1. Install Homebrew by running:

    /bin/bash -c "$(curl -fsSL"
  2. Add the following to the new ~/.zshrc.x86_64 file:

    # Brew paths for x86_64local brew_path="/usr/local/bin"local brew_opt_path="/usr/local/opt"export PATH="${brew_path}:${PATH}"eval "$(${brew_path}/brew shellenv)"
  3. Start a new Rosetta shell/terminal session in order to pick up what we’ve added to ~/.zshrc.x86_64.

  4. Run the following command to install the required packages for pyenv setup:

    brew install openssl readline sqlite3 xz zlib tcl-tk
  5. Install pyenv:

    brew install pyenv
  6. Create a new directory for pyenv running in Rosetta:

    mkdir -p ~/.pyenv.x86_64
  7. Add the following to ~/.zshrc.x86_64:

    (Video) Macbook M1 Pro 16" | Developer Setup

    # setup for pyenvexport PYENV_ROOT="$HOME/.pyenv.x86_64"command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"
  8. Start a new Rosetta shell/terminal session in order to pick up what we’ve added to ~/.zshrc.x86_64.

  9. Install pyenv-virtualenv:

    brew install pyenv-virtualenv
  10. Start a new Rosetta shell/terminal session in order to pick up what we’ve added to ~/.zshrc.x86_64.

  11. Create a new directory for pyenv running in Rosetta:

    mkdir -p ~/.local/x86_64
  12. Add the following to ~/.zshrc.x86_64:

    # `pipx` setupexport PATH="$PATH:/Users/lynn/.local/x86_64/bin"export PIPX_BIN_DIR="$HOME/.local/x86_64/bin"export PIPX_HOME="$HOME/.local/x86_64/pipx"

Start a new Rosetta shell/terminal session in order to pick up what we’ve added to ~/.zshrc.x86_64.



The Docker for Mac app works on Apple Silicon just fine. You may need explicitly define what platform is needed (e.g. --platform=linux/arm64 or --platform=linux/amd64) when building or pulling.

Tensorflow on Docker

Tensorflow does not have official binaries for M1 machines (a.k.a. one can’t simply pip install tensorflow), but has released a separate package, tensorflow-macos. But there is not a pre-built native solution for running Tensorflow in Docker on a native M1 environment; it must be in Rosetta (--platform=linux/amd64), or you must build Tensorflow from source.

As an anecdote, I’ve found that running a Tensorflow-based model in Docker within an emulated environment is significantly slower than running in a native environment. Very roughly, it’s about 10x slower to get a prediction in an emulated environment than native. Therefore, it may be worth it to build Tensorflow from source as a base image, then copy the built binaries into the images you’re developing on.

Warning: Building Tensorflow from source can take a couple of hours.

See the Dockerfiles in the Appendix.


zshrc files

Caution: Be sure to follow the installation steps in Step 4 and Step 5 above in order for these ~/.zshrc* files to work.


This snips out bits of my own custom setup:

# <-- snip --># Rosetta or native-related zsh configif [ "$(sysctl -n sysctl.proc_translated)" = "1" ]; then # rosetta (x86_64) source ~/.zshrc.x86_64else # regular (arm64) source ~/.zshrc.arm64fi# <-- snip -->
# `brew` setuplocal brew_path="/usr/local/bin"local brew_opt_path="/usr/local/opt"export PATH="${brew_path}:${PATH}"eval "$(${brew_path}/brew shellenv)"# `pyenv` setupexport PYENV_ROOT="$HOME/.pyenv86"command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"# `pipx` setupexport PATH="$PATH:/Users/lynn/.local/x86_64/bin"export PIPX_BIN_DIR="$HOME/.local/x86_64/bin"export PIPX_HOME="$HOME/.local/x86_64/pipx"# pretty stufffunction rosetta { echo "%{$fg_bold[blue]%}(%{$FG[205]%}x86%{$fg_bold[blue]%})%{$reset_color%}"}PROMPT='$(rosetta)$(virtualenv_info) $(collapse_pwd)$(prompt_char)$(git_prompt_info)'
# `brew` setuplocal brew_path="/opt/homebrew/bin"local brew_opt_path="/opt/homebrew/opt"export PATH="${brew_path}:${PATH}"eval "$(${brew_path}/brew shellenv)"# `pyenv` setupexport PYENV_ROOT="$HOME/.pyenv"command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"# `pipx` setupexport PATH="$PATH:/Users/lynn/.local/bin"export PIPX_BIN_DIR="$HOME/.local/bin"export PIPX_HOME="$HOME/.local/pipx"# pretty stuffPROMPT='$(virtualenv_info)$(collapse_pwd)$(prompt_char)$(git_prompt_info)'

Dockerfile for Tensorflow

This is one single Dockerfile, but it’d probably be good to separate into two.

(Video) Setting up a M1 MacBook Pro for Development.

# This builds tensorflow v2.7.0 from source to be able to run on M1 within Docker # as they do not provide binaries for arm64 platforms.# Adapted from Warning!! this can take 1 - 2 hours to build.## If a different version of tf is needed, you'll need to figure out the min# bazel version (see doc link above). You may also need to figure out the# build dependency version limitations - I learned `numpy<1.18` and `numba<0.55`# the hard way :-!.## --platform isn't needed particularly if building on M1, but it's more# for info purposes, and as a safe guard if a non-M1 arch tries to build this# DockerfileFROM --platform=linux/arm64 python:3.8-buster AS tf_buildWORKDIR /usr/src/# minimum bazel version for tf 2.7.0 to buildENV USE_BAZEL_VERSION=3.7.2RUN apt-get update \ && apt-get install -y \ # deps for building tf python3-dev curl gnupg \ && rm -rf /var/lib/apt/lists/*RUN pip install -U pip setuptools# tensorflow build dependenciesRUN pip install -U wheel && \ # limit numpy # & numba to work with numpy pip install "numpy<1.18" "numba<0.55" && \ pip install -U keras_preprocessing --no-deps# install bazel via bazeliskRUN curl -sL | bash -RUN apt-get -y install nodejs && \ npm install -g @bazel/bazelisk# clone tfRUN git clone /usr/src/tensorflowWORKDIR /usr/src/tensorflow# trying to build tf 2.7.0RUN git checkout v2.7.0# and let's see if we can buildRUN ./configure# build pip package - this took me 1 - 1.5 hrs!RUN bazel build \ --incompatible_restrict_string_escapes=false \ --config=noaws \ # optionally limit ram if needed (default to host ram) # --local_ram_resources=3200 \ # optionally limit cpus if needed (default to host number) # --local_cpu_resources=8 \ //tensorflow/tools/pip_package:build_pip_package# create a wheel in /tmp/tensorflow_pkgRUN ./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg# the tf io dep is not available on PyPI for arm64, so must build this from source tooRUN git clone /usr/src/ioWORKDIR /usr/src/ioRUN python bdist_wheel \ --project tensorflow_io_gcs_filesystem \ --dist-dir /tmp/tensorflow_io_pkg###### Probably where you want to create a second Dockerfile#####FROM --platform=linux/arm64 python:3.8-buster# copy tf and depsCOPY --from=tf_build /tmp/tensorflow_io_pkg/*.whl /usr/src/io/COPY --from=tf_build /tmp/tensorflow_pkg/*.whl /usr/src/tf/# (re)install tf build deps first before tfRUN pip install "numpy<1.18" "numba<0.55" && \ pip install -U keras_preprocessing --no-deps# install tf & dependencyRUN pip install /usr/src/io/*.whl && \ pip install /usr/src/tf/*.whl


Is M1 Mac good for development? ›

The M1 Macs are fast, and the laptops have excellent battery lives. Plus, they can be used to write Mac software, and iOS and iPadOS apps as well. Well, it all depends on what you kind of development are you doing and whether the tools that you need are available and work natively on M1 mac.

How easy is it to set up Python on M1 Mac? ›

Installing Python on Mac M1
  1. Download and install the latest pygplates version corresponding to your system architecture (Mac M1 ARM) and take note of the installation directory and python path.
  2. Install conda (we recommend miniforge) and create a new environment e.g. conda create -n pygplates python=3.9 .
8 Jul 2022

How much RAM do you need on M1 Mac? ›

The increased performance and efficiency of memory use on the M1 chips suggest that you can get away with the same amount or even less than you have now while still enjoying improved performance. We recommended 16 GB as the minimum for Intel-based Macs, but 8 GB seems to be an acceptable base level for M1-based Macs.

Can I develop .NET on Mac M1? ›

On Apple Silicon machines (also known as M1, M2, or ARM), Visual Studio for Mac 8.10 does not support the . NET 6 Arm64 SDK. . NET 5 and . NET Core 3.1 x64 SDKs are supported. .

Does Python work on Mac M1? ›

According to this long Anaconda guide to the Apple Silicon, there are 3 options for running Python on the M1 — pyenv, anaconda, and miniforge.

Is M1 good for 2022 programming? ›

Definitely yes. While being able to handle most of the popular development tools and apps, MacBook Air M1 can do even more apart from fulfilling the basic programming needs of engineering students.

Is 8GB enough for M1 programming? ›

Yes. In fact, “get away with it” is a bit misleading, because, for me, 8GB never feels like a constraint – until it's really pushed under sustained load. Unless you're doing seriously heavy lifting in terms of video, audio or coding work, 8GB will do you proud, and I have a feeling it'll be future-proof, too.

Is 8GB M1 Mac enough for coding? ›

8gb ram is enough to do light coding or testing, but won't be enough if you want to do serious coding with multiple applications running + tons of chrome tabs opening. If you're looking for a light JS code testing and then implement it on the big machine when you get home, M1 8gb ram is ok for you.

Can a M1 Mac run TensorFlow? ›

Conclusion. Today you've successfully installed TensorFlow with GPU support on an M1 Pro MacBook. The above step-by-step guide should work on any Apple Silicon device, from Mac Mini to M1 Max. But how good is M1 Pro for data science and machine learning?

Is 16GB RAM necessary with M1? ›

16GB of ram on M1 mac is needed for those tasks that make use of all the power a machine has to offer. Softwares for 3d Rendering, Video editing or heavy photo editing are such tasks.

Should I get 8GB or 16GB RAM? ›

Most users need about 8 GB of RAM, but to use several apps at once, you might need 16 GB or more. If you don't have enough RAM, your computer will run slowly and apps will lag. VRAM is located on your graphics card and stores temporary graphical data from apps and games.

Is 8GB RAM enough for programming? ›

A laptop with 4GB of RAM should suffice. However, application or software developers who need to run virtual machines, emulators and IDEs to compile massive projects will need more RAM. A laptop with at least 8GB of RAM is ideal. The requirement goes even higher for game developers.

Does Xcode work on M1 Macs? ›

Build Universal apps with Xcode 13.1.

To take advantage of the incredible performance of Macs with M1, M1 Pro, and M1 Max, use Xcode 13.1 to build your Mac app as a Universal app.

What software doesnt work on M1 Mac? ›

For the time being, some crucial tools either won't run on new Macs or won't run properly. These include Docker, Android Studio, and Haskell. The list of tools that will run on Rosetta 2 but aren't optimized for the M1 is much more extensive and includes Atom, RStudio, PHPStorm, R, Flutter, VSCode, Golang, .

Can M1 Mac run Visual Studio? ›

A fast & fluid experience, for every developer

Visual Studio 2022 for Mac brings a new, fully native macOS UI built on . NET 7, plus native support for the Apple M1 chip.

Is M1 MAC good for deep learning? ›

The M1 Pro with 16 cores GPU is an upgrade to the M1 chip. It has double the GPU cores and more than double the memory bandwidth. You have access to tons of memory, as the memory is shared by the CPU and GPU, which is optimal for deep learning pipelines, as the tensors don't need to be moved from one device to another.

Can Mac M1 run Java? ›

You can run the latest version of the JDK as they have full backward compatibility down to version 8 (as of the time of writing in 2022 here). To avoid any unforeseen issues, you also want to have as much “Java stuff” supported in the distribution that you do install.

Which M1 MacBook is best for programming? ›

The best MacBook for programming
  • MacBook Pro 14-inch (2021) The best MacBook overall for programming. ...
  • MacBook Air (M2, 2022) A great MacBook for programming on. ...
  • MacBook Air (M1, 2020) The best MacBook for programmers on a budget. ...
  • MacBook Pro 16-inch (2021) A great MacBook for people looking for a large screen.
11 Nov 2022

How much RAM is good as a programmer for an M1 MacBook Pro 8GB or 16GB? ›

Yes. Programmers who compile large amounts of code or perform 3D rendering might want to opt for 16GB of memory, but except for these use cases, 8GB on the M1 MacBook Pro is enough.

Can you use an M1 Mac for engineering? ›

Except for Computer Science majors, we do not recommend the newer M1-based (i.e., Apple silicon) MacBooks for engineering students. The new M1-based MacBooks are not compatible with software written to run on Windows computers with Intel-processors, which much of the software used in Engineering's curriculum requires.

Is MacBook Air M1 good for heavy coding? ›

Is the MacBook Air M1 8GB ideal for programming? It's 10 times what any beginner needs, it's a very fast computer. It's not *ideal*, but no computer is. If you can stretch it, I'd get the 16GB one, 8GB in 2022 is feeling pretty stingy.

Do I need more than 16gb RAM for programming? ›

How Much RAM Should You Get for Programming? To allow for a reasonable amount of multitasking, researching, fast build times, and a responsive development environment, 16 GB of memory is a good minimum requirement.

Is M1 faster than x86? ›

Apple couldn't position the M1 this way if it wasn't an excellent SoC in its own right. The M1's dramatically higher efficiency and improved performance relative to x86 allowed Apple to standardize on a single CPU core across a wide range of products and price points.

Do you need more than 8GB of RAM for coding? ›

So, then is 8GB of RAM good for coding? Well, it's definitely a lot better than 4GBs. If you are on a tight budget, 8GB should be enough to do most programming tasks. You should be able to run a few applications like Spotify, have a few browser tabs open, and a lightweight text editor as mentioned above.

Is 256GB enough for MacBook for coding? ›

Having said that, the 256 GB SSD — yes, even with its lower speed — is passable if you're really just about coding and building apps without using any virtual machines or dockers. With 16 GB of memory, however, things change drastically for the better.

Is M2 worth it over M1? ›

Compared to an M1, an Apple M2 MacBook Pro delivers the goods with 18 percent greater multithreaded performance. And if you compare the M2 with a 10-core PC laptop chip, the M2 provides almost double the performance at the same power level, and it does all this while using a quarter of the energy of a PC-chip laptop.

Is MacBook Pro M1 worth programming? ›

It is a excellent machine for programming. I have the Macbook Pro 13″ Retina with the same specifications you mentioned. I bought it in April of 2015 (as soon as it was available in the market). Since them I am using it for programming.

Does python 3.8 work on M1 Mac? ›

On Apple M1, the default architecture is arm64, and import works ok on Terminal with python 3.8.

Does M1 Mac work with blender? ›

Compatible with Apple M1 and M2 processors. Suits most recent GNU/Linux distributions. Intel Arc supported with driver version 22.26.23904 or newer.

Does PyTorch work on M1? ›

Today, PyTorch officially introduced GPU support for Apple's ARM M1 chips.

Is M1 more powerful than I7? ›

Apple M1 Chip vs Intel I7 11TH Gen

Regarding raw performance, the M1 annihilates the I7 11th Gen. In benchmark tests, the M1 consistently outperforms the I7 11th Gen in both single and multi-core performance. The M1 is so powerful that it even gives Intel's top-of-the-line Xeons a run for their money.

Is 256GB enough for MacBook Air M1? ›

Is 256GB Enough for a MacBook? If you're buying any model of MacBook (whether it's a MacBook Air or MacBook Pro) and plan to use it as your main machine, you should buy a model with more than 256GB of storage. Even if you only double the internal storage to 512GB, you'll thank yourself in a few years.

Why is M1 RAM so much faster? ›

Built into the M1 chip, the unified memory architecture lets the CPU, GPU, and other processor components don't need to copy data between one another, and are able to access the same data pool. This brings notable speed and efficiency improvements to the M1.

Is 8GB RAM enough in 5 years? ›

One of the most common questions we get asked is “how do I know if my computer needs more memory?” The answer is actually pretty simple. If you're using a PC that was released in the last five years or so, chances are it comes with 8GB of RAM – which is more than enough for most people.

How much RAM do you need in 2022? ›

At a bare minimum, you should have 8GB of RAM, so you don't run into bottlenecks, especially because your OS and other applications that you have opened, such as your browser, don't limit your development experience. We recommend 16GB for most use cases and 32GB if you work on more complex games and apps.

Is 8GB of RAM enough in 2022? ›

In a word, 8GB RAM is fine for those who stick to basic productivity, or those who aren't playing modern games. But if you plan on running something memory intensive and doing another task at the same time, you could end up exceeding your limit.

Is 8GB RAM and 512GB SSD enough for programming? ›

If you are purchasing your laptop for daily use like studying, standard productive work, installing programs like office or streaming movies, an 8GB RAM with 512 GB SSD is more than enough. If you have more money, you can go for a higher spec one like a 1TB SSD, but it is not necessary.

How much RAM do I need for Python? ›

Any laptop for Python Programming should have at least 8 GB of RAM. But I recommend getting at least 16 GB of RAM if you can afford it. Because, the bigger the RAM, the faster the operations. But if you think a 16 GB RAM laptop is a bit costly for you, you can go with 8 GB RAM, but don't go below 8 GB.

Is 256GB SSD enough for programming? ›

Every operation will be a lot faster with an SSD: including booting up the OS, compiling code, launching apps, and loading projects. A 256GB SSD should be the baseline. If you have more money, a 512GB or 1TB SSD is better.

Is Rosetta 2 on Mac M1? ›

Rosetta 2 will now install automatically on your M1/M2 Mac.

What is M1 Mac good for? ›

The CPU on M1 isn't just astonishingly fast — it balances high-performance cores with efficiency cores that crush everyday jobs while using far less energy. With that kind of processing power, MacBook Air can take on intensive tasks like professional-level video editing and action-packed gaming.

What is Rosetta for M1 Macs? ›

Rosetta works automatically in the background whenever you use an app that was built only for Mac computers with an Intel processor. It translates the app for use with Apple silicon. In most cases, you won't notice any difference in the performance of an app that needs Rosetta.

Do M1 Macs have problems? ›

There have been a few problems reported by users who have bought M1 Macs. Not all of them are related to the M1 SOC itself, and some are even listed in the specifications, as we'll see below. However, there are others, such as reports of memory leakage and issues with videos loading in web browsers related to the M1.

Is bootcamp safe for Mac M1? ›

If you have an Apple M-series chip, Boot Camp will not work as it requires a Mac with an Intel processor. To install Windows on your M-series Mac, you can use Parallels Desktop for Mac.

Do all programs work on M1 Mac? ›

Rosetta 2 should mean that most existing Mac apps will run on the new M1 Macs, although they may take a few minutes to start up the first time you run them on the new machine as Rosetta will translate the code so that they can run. Running via Rosetta may also cause some lag – although hopefully it won't be noticeable.

Can M1 Mac run Photoshop? ›

As of March 2021, Photoshop now runs natively on Apple computers using the Apple Silicon M1 chip with 1.5X the speed of similarly configured previous generation systems.

Is M1 Mac good for animation? ›

Apple's super-charged MacBook Pro is definitely one of the best laptops for animation. It comes with Apple's very own M1 Pro or Max chip, which allows this MacBook Pro to provide some seriously impressive performance, while keeping its thin and (relatively) light design.

Is M1 a VS Code? ›

Users on Macs with M1 chips can now use VS Code without emulation with Rosetta, and will notice better performance and longer battery life when running VS Code.

Is M1 Mac good for data science? ›

If you're looking for a laptop that can handle typical data science workloads and doesn't scream cheap plastic and unnecessary red details, M1 might be the best option. It's fast, responsive, light, has a superb screen, and all-day battery life. Plus, you can definitely use it for data science.

Is the Apple M1 good for machine learning? ›

The M1 is a breakthrough for machine learning at the edge, with the ability to execute 11 trillion operations per second, achieving up to 15x faster machine learning performance. Using cutting-edge 5-nanometer process technology, the M1 is packed with 16 billion transistors.

Is M1 MacBook pro good for game development? ›

It's not quite the benchmark number, but still better than what you'd get from the older M1. You should easily be able to get over 60FPS while playing the game is on an Apple MacBook Pro powered by the M1 Max chip.

How much RAM do you need for programming? ›

A laptop with 4GB of RAM should suffice. However, application or software developers who need to run virtual machines, emulators and IDEs to compile massive projects will need more RAM. A laptop with at least 8GB of RAM is ideal. The requirement goes even higher for game developers.

Are M1 Macs good for cybersecurity? ›

The MacBook Air with an M1 chip is the best laptop for cyber security. It has a powerful processor, long battery life, and a great display. Plus, its security features are top-notch. If you're looking for a laptop that will keep your data safe and secure, the MacBook Air with an M1 chip is the one to get.

Is M1 good for deep learning? ›

The M1 Pro with 16 cores GPU is an upgrade to the M1 chip. It has double the GPU cores and more than double the memory bandwidth. You have access to tons of memory, as the memory is shared by the CPU and GPU, which is optimal for deep learning pipelines, as the tensors don't need to be moved from one device to another.

Why M1 Mac is so fast? ›

Apple's M1 Chip Explained

Before Apple silicon, Macs used multiple chips for CPU, I/O, and security, but Apple's effort to integrate these chips is the reason why the M1 is so much faster and more efficient than prior Intel chips.

Is Apple M1 faster than i7? ›

Well, it depends on your specific needs. If you're looking for raw processing power, then the M1 has the i7 beat. It's nearly twice as fast as the i7, making it the fastest chip on the market. However, the i7 is still the better option if you're looking for power efficiency.

Why Did Apple lie about M1 Ultra? ›

It seems that Apple wanted to say that the M1 Ultra could beat the RTX 3090 and then set out to make a chart to back up that claim. Instead of showing an accurate comparison, Apple cut off the RTX 3090's power when it was favorable to the M1 Ultra. Benchmarks show that the M1 Ultra is a supremely impressive chip, yes.

Can M1 run Unity Mac? ›

As of Unity 2021.1 (tech stream release) Unity has added support for Apple silicon M1 chipsets. While Unity 2021 versions are not officially supported yet by ARDK, we realize that Mac M1 users may prefer to use Unity 2021 as this version removes the need for applying the M1 workaround patch described here.

Can Unreal engine run on Mac M1? ›

To build the Rosetta version you need to change the target device to My Mac (Rosetta). Therefore we went ahead and built Unreal Engine 5.1 for the M1 and we compare the same project running on an 2021 M1 Ultra MacBook Pro with 24 GPU cores running on Intel (Rosetta) then again on the custom built Apple binaries.

Can M1 Macs handle games? ›

Games that offer native macOS support obviously run quite well on the M1 Max MacBook Pro. However, don't expect the machine to push the envelope of what's possible on a laptop for gaming. Shadow of the Tomb Raider, which is natively available, runs just fine on medium settings.


1. Setting up M2 MacBook Air For Programming
(Andres Vidoza)
2. macbook dev setup // customize terminal, coding tools, 2021 m1 MacBook Pro
3. How to Setup an M1 Mac for Development
(Ian Wootten)
4. M1 Macbook Pro Dev Setup | Programming Terminal, Coding Tools, Apps
5. Josh's development environment on M1 Mac - homebrew, zsh, Ruby versions, Python versions
(Josh Holtz)
6. Setting up new M1 Pro MacBook Pro 14” - Apps and Settings + Tips & Tricks
(Andres Vidoza)
Top Articles
Latest Posts
Article information

Author: Sen. Emmett Berge

Last Updated: 01/25/2023

Views: 6174

Rating: 5 / 5 (60 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Sen. Emmett Berge

Birthday: 1993-06-17

Address: 787 Elvis Divide, Port Brice, OH 24507-6802

Phone: +9779049645255

Job: Senior Healthcare Specialist

Hobby: Cycling, Model building, Kitesurfing, Origami, Lapidary, Dance, Basketball

Introduction: My name is Sen. Emmett Berge, I am a funny, vast, charming, courageous, enthusiastic, jolly, famous person who loves writing and wants to share my knowledge and understanding with you.