Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

science03

Suspended
Original poster
Apr 18, 2022
16
3
I am a mechanical engineering undergraduate in my senior year. I currently have a Windows laptop that does pretty well. I depend on a lot of x86 software so this was an obvious choice when I purchased it my freshman year.

Once I graduate, things will change. My future employer will issue a work laptop for all my x86 software. Here is where I am a little hung up based off where I plan to go next in my career path:

I am taking a deep five into Python and engineering use cases (data analyzing, dipping into ML). I already have a decent foundation with C and am currently using it to program Arduino projects.

My dilemma: I have this romance with the new M1 Pro's. I love the battery life, I love the build quality, the design, the speakers....there is a lot to like.

However, this deep dive into Python will be on my own time and my own dime outside of work. Should I be sticking with a Windows laptop perhaps a ThinkPad? I am having a hard time finding what the M1 Silicon is actually good as aside from content creation. It seems like for any sort of enterprise work it just isn't a glove fit. Is this the case?

I see YT videos with software engineers using MacOS, and I hear about a lot of companies issueing their dev's Macbook Pro's......this confuses me. How do you not run into compatibility conflicts? M1's can't really run any enterprise software.

Just a little confused here....but it seems like for anything development related a ThinkPad running VS, or dual booting into Linux to pump out Python and utilizing beans and gcc makes more sense than flowing all that on an M1.

Again, what the hell are these good for outside content creation and why would one buy one rather than a Windows based laptop like a ThinkPad? Even with ML there is no way it holds a candle to even a dGPU with CUDA capability.
 
Last edited:

leman

macrumors Core
Oct 14, 2008
19,521
19,675
You will have hard time finding another laptop that is as good at running Python and data analysis pipelines, especially if you value battery life. ML is a different matter, if that is your primary work then look elsewhere. Unless you need x86 (e.g. for specific software or because you are using low-level code), an M1 pro will run circles over a Thinkpad for any development task.
 

science03

Suspended
Original poster
Apr 18, 2022
16
3
You will have hard time finding another laptop that is as good at running Python and data analysis pipelines, especially if you value battery life. ML is a different matter, if that is your primary work then look elsewhere. Unless you need x86 (e.g. for specific software or because you are using low-level code), an M1 pro will run circles over a Thinkpad for any development task.
What advantages? Can you give a few examples?

I mean any Apple user can claim that, but it would be great to hear some feedback.
 

Xiao_Xi

macrumors 68000
Oct 27, 2021
1,627
1,101
I am taking a deep five into Python and engineering use cases (data analyzing, dipping into ML).
Unless you need Cuda-optimized libraries (e.g. PyTorch/Tensorflow), you will have no problem with the Python/R/Julia libraries. If you need Cuda-optimized libraries, you could use Google Colab/Amazon SageMaker Studio Lab.

You may be interested in this Anaconda's blog post.

I already have a decent foundation with C and am currently using it to program Arduino projects.
It should take you less time to compile your programs for Arduino based boards with an ARM based mac because they are both ARM.
 

glenthompson

macrumors demi-god
Apr 27, 2011
2,983
844
Virginia
Much more enterprise development for the web than specific platforms. Exceptions are iOS and Android apps for phones and tablets. Most of those are just front-ends for web services on the backend. After using Windows machines for too many years, I was happy to leave it behind when I retired.
 
  • Like
Reactions: chouseworth

leman

macrumors Core
Oct 14, 2008
19,521
19,675
What advantages? Can you give a few examples?

I mean any Apple user can claim that, but it would be great to hear some feedback.

Performance. Especially portable performance. And of course battery life, one of the best displays for working with text etc.
 
Last edited:

lcubed

macrumors 6502a
Nov 19, 2020
540
326
this post in the mac studio forum seems pertinent to your concerns

 

uller6

macrumors 65816
May 14, 2010
1,072
1,777
I am a mechanical engineering undergraduate in my senior year. I currently have a Windows laptop that does pretty well. I depend on a lot of x86 software so this was an obvious choice when I purchased it my freshman year.

Once I graduate, things will change. My future employer will issue a work laptop for all my x86 software. Here is where I am a little hung up based off where I plan to go next in my career path:

I am taking a deep five into Python and engineering use cases (data analyzing, dipping into ML). I already have a decent foundation with C and am currently using it to program Arduino projects.

My dilemma: I have this romance with the new M1 Pro's. I love the battery life, I love the build quality, the design, the speakers....there is a lot to like.

However, this deep dive into Python will be on my own time and my own dime outside of work. Should I be sticking with a Windows laptop perhaps a ThinkPad? I am having a hard time finding what the M1 Silicon is actually good as aside from content creation. It seems like for any sort of enterprise work it just isn't a glove fit. Is this the case?

I see YT videos with software engineers using MacOS, and I hear about a lot of companies issueing their dev's Macbook Pro's......this confuses me. How do you not run into compatibility conflicts? M1's can't really run any enterprise software.

Just a little confused here....but it seems like for anything development related a ThinkPad running VS, or dual booting into Linux to pump out Python and utilizing beans and gcc makes more sense than flowing all that on an M1.

Again, what the hell are these good for outside content creation and why would one buy one rather than a Windows based laptop like a ThinkPad? Even with ML there is no way it holds a candle to even a dGPU with CUDA capability.
I run a few different x86 programs through Crossover - all programs I need for my job. This option works great, and frankly the programs run better emulated on an M1 in Mac OS than they do native in Windows on an x86 machine. I don’t hear fan noise anymore!!!
 

ADGrant

macrumors 68000
Mar 26, 2018
1,689
1,059
However, this deep dive into Python will be on my own time and my own dime outside of work. Should I be sticking with a Windows laptop perhaps a ThinkPad? I am having a hard time finding what the M1 Silicon is actually good as aside from content creation. It seems like for any sort of enterprise work it just isn't a glove fit. Is this the case?

I see YT videos with software engineers using MacOS, and I hear about a lot of companies issueing their dev's Macbook Pro's......this confuses me. How do you not run into compatibility conflicts? M1's can't really run any enterprise software.

Just a little confused here....but it seems like for anything development related a ThinkPad running VS, or dual booting into Linux to pump out Python and utilizing beans and gcc makes more sense than flowing all that on an M1.

Again, what the hell are these good for outside content creation and why would one buy one rather than a Windows based laptop like a ThinkPad? Even with ML there is no way it holds a candle to even a dGPU with CUDA capability.
All the Google, Facebook and Amazon software developers I have ever met were carrying MacBooks. Google discourages most of its employees from using Windows.

A Mac is better for front end web development because it allows code to be tested on every major browser (Safari is only available on Apple platforms). For mobile development, iOS development requires a Mac and Android development works just as well on a Mac as it does on Linux or Windows. For server side web development, the deployment platform of choice is Linux, ideally in a Docker container. Docker is available for Mac and Windows but since MacOS is Unix and Linux is based on Unix, switching between the two feels more natural. The same command shells are supported on MacOS and Linux (bash, zsh, csh, sh etc) and the same command line tools (python, ruby, git, helm, kubectl etc).

Many of the same GUI tools are available on all three platforms but Windows has lots of annoying differences from Unix. The path separator is a backslash instead of a forward slash (in many common programming languages, the forward slash is an escape character), Windows still has drive letters (a CP/M 'innovation' from the early 1970s when two floppy disc drives were as good as things got). It won't let you delete files if some app has the file open and won't tell you which app is holding onto the file.

To be fair, there are a number of ways to get access to a Unix shell on Windows. Git is packaged with git bash based on MinGW, Cygwin offers a more extensive 'Unix Lite' environment and WSL2 offers an Linux VM integrated with Windows. Also for C++ cross platform development, the Visual Studio debugger is excellent.
 
  • Like
Reactions: MacCheetah3

Sheepish-Lord

macrumors 68030
Oct 13, 2021
2,529
5,148
There’s a lot of programmer reviewers on YouTube that use Macs. One channel that comes to mind is Alex Zikskind. Owns his own company, enterprise level development, does various comparisons, etc.
 

Krevnik

macrumors 601
Sep 8, 2003
4,101
1,312
It should take you less time to compile your programs for Arduino based boards with an ARM based mac because they are both ARM.

Why would this be the case? The back ends of a compiler toolchain that emit machine code are agnostic to the host architecture. They’re just emitting data structured in a particular way at the end of the day.
 
  • Like
Reactions: Xiao_Xi

UBS28

macrumors 68030
Oct 2, 2012
2,893
2,340
All the Google, Facebook and Amazon software developers I have ever met were carrying MacBooks. Google discourages most of its employees from using Windows.

A Mac is better for front end web development because it allows code to be tested on every major browser (Safari is only available on Apple platforms). For mobile development, iOS development requires a Mac and Android development works just as well on a Mac as it does on Linux or Windows. For server side web development, the deployment platform of choice is Linux, ideally in a Docker container. Docker is available for Mac and Windows but since MacOS is Unix and Linux is based on Unix, switching between the two feels more natural. The same command shells are supported on MacOS and Linux (bash, zsh, csh, sh etc) and the same command line tools (python, ruby, git, helm, kubectl etc).

Many of the same GUI tools are available on all three platforms but Windows has lots of annoying differences from Unix. The path separator is a backslash instead of a forward slash (in many common programming languages, the forward slash is an escape character), Windows still has drive letters (a CP/M 'innovation' from the early 1970s when two floppy disc drives were as good as things got). It won't let you delete files if some app has the file open and won't tell you which app is holding onto the file.

To be fair, there are a number of ways to get access to a Unix shell on Windows. Git is packaged with git bash based on MinGW, Cygwin offers a more extensive 'Unix Lite' environment and WSL2 offers an Linux VM integrated with Windows. Also for C++ cross platform development, the Visual Studio debugger is excellent.

But isn’t a docker image dependent on the original OS and hardware? If you for example create a docker image on ARM Mac, it might not necessary run on Linux x86 or Windows x86. It is not really OS and hardware agnostic like a VM (which emulates also the entire hardware).

I could be totally off as I am not a “computer scientist”, it is just one of the problems I ran into myself when I was playing with docker images.
 
Last edited:

Lihp8270

macrumors 65816
Dec 31, 2016
1,143
1,608
It should take you less time to compile your programs for Arduino based boards with an ARM based mac because they are both ARM.

Assuming this is the case (and ignoring the comment a couple before this one) arduinos have a limit of just over 30k.

Any time saved by using faster processors is going to be somewhere between insignificant and immeasurable when compiling a 30kb program.
 
  • Like
Reactions: Xiao_Xi and Krevnik

science03

Suspended
Original poster
Apr 18, 2022
16
3
This blog post focuses on the ML capabilities of M1 Max.
If I had any sort of ML flow to my work it wouldn't be done locally. If it was, you would be foolish not to be using a Windows system so you could utilize CUDA from the GPU.

ML on a Mac is just foolish.
 
  • Like
Reactions: satcomer and AltecX

AltecX

macrumors 6502a
Oct 28, 2016
550
1,391
Philly
You will have hard time finding another laptop that is as good at running Python and data analysis pipelines, especially if you value battery life. ML is a different matter, if that is your primary work then look elsewhere. Unless you need x86 (e.g. for specific software or because you are using low-level code), an M1 pro will run circles over a Thinkpad for any development task.
Last time i looked Python Devs were really hateing on the M1 for compatibility issues, are those cleared up now?
 

AltecX

macrumors 6502a
Oct 28, 2016
550
1,391
Philly
If I had any sort of ML flow to my work it wouldn't be done locally. If it was, you would be foolish not to be using a Windows system so you could utilize CUDA from the GPU.

ML on a Mac is just foolish.
Razer just announced a linux laptop for ML work with a 3080.
 

leman

macrumors Core
Oct 14, 2008
19,521
19,675
Last time i looked Python Devs were really hateing on the M1 for compatibility issues, are those cleared up now?

I didn't encounter any compatibility issues myself, but everyone has a different use case obviously. Anyway, I am not aware of any mainstream Python library that would not work on M1.
 

deconstruct60

macrumors G5
Mar 10, 2009
12,493
4,053
I am a mechanical engineering undergraduate in my senior year.

Once I graduate, things will change. My future employer will issue a work laptop for all my x86 software. Here is where I am a little hung up based off where I plan to go next in my career path:

I am taking a deep five into Python and engineering use cases (data analyzing, dipping into ML). I already have a decent foundation with C and am currently using it to program Arduino projects.

If these are Python engineering forays into tasks that are related to work (or future job at same employer) with long term intent to fold that learning into process improvement on one of your companies endeavors, then you should keep all of that on your provided work computer.


If your "have fun after work" hobby is to do another scientific/engineering work/job completely unrelated to your primary job then that would be a candidate for your personal , non work computer. Or if off trying to create something different.

If your primary job turns out to be lots of work then you might want more of a 'distraction' hobby than a 'second job'. [ Even if interned at the company before ... they wanted to recruit you, so it is highly unlikely gave you "pain in the butt" projects to do. ]. And it will likely be very helpful to get a good handle on your first job (that pays) before signing up for a second one (that doesn't) . If you are doing stuff "for fun" then probably don't need a M1/M2 Pro/Max or some high end option that likely will come up in this thread. It is good to take breaks from working so that can be better 'refreshed' mentally to do better work.


Even if making more money than when was a student picking the most expensive hobby possible isn't necessary the better hobby to have. Find out what long term expenses are going to be and pick a hobby that doesn't blow the rest of your paycheck.



I see YT videos with software engineers using MacOS, and I hear about a lot of companies issueing their dev's Macbook Pro's......this confuses me. How do you not run into compatibility conflicts? M1's can't really run any enterprise software.

Some companies developer their own software. If that is used in their enterprise then it can be "enterprise software". Another class of "enterprise software" is expensive software that companies "buy off the shelf".
There is lots more flexibility in deploying the former than the latter. Companies may own/rent Arm servers and will be deploying that software on Arm VM images onto those machines. In that case, there is no huge mismatch between M-series and that software development. "Enterprise" software that doesn't have a huge GUI component really doesn't have to be run locally on the development laptop. ( and for source code security control companies may not want someone to take home the crown jewels of the company on a laptop that they leave in a car. ) .


Other times the code is portable ( Java , Javascript , Python ) and doesn't matter as match for unit/module testing what the underlying platform is ( as long as the software sitting on top of (java virtual machine) is the same. )
C code for Arduino projects isn't very representative of a large swath of enterprise software.



Just a little confused here....but it seems like for anything development related a ThinkPad running VS, or dual booting into Linux to pump out Python and utilizing beans and gcc makes more sense than flowing all that on an M1.

Few, if anybody, needs to "dual boot" to effectively run Python. If running a user level , text only (or entirely 2D GUI ) app then "dual boot" usually isn't 'buying' much. ( can get into some corner cases where low on spare RAM capacity , but virtualization works extremely efficiently at the user level for apps. )
 

Xiao_Xi

macrumors 68000
Oct 27, 2021
1,627
1,101
I would rather have a Quadro dGPU if I had to work ML on a laptop.

The ideal computer for programming, data science, numerical simulations, deep learning or reinforcement learning is different. You have to figure out what you're going to do most and choose accordingly.

If you like tinkering with Arduino boards and deep learning, you'll most likely end up doing TinyML, and I doubt you'll need more power than the MacBook Pro gives you to train your models.
 

Lihp8270

macrumors 65816
Dec 31, 2016
1,143
1,608
I didn't encounter any compatibility issues myself, but everyone has a different use case obviously. Anyway, I am not aware of any mainstream Python library that would not work on M1.
I had a few issues with OpenCV, bumpy, and tensorFlow.

Yes I got them working. But you needed very specific versions of each of them.
 

ahurst

macrumors 6502
Oct 12, 2021
410
815
I had a few issues with OpenCV, bumpy, and tensorFlow.

Yes I got them working. But you needed very specific versions of each of them.
Not sure about TensorFlow, but OpenCV and Numpy now have official Apple Silicon wheels that you can pip install without headaches.

There's been a lot of sluggishness with M1 support in the compiled Python library world (e.g Scipy has macOS arm64 wheels now but they didn't a few months ago), and I've run into a few annoying holdouts (e.g. mediapipe, imageio), but overall things are a lot better than they were even 6 months ago.
 

Xiao_Xi

macrumors 68000
Oct 27, 2021
1,627
1,101
There's been a lot of sluggishness with M1 support in the compiled Python library world (e.g Scipy has macOS arm64 wheels now but they didn't a few months ago), and I've run into a few annoying holdouts (e.g. mediapipe, imageio), but overall things are a lot better than they were even 6 months ago.
I can understand that the transition to ARM has been a challenge for some Python libraries because there is not yet a good CI/CD for macOS ARM to test them.

I recall that Scipy has some problems with the very old Laplack used by Apple.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.