First Mac Experience

This post is coming a bit later than expected…

I got my Mac. I was so excited, I started installing everything I could ever want and playing with all the software; I was keeping notes on my experience all the while. Then life got in the way, and it put this whole thing very much on the back burner for a while.

These things happen, but now I have the benefit of re-approaching this with all the beginner quirks and uncertainties worked out!

So, I am back, and I have had plenty of time to get used to using the Mac and plenty of experience now using it for various little projects and everyday use too.

To cut to the chase, I absolutely love it, and I’ll get into the reasons why below and some of the specifics of the software I’ve been using too. Read on for my upsides and downsides, how I’ve found the learning curves and intuitiveness, and more about the software options and hardware feel.

The Overall Feeling

Hardware

This machine feels so slick and looks incredible. There’s a lot to love:

  • The battery is phenomenal (I’ve been getting 10+ hours of use even when running various development programs)
  • The screen is beautiful and everything just looks great on it
  • The keyboard feels slick and tactile (although key bindings are taking some getting used to)
  • The touchpad and it’s controls came so intuitively that I haven’t even thought about them once until writing this
  • I don’t know what use I’ll have for them for the foreseeable future but the mic and webcam are amazing quality
  • While I haven’t really properly stress-tested it yet, it has been cool to the touch and silent consistently

Software

The biggest quality of life improvement I’ve felt compared to my life on Windows is that everything just works out of the box. I cannot overstate how amazing this feels.

If a software’s developer has been kind enough to make their application work with Homebrew then it’s absolutely effortless to install applications and there’s usually minimal setup on top of that. If it’s not set up on Homebrew, then it’s just been a case of downloading the application, dragging it into the app folder (which the UI makes seamless), and then it just works.

I have suffered through a lifetime of every piece of software requiring finding correct installation folders, manual config changes, requiring workarounds based on your specific hardware, having to make dodgy registry edits based on a forum post which fixed your issue from 10 years ago, etc. etc. etc.

This has been an absolute dream in this regard and it has made the investigative phase of my Mac transition so easy it’s almost unbelievable – if I want to try a little project with a new language in a new IDE, then easy peasy it all just works and I’m up and running in no time.

This has been a large part of what has made all of this just feel so good.

Another nice thing is that I feel close to the metal with MacOS (par for the course with it being a sort of Linux distro) which feels like a nice level of machine control which I’m not used to. There’s something very satisfying about the central point of control while working being a terminal window (with the excellent Zsh and all of it’s customisation options) as opposed to the increasingly minified-but-still-needing-legacy-baggage file explorer in windows.

The available software options seem fantastic (some of the software I’ve been playing with actually only has Mac support, like the AI integrated Zed IDE at the time of writing) and the ecosystem seems wonderfully tailored to development.

This isn’t Windows!

There’s certainly been some teething issues. Coming from roughly 25 years of dedicated Windows usage, 10 of those using it daily in a professional setting, there’s been a lot of muscle memory and fundamental presumptions which needed changing.

The most jarring problem, and the one which has been most persistent, is the key bindings. I still struggle now with not having a delete key (Mac alternate of the two-keyed fn + backspace feels incredibly alien), with command + backspace deleting my whole row instead of just the previous word (which is option + backspace), and the one which catches me out the most is command + z for undo but not command + y for redo, instead it’s command + shift + z.

While I am getting more used to them every day, this takes some of the shine off working on something new and exciting when just typing at a speed which matches my thinking becomes a massive obstacle. Still, this will go with time, and I can already feel it starting to come naturally when I’ve been at it for a few hours.

That said, if I see the emojis pop-up from hitting fn one more time I think I might scream. I don’t know who is using emojis so often that a key in a strong position on the keyboard needs to open a whole emoji panel, but it is certainly not showing any use to me personally and has become a similar level of frustration as the infamous sticky keys pop up on Windows.

Homebrew is worth talking about here for comparison to my old Chocolatey Windows ways. Both are package managers for easy installation of programs and keeping them up to date, and they both have very widespread community-driven adoption. I’ve found that Homebrew has more development tools available but is missing some basic applications, whereas Chocolatey has most everyday applications on but is missing some advanced development tools. Whether this is true generally across their ecosystems I’m not sure, but anecdotally for me this has been the case.

For the purposes of what I’m doing on the Mac, the Homebrew dev-centric version works great for me. It is a godsend to have a package manager in any capacity, especially with Homebrew’s Cask extension allowing you to manage GUI apps as well as the baseline CLI tool support.

Overall, in-keeping with enjoying managing my dev life from within a Zsh terminal, having the brew cli tools at my fingertips has just been a joy.

Speaking of Zsh: what a terminal! Coming out of Windows world where you usually live in file explorers, coming across to a primarily terminal-operated workflow has been a treat – one which has come with me into my Windows based work environment too.

Zsh especially has been wonderful to get to grips with. Everything just works exactly how you’d like it to immediately, and its customisability and extensibility isn’t so vast and complicated that it’s impenetrable but has lots of options for you to build the command centre of your dreams.

Oh My Zsh is a must-have extension, it’s a framework which comes with loads of amazing utilities out of the box and also allows installation of many more plugins. Within the base installation you get things like autocomplete, syntax highlighting, and git and docker cli tools, but you also get access to the wonderful world of plugins like the marvellous thefuck (which allows you to type “fuck” if you messed up your previous command and it will intelligently suggest corrections).

One more change from Windows that I would like to draw attention to is that the context menus of the Mac remain at the top of the screen and are dynamic to your active window. This may sound obvious to many of you, but I didn’t realise this for weeks!

This was the cause of much frustration when I couldn’t find any settings menus, any configurability, or any of anything really in any of my applications. I was about to concede that in the Mac world everything just needed to be manually configured through cli commands instead of having menus for these things. However, it’s all right there, just at the top! This was invisible to me I suppose as it looks like an OS-managed area, the kind of thing which never changes in Windows, so I never expected it to change dynamically with my applications.

What a glorious day it was when I discovered this!

Software Changes

The main software changes I’ve made has been as follows:

  • Visual Studio 2022 -> Rider
  • Visual Studio 2022 -> Zed (when AI integrated coding)
  • Notepad++ -> CotEditor
  • Powershell -> Zsh
  • Chrome -> Brave
  • VSCode has stayed the same for now

I’ll save my opinions on VS vs Rider for the next section, as this is the most impactful comparison for me.

Zed is proving itself very interesting, it’s less of a replacement for VS and more of an AI-driven development experience which I’d been wanting to try out. I’ve currently hooked up Gemini 2.5 Pro and Claude Sonnet 4 to it, and have mainly been using Claude Sonnet 4 as it seems to be accurate more often for me in coding tasks.

I do find Zed quite difficult to get around, it’s overly minimal so I’m finding it very difficult to do many things myself but this is likely a case of configuring the workspace rather than an actual software limitation. The AI side of it is fascinating though, I have vibe-coded a very minimal API product which returned me some data I already had in a Q&A format. It spun up a whole solution according to my instructions in about 2 minutes – which admittedly then required about 20 minutes of debugging to see why it wouldn’t start and fix it, but still this is less time overall than bootstrapping a whole web API manually.

There is a lot more to explore here, both in Zed and in VS2026.

CotEditor may not be making the cut for me in terms of a text editor. I had 2 main issues with it: firstly, it only supported one tab at a time; secondly, it doesn’t keep your unsaved files open like Notepad++ does (i.e. an unsaved, untitled file will remain open with all changes made even between device restarts in other editors).

The first of these issues was a simple configuration switch, although it did take a long time to find as it was in the previously mentioned elusive context menu at the top of the screen. The second of these I believe is simply a limitation of the editor, and while it’s doing the job for me right now in terms of note taking I believe I will find more shortcomings with this editor in time too as it feels very bare.

I may switch over soon to a more widely adopted text editor soon, but for now I’ll ride this out for a bit and see where it takes me.

I have already spent a paragraph gushing about my love for Zsh and Oh My Zsh, so I shall refrain from doing so again.

And the final major change, while not strictly Mac related, is the switch from Chrome to Brave. While it is still a Chromium based browser, it’s de-googlification and enhanced security features appeal massively to me. In this modern day of every website scraping as much data as it can off you and every service user effectively selling their data for the privilege of using said service, any extra privacy and security that can be gained is a big win in my eyes. The Shields system for ad and tracker blocking is a great bonus, for better quality of life online and further enhanced privacy.

This has been seamless to switch over, a quick copy over of my saved credentials and bookmarks and we were up and running. It is just as snappy as Chrome, the Brave search is surprisingly competent (if it ever falls short I may fall back to DuckDuckGo), and it feels good knowing I’ve made at least one very easy conscionable decision in my workspace.

Visual Studio vs Rider

This has been one of the biggest shift-ups for me, as I have spent my entire development career working primarily in Visual Studio. I want to love VS, but over time its constant bloating and feature degradation has had me fall out of love with it, and so as part of this move to Mac I figured now is a good time to try something new.

Having been a fan of ReSharper, IntelliJ IDEA, DotPeek and DotCover in the past I figured that Rider might be a good option. I’ve heard of plenty of .NET developers making the switch and loving it, claiming it fixed all the issues which Visual Studio have been adding over time. Even at my workplace at the time of writing several colleagues have recently moved across to Rider and are singing its praises.

One thing I noticed immediately was that Rider has bizarre keybindings. This may be a personal gripe, but there being no default keybindings for build or code cleanup seem like very odd choices. Those are my 2 of my most commonly used keybindings, and while I know that I can (and I have) added them manually, it says something to me about the intended workflow of this IDE that they were not included. This is an unease that I haven’t been able to shake, and it may be petty but something about that really started me off on the wrong foot when picking this IDE up.

The other major sticking point I have is that Rider seems to be overall much less helpful. This is is something I believe which comes from Rider being quite new versus VS having built up years and years of bespoke messages, workflows in specific scenarios, and errors and gentle nudges when something is a bit awkward.

It seems to be lots of small things all of the time, where I have maybe gotten too used to the little helping hand along the way, but it is jarring having those guard rails removed. I think this is best explained with some examples.

Example 1:

When I spun up my minimal API discussed earlier in this post I came across several build issues, primarily types not being able to be resolved. The cause behind this was 2 different things, the project SDK was set incorrectly and there were missing Nuget packages from the project.

In Visual Studio, both of these problems would be highlighted. Project configuration issues have a plethora of related errors to guide you towards the issue, and it is usually intelligent enough to suggest Nuget packages which would give me the types required (specifically when they’re extremely common types and packages, as these were).

Rider however gave none of this guidance, just a simple “cannot resolve” in the error highlighting. While it’s not too difficult to start digging into this and work out why when you have the relevant experience, if you’re new to .NET or if you’re just feeling a bit confused then this is far from helpful.

Example 2:

In the same project, when everything was resolved and I tried to spin up a website to interact with my API. The default configuration these days for safety is to launch sites with HTTPS instead of HTTP. When running an HTTPS site locally you need to create and trust a self-signed dev cert in order to access the page otherwise the security baked into HTTPS won’t let you through.

In VS when you start up an HTTPS site with no cert you get a pop-up telling you exactly what is wrong, giving you some context for the issue, and giving you the option to click a button and quickly create and trust the self-signed dev cert.

In Rider, it simply spins up with no warnings and you’re faced with the browser protection of warning you that your site is unsafe, forcing you to go through the advanced settings to then click through to advance to the site regardless.

Thankfully I am already very familiar with this issue and this process, but if this was my first time encountering this problem then I would have been left extremely confused. I know it’s not a bad thing for developers to have to understand what they’re doing and to research things like this before they use them. However, it feels like a helpful little nudge for what is a very common problem on new project startup is significantly more pleasant than just being left with a load of issues and confusion. Especially with HTTPS being the default setting and best practice.

So with all of this in mind, I am enjoying Rider for it slick UI, smooth interactions and snappy responsiveness – but there is some unpleasantness. Perhaps this is just the cost of moving away from using an IDE with many years of experience baked into it, but it is taking some time to get over these little issues.

It does have a lot going for it, like it’s GUI for EF migrations which is sorely lacking from Visual Studio, but right now that’s the only unique piece of tooling which I have noticed it provides. The rest of its benefits come from its focused feature-set and modern build which give it a performance and efficiency edge.

Footnote for Visual Studio 2026

At the time of writing this VS2026 has just come out and is adding another layer of complexity to this, as it has fixed a lot of the problems Visual Studio has. VS2026 now has a much smaller memory footprint, is much snappier and responsive, and has a shockingly good AI integration.

This AI integration itself is a string selling point. As Visual Studio is already baked so heavily into the Microsoft ecosystem, it has opened the door for huge seamless workflows (provided you operate primarily in this ecosystem). You can now integrate between tickets in DevOps, working in Visual Studio with CoPilot to assist, and then setting up cloud infrastructure in Azure, all from the comfort of VS with MCP servers. This is a very powerful offering that should not be underestimated.

For the time being, for the reasons above and because of my inertia with learning how to operate in Rider efficiently, I can quite confidently say that VS2026 wins out for me for now in situations where I have the choice (i.e. at work on my Windows machine).
As it is sadly not available on Mac I will persevere with Rider and may yet come to love it, but I wanted to mention that as of now it is a limitation rather than preference which drives this.

Next Steps

So the overall message is that I am loving my Mac and trying out lots of new things on it. I have already been attempting a few very small projects here and there. Some little proof of concept APIs, some basic game mechanics implementations in Godot, a little messing about in GarageBand, and a few brainstorming sessions with ChatGPT to think about what comes next?

The biggest project so far has been this blog, which is just now picking up some steam again with the publishing of this post!

So coming up next will be to commit to one of these ideas to the point of getting something out into the world. I doubt there will be even an iota of success with this first effort. But for now it’s just about getting the ball rolling, keeping this blog going, and trying out new things.

In time I may stumble across something successful, or something which I just love doing, but for now the name of the game is going to be variety and using some AI tooling to help get from idea to plan to product as quick as possible.

Stay tuned to see what comes first!

You may also like...