Startups and Code

Surface vs MacPro Setup

To identify my initial biases about this, I worked at Microsoft for several years. I have an android phone. I have used Windows for most of my adult life. I have used a macbook pro for the past 4 years for work.

I recently received a new Surface Pro 4 with 8 gigs of ram. I love it. I had an original Surface Pro for work when they first came out and was given an opportunity to get the Pro 4, so I did. For the record, I still love it. I never use the touch screen, but the Windows 10 operating system is great. I love the windows managemant, the fact that it has a usb-c AND a usb port is really nice. I don't like the charging connection because it is magnetic, but getting it lined up is not as simple as it should be. Other than that the device is great.

Now let's talk about coding and setting up the surface pro 4.

What are you going to use it for?

For me I am going to use it for web development and a lot of python/node work.

So what are the steps of getting it setup?

I do the typical install of stuff:

And then I see if I can build, edit, and deploy

I run into several permission issues because I installed Python from the Windows Store, which puts it in the user directory. Then I want to use git-bash for my terminal in vs-code but I can't access installed applications because that is not under the user workspace. Then I switch over to powershell to see if that makes it easier. It does not. cmd.exe is the only answer that makes it easy. However, I'm persistent. I really like bash and I change paths, remove windows store version of Python, install the version of python, edit my .bash_profile, change some aliases to make my life easier, and install firebase-cli for deployments.

And after that, windows is running great. I have the best of both worlds at this point. I know some of you are going to suggest I use WSL (windows subsytem for Linux) but the permissions are still an issue and since it is a subsytem, it doesn't have access to the same things as cmd. It seems like a great idea, but at that point, buy an ubuntu laptop and run wild. You shouldn't be on windows at that point.

Also, I was using Edge and yes I installed chrome, but really impressed on performance of Edge, I know people are so in love with Chrome, but seriously try Edge for a week, you may be pleasantly surprised. (Not a paid endorsement, personal experience :-) )

Ok, on to the macbook pro.

So having used a macbook pro for a few years now, I caved and bought my own. I got the 13" Intel I7 with 32GB of ram. Yes, I know it has 4x the memory I have on my Surface, but the memory is not even in play in this discussion. I'm doing web development not ML models or video production.

So I set it up and go through the same process.

  • VS Code
  • Python, oh wait, don't need to it comes with 2.7.16 and 3.8.2
  • git - installed with code tools
  • setup ssh key (ok, had to generate a new key and add to github)
  • clone repo
  • install ohmyzsh, because it is awesome
  • install node
  • install yarn (because I like it better than npm)
  • install firebase-cli

And then the problems came...

I'm sorry, there weren't any. It simply worked. I cloned and was coding in under an hour (mainly because I upgraded to Big Sur). I am not an Apple fan boy. I will NEVER personally own an iPhone. However, for web development and from zero to code, it was so seamless.

I honestly don't want to like it, but it works. And as a developer, getting to a point where I can write code and deploy from a brand new machine in under an hour is ridiculous.

My old speech would go something like this:

I remember when I wanted to install Redhat from a stack of flopp disks and would be excited on Friday night when people ask if I was going out and I would say, no I'm installing redhat this weekend. Not, tonight, but "this weekend" because I would need to tweak the profiles, the configurations, and if I was ambitious even improve the kernel to run like I wanted with my own custom prompt. A weekend! Now it is under an hour.

So kudos to Apple. Yes, I'm writing this on my Macbook pro, but I will still use my Surface for writing. I love it, and windows 10 is pretty amazing, if you don't mind using the command prompt and don't try to be clever with ohmyzsh as your default (never even tried that, because git-bash as hard enough).

So there you go, my experience on setting up a new laptop windows vs macbook.

Let me know if you have any specific questions and I'll do my best to answer.