Is A Mac Good For Software Development?

ArjanCodes · Beginner ·🧠 Large Language Models ·3y ago

Key Takeaways

The video discusses the pros and cons of using a Mac for software development, highlighting its UNIX compliance, POSIX compliance, and availability of Homebrew package manager, as well as its limitations, such as limited peripherals and configurability on M1 machines. Tools like Docker, Visual Studio Code, and Spotlight are also mentioned.

Full Transcript

is a mark a good machine for software development there's a few areas where I think the Mark is hard to beat but in other areas you should avoid it I'm going to talk about the pros and cons of using Mac for software developers and then I'll make a few recommendations for which Mac to buy and what you should pay attention to this is the machine that I use it's a 16 inch M1 Max MacBook Pro but this is actually not the best option for software development let's share later on why I still bought this before we start though I have something for you it's a free guide to help you make better design decisions in seven steps you can get it at Ironwood code design guide I've tried to keep this guide short to the point so you can get the information quickly and apply it immediately to what you're doing so Ironwood codes slash design guides and the link is also in the description of this video If if you use a Mac you probably also use Mac OS but let's first talk about the other two main operating systems Linux and windows which you also use for large part comes down to personal preference but the majority of services on the internet runs on Linux servers that's for a lot of reasons one is that it's free there's no point in paying a license fee for each server if you have a huge data center also with tooling like Docker images running in the cloud are mostly running some version of Linux and Linux is designed to be operated by the command line locally or remotely and that works well if you have to manage lots of servers Windows has other advantages if your programming Enterprise applications it's a great option with c-sharp.net the surrounding ecosystem visual studio is great IDE so nowadays Visual Studio code is a lot more popular than Visual Studio more than twice as many people use it and then you have Windows subsystem for Linux I haven't used this personally but of course it has a lot of Linux function functionality to Windows which is nice so is there like a winner well if you look at the stack Overflow survey of this year you see that almost half of the software developers use Windows about 40 use Linux and about a third use Mac OS those percentages add up to more than 100 but of course lots of developers use multiple os's in their work I'll share five reasons why I think Mac OS is a great option for software developers and also you have five reasons why I think you should avoid it like the plague now before I dive into that give this video a like it helps others find my content on YouTube first reason why Mac is good for software development is that the OS is UNIX compliance if you're doing a lot of back-end development work Mac OS is actually a nice option Mac osse Unix three compliant operating system and it's also posix compliant and therefore can handle ports of most Linux software this is what the really awesome Homebrew package manager does you also have nice apps such as iPhone 2 the terminal that works much better than the default one in Mac OS and the hardware is generally good except for a few turns in the past like the 12 inch MacBook or the overheating Intel MacBook Pros also the OS is really well optimized for user friendliness and creative workflow so doing your everyday work of things like watching a movie or listening to music on the Mac is very pleasant another reason is that Mac OS is really useful gestures and keyboard shortcuts all the different keyboard shortcuts make software development which is keyboard focused Breeze I'm still regularly learning new keyword shortcuts so I'm quite far from being a complete keyboard wizard I'm more of a keyboard Hobbit I guess another really great built-in tool is Spotlight you can use this to quickly find stuff and launch apps another good reason to get a Mac is the battery life if you're working on one of the Apple silicon laptops you'll have the best battery life in the business this is really handy if you're working remotes you don't have access to electricity Apple's modern laptops will get you through the day comfortably the fourth reason is IOS development and web development you need a Mac for iOS development unless you don't want to deploy your app to the app store for some reason if you're doing web development it's useful to have easy access to Safari you need to test things on Safari it doesn't use chromium under the hood so you will run into issues for example a big difference is that Mac OS has hovering scroll bars it's nice because the content can then use a larger portion of the screen real estate but it might break your web app's layout and there are a bunch of smaller incompatibilities especially on mobile where the visible section of the content resizes if you scroll down because the address part disappears on iOS the final reason to get a Mac is that Mac OS stays out of your way for me if I buy a new Mac machine getting things ready for work is really easy I don't need to install a bunch of drivers uninstall lots of bloatware copying over settings from the previous machine and so I don't want to do all that stuff I use my Mac for my business so it needs to just work I haven't used windows for a while so things have probably improved on that end as well but a Mac simply feels effortless to me to get going quickly and time is money before I dive into the reasons why you shouldn't buy a Mac for software development I want to show you some of these Apple accessories that sandmark sent to me they have a collection of really nice sleeves and cases full grain leather and feels really premium like this carrying case for the MacBook Pro or here I have a really nice band for the Apple watch it feels quite comfortable I also have the airpods pro case here and they have more it's all part of their leather collection that comes in either black or brown colors thanks sandmark for sponsoring this section of the video check them out via the link in the description so here are five reasons why you shouldn't use a Mac for software development the first one is if you're developing games lots of games especially the more Graphics heavy AAA games are windows only and apple simply isn't optimized for gaming you can certainly do game development on the Mac I mean especially if you're developing mobile games it's pretty nice but for the more Graphics heavy AAA games that also rely on Advanced graphics cards features that only Nvidia offers for example it's really hard and apple just isn't the right solution for that so game developments don't get a mark for that the second reason not to get a Mac for software development is actually the new Apple silicon the new tips are great in terms of power efficiency and speed but it also means that some software doesn't work perfectly yet or has some caveat like Docker by default Docker desktop in the Apple silicon version will pull down arm 64 images which leads to incompatibilities however you can specify the platform via command line prompts or Docker compose yaml file you can use mix platform simultaneously Docker will either emulate arm or virtualize x86 as necessary but if you're not careful you might create a Docker image locally using arm64 and enter try to run in the cloud and Linux and it won't start and I know that because it actually happened to me also in the past Mac was the only machine where you could run Linux Windows and Mac OS with apple silicon that's not only the case the third reason is peripherals and that's mainly an issue with the cheaper M1 machines users can connect just one additional monitor with the M1 MacBook Air and M1 MacBook Pro it's not an issue on the M1 Pro and Max laptops also the M1 Mac Mini can connect up to two monitors there are some workarounds using display link adapters and the USBC Port but it's going to involve some work setting that up the fourth reason not to get a Mac is pricing depending on the machine you get it can be very expensive and you'll be paying for lots of stuff that's not important for software development for example the screen quality on the laptops is great but you probably use an external monitor anyway for coding so you should really pay for that awesome screen it also pay paying for media exporters that are built into the chip if you're doing video editing like me that's useful for coding not so much you're also paying for SD card readers HDMI outputs really good speakers on laptops all of this is not that important for software development the final reason not to get a Mac is configurability you have a limited number of possible chip configurations if you like customizing your machine you're not going to be happy with the Mac there's no way to upgrade things like Ram or hard disk later on what you buy is what you get well unless you buy the Uber Uber expensive Mac Pro which is totally overkill for most software developers and at the time of publishing this video that still runs on Intel and it's actually beaten in some tasks by the newer much cheaper Apple silicon Max you have to make sure that when you buy the machine it's future proof so you don't have to replace it within a few years and then you pay Apple's prices for Ram and SSD storage okay a couple of bonus pedantic issues a few minor annoyances first Mac OS creates dozens of hidden files like dot DS store which can really be annoying if you work with file processing and they tend to end up in your git report stories if you forget to add it to your git ignore file second to this date Mac OS can't open an archive file without extracting it it's really annoying and finally window management ugh it's lacking not just lacking it's pretty bad but you can use a free tool called rectangle that fixes it so as a software developer what Mac should you buy one machine that I think is a great option for software development is the M1 MacBook Air it's a truly great laptop and a great value at the price what's great I've been using one for the past year to do pretty intense back-end and front-end development what's nice as well is that now that the M2 MacBook airs out you can find some great deal on the original M1 MacBook Air if you want a desktop machine the M1 Mac Mini has the same performance or even a bit better than the M1 MacBook Air due to the fan and it's pretty cheap and you get to pick your own monitor keyboard and mouse if you need a bit more performance the 14 inch MacBook Pro is a great option as well it's more expensive but it's also a faster machine with the M1 Pro chip what you definitely shouldn't buy is this laptop that I bought the M1 Max in this case this the 16 inch MacBook Pro the M1 Max has the same CPU performance as the M1 Pro but you pay more money for stuff you don't need the reason I got this is because I do video editing and the M1 Max has more powerful encoding and decoding chips the SD card reader is also really useful because all my cameras record on SD cards and I like the bigger screen because then I don't need a monitor at home when I'm editing videos those 16 inch is not the same as working on a big 24 27 inch monitor it gets the job done what you also shouldn't get is an M2 MacBook Air why why am I getting all these machines that nobody should buy this is a bit more performant than the M1 MacBook Air but not that much and it's actually quite a bit more expensive if you need more performance than the M1 MacBook Air I'd say go idle for the M1 MacBook Pro which has a fan so that adds some extra performance or get the 14 inch M1 Pro MacBook Pro it's confusing names so why did I get this well it's actually not for me it's for one of my team members I want to talk a little bit about the specs so first what you buy is non-upgradable so make sure you know what you need before in terms of ram 8 gigabytes does the job but it's shared memory so personally I opted for 16 gigabytes especially if you want to run Docker containers locally you're going to be glad you went with 16 gigabytes in terms of storage the base option of 256 gigs is okay but since the hardware is not replaceable only get this version if you're really really sure you don't need the space personally I recommend going for 512 gigs at least if you're doing web development that node modules folder can get pretty large pretty quickly and Docker images can also get quite large so be aware I hope this video gave you some insight into where you should buy a Mac for software development and which one if you want to learn more about my Max setup and the apps I use there's a few you should definitely know about check out this video next thanks for watching take care and see you soon

Original Description

💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide. If you consider investing in a Mac, here are the pros and cons of using an Apple device for software development. Make sure you watch until the end of the video to find out what you should pay attention to when purchasing a Mac as a software developer. 🎓 ArjanCodes Courses: https://www.arjancodes.com/courses/ ➡️ Check out Sandmarc's accessories: https://www.sandmarc.com. 🔖 Chapters: 0:00 Intro 0:49 Other operating systems 2:26 The OS is UNIX-compliant 3:11 Gestures & keyboard shortcuts 3:39 Battery life 3:53 iOS development & web development 4:36 macOS stays out of your way 5:13 Sandmarc 5:50 Developing games 6:25 New Apple Silicon 7:15 Limited Peripherals 7:41 Pricing 8:20 Configurability 09:05 Pedantic issues 09:37 What Mac should you buy as a developer? 10:20 What Mac you shouldn’t buy #arjancodes #softwaredesign #python
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from ArjanCodes · ArjanCodes · 0 of 60

← Previous Next →
1 Full stack WEB DEVELOPMENT in 2021 - the ULTIMATE tech stack for FAST web app development
Full stack WEB DEVELOPMENT in 2021 - the ULTIMATE tech stack for FAST web app development
ArjanCodes
2 FROM PRODUCT IDEA TO SOFTWARE - turn your idea into reality in a few steps
FROM PRODUCT IDEA TO SOFTWARE - turn your idea into reality in a few steps
ArjanCodes
3 Cohesion and Coupling: Write BETTER PYTHON CODE Part 1
Cohesion and Coupling: Write BETTER PYTHON CODE Part 1
ArjanCodes
4 Build a GLASSMORPHISM React Component - Typescript & Material-UI
Build a GLASSMORPHISM React Component - Typescript & Material-UI
ArjanCodes
5 Observer Pattern Tutorial: I NEVER Knew Events Were THIS Powerful 🚀
Observer Pattern Tutorial: I NEVER Knew Events Were THIS Powerful 🚀
ArjanCodes
6 100% CODE COVERAGE - Think You're Done? Think AGAIN.☝
100% CODE COVERAGE - Think You're Done? Think AGAIN.☝
ArjanCodes
7 Two UNDERRATED Design Patterns 💡 Write BETTER PYTHON CODE Part 6
Two UNDERRATED Design Patterns 💡 Write BETTER PYTHON CODE Part 6
ArjanCodes
8 1000 Subscribers! 🚀 WHY I Started this Channel and WHAT'S NEXT
1000 Subscribers! 🚀 WHY I Started this Channel and WHAT'S NEXT
ArjanCodes
9 Channel Trailer ArjanCodes - March 2021
Channel Trailer ArjanCodes - March 2021
ArjanCodes
10 Exception Handling Tips in Python ⚠ Write Better Python Code Part 7
Exception Handling Tips in Python ⚠ Write Better Python Code Part 7
ArjanCodes
11 Monadic Error Handling in Python ⚠ Write Better Python Code Part 7B
Monadic Error Handling in Python ⚠ Write Better Python Code Part 7B
ArjanCodes
12 GW BASIC Games I Wrote When I Was a Kid 🎮 Running 30 Year Old Code
GW BASIC Games I Wrote When I Was a Kid 🎮 Running 30 Year Old Code
ArjanCodes
13 Why You Should Think About SOFTWARE ARCHITECTURE in Python 💡
Why You Should Think About SOFTWARE ARCHITECTURE in Python 💡
ArjanCodes
14 Uncle Bob’s SOLID Principles Made Easy 🍀 - In Python!
Uncle Bob’s SOLID Principles Made Easy 🍀 - In Python!
ArjanCodes
15 QUESTIONABLE Object Creation Patterns in Python 🤔
QUESTIONABLE Object Creation Patterns in Python 🤔
ArjanCodes
16 If You’re Not Using Python DATA CLASSES Yet, You Should 🚀
If You’re Not Using Python DATA CLASSES Yet, You Should 🚀
ArjanCodes
17 CODE ROAST: Yahtzee - New Python Code Refactoring Series!
CODE ROAST: Yahtzee - New Python Code Refactoring Series!
ArjanCodes
18 7 UX Design Tips for Developers
7 UX Design Tips for Developers
ArjanCodes
19 Going All-in on Software Design in Python + an ANNOUNCEMENT 🎙
Going All-in on Software Design in Python + an ANNOUNCEMENT 🎙
ArjanCodes
20 🎙 Interview with Sybren Stüvel, Developer @ Blender 3D
🎙 Interview with Sybren Stüvel, Developer @ Blender 3D
ArjanCodes
21 Do We Still Need Dataclasses? // PYDANTIC Tutorial
Do We Still Need Dataclasses? // PYDANTIC Tutorial
ArjanCodes
22 7 Python Mistakes That Instantly Expose Junior Developers
7 Python Mistakes That Instantly Expose Junior Developers
ArjanCodes
23 Answering Your Most Frequently Asked Python Questions // Q&A 07-2021
Answering Your Most Frequently Asked Python Questions // Q&A 07-2021
ArjanCodes
24 GitHub Copilot 🤖 The Future of Software Development?
GitHub Copilot 🤖 The Future of Software Development?
ArjanCodes
25 More Python Code Smells: Avoid These 7 Smelly Snags
More Python Code Smells: Avoid These 7 Smelly Snags
ArjanCodes
26 Test-Driven Development In Python // The Power of Red-Green-Refactor
Test-Driven Development In Python // The Power of Red-Green-Refactor
ArjanCodes
27 5 Tips To Keep Technical Debt Under Control
5 Tips To Keep Technical Debt Under Control
ArjanCodes
28 Refactoring A Tower Defense Game In Python // CODE ROAST
Refactoring A Tower Defense Game In Python // CODE ROAST
ArjanCodes
29 The Factory Design Pattern is Obsolete in Python
The Factory Design Pattern is Obsolete in Python
ArjanCodes
30 Why the Plugin Architecture Gives You CRAZY Flexibility
Why the Plugin Architecture Gives You CRAZY Flexibility
ArjanCodes
31 Refactoring A Data Science Project Part 1 - Abstraction and Composition
Refactoring A Data Science Project Part 1 - Abstraction and Composition
ArjanCodes
32 Refactoring A Data Science Project Part 2 - The Information Expert
Refactoring A Data Science Project Part 2 - The Information Expert
ArjanCodes
33 Refactoring A Data Science Project Part 3 - Configuration Cleanup
Refactoring A Data Science Project Part 3 - Configuration Cleanup
ArjanCodes
34 Purge These 7 Code Smells From Your Python Code
Purge These 7 Code Smells From Your Python Code
ArjanCodes
35 Running A Software Development YouTube Channel
Running A Software Development YouTube Channel
ArjanCodes
36 Refactoring A PDF And Web Scraper Part 1 // CODE ROAST
Refactoring A PDF And Web Scraper Part 1 // CODE ROAST
ArjanCodes
37 Refactoring A PDF And Web Scraper Part 2 // CODE ROAST
Refactoring A PDF And Web Scraper Part 2 // CODE ROAST
ArjanCodes
38 How To Easily Do Asynchronous Programming With Asyncio In Python
How To Easily Do Asynchronous Programming With Asyncio In Python
ArjanCodes
39 The Software Designer Mindset
The Software Designer Mindset
ArjanCodes
40 NEVER Worry About Data Science Projects Configs Again
NEVER Worry About Data Science Projects Configs Again
ArjanCodes
41 Powerful VSCode Tips And Tricks For Python Development And Design
Powerful VSCode Tips And Tricks For Python Development And Design
ArjanCodes
42 8 Python Coding Tips - From The Google Python Style Guide
8 Python Coding Tips - From The Google Python Style Guide
ArjanCodes
43 What Is Encapsulation And Information Hiding?
What Is Encapsulation And Information Hiding?
ArjanCodes
44 8 Tips For Becoming A Senior Developer
8 Tips For Becoming A Senior Developer
ArjanCodes
45 Building A Custom Context Manager In Python: A Closer Look
Building A Custom Context Manager In Python: A Closer Look
ArjanCodes
46 GraphQL vs REST: What's The Difference And When To Use Which?
GraphQL vs REST: What's The Difference And When To Use Which?
ArjanCodes
47 You Can Do Really Cool Things With Functions In Python
You Can Do Really Cool Things With Functions In Python
ArjanCodes
48 Announcing The Black VS Code Theme (Launching April 1st)
Announcing The Black VS Code Theme (Launching April 1st)
ArjanCodes
49 7 DevOps Best Practices For Launching A SaaS Platform
7 DevOps Best Practices For Launching A SaaS Platform
ArjanCodes
50 Refactoring a Rock Paper Scissors Lizard Spock Game // Code Roast Part 1
Refactoring a Rock Paper Scissors Lizard Spock Game // Code Roast Part 1
ArjanCodes
51 Refactoring a Rock Paper Scissors Lizard Spock Game // Part 2
Refactoring a Rock Paper Scissors Lizard Spock Game // Part 2
ArjanCodes
52 Things Are Going To Change Around Here
Things Are Going To Change Around Here
ArjanCodes
53 Dependency Injection Explained In One Minute // Python Tips
Dependency Injection Explained In One Minute // Python Tips
ArjanCodes
54 How To Setup A MacBook Pro M1 For Software Development
How To Setup A MacBook Pro M1 For Software Development
ArjanCodes
55 A Simple & Effective Way To Improve Python Class Performance
A Simple & Effective Way To Improve Python Class Performance
ArjanCodes
56 How To Write Unit Tests For Existing Python Code // Part 1 of 2
How To Write Unit Tests For Existing Python Code // Part 1 of 2
ArjanCodes
57 How To Write Unit Tests For Existing Python Code // Part 2 of 2
How To Write Unit Tests For Existing Python Code // Part 2 of 2
ArjanCodes
58 Make Sure You Choose The Right Data Structure // Python Tips
Make Sure You Choose The Right Data Structure // Python Tips
ArjanCodes
59 5 Tips For Object-Oriented Programming Done Well - In Python
5 Tips For Object-Oriented Programming Done Well - In Python
ArjanCodes
60 Next-Level Concurrent Programming In Python With Asyncio
Next-Level Concurrent Programming In Python With Asyncio
ArjanCodes

This video teaches you how to decide if a Mac is good for software development, discussing its pros and cons, and providing recommendations for choosing the right Mac model. It also covers the importance of considering factors like RAM and storage for web development.

Key Takeaways
  1. Consider the pros and cons of using a Mac for software development
  2. Evaluate the importance of UNIX compliance and POSIX compliance
  3. Research the availability of Homebrew package manager and other development tools
  4. Choose the right Mac model based on performance and value
  5. Consider the limitations of M1 machines, such as limited peripherals and configurability
  6. Ensure you have at least 16 GB of RAM for Docker containers
  7. Recommend 512 GB of storage for web development
💡 When choosing a Mac for software development, consider the trade-offs between performance, value, and configurability, and ensure you have sufficient RAM and storage for your development needs.

Related Reads

Chapters (16)

Intro
0:49 Other operating systems
2:26 The OS is UNIX-compliant
3:11 Gestures & keyboard shortcuts
3:39 Battery life
3:53 iOS development & web development
4:36 macOS stays out of your way
5:13 Sandmarc
5:50 Developing games
6:25 New Apple Silicon
7:15 Limited Peripherals
7:41 Pricing
8:20 Configurability
9:05 Pedantic issues
9:37 What Mac should you buy as a developer?
10:20 What Mac you shouldn’t buy
Up next
5 Levels of AI Agents - From Simple LLM Calls to Multi-Agent Systems
Dave Ebbelaar (LLM Eng)
Watch →