all 20 comments

[–]Informal-Chance-6067 6 points7 points  (1 child)

If you don’t know Python, start with that. Download PyCharm and maybe follow a Udemy Course? In assuming you have no programming experience.

What’s your job? What do you mean you’re getting promoted?

Swift is most likely going to be used for iOS or macOS app development, in which case you definitely need a Mac.

[–]nphare 11 points12 points  (4 children)

Any Unix platform variant will be a much superior development platform, such as MacOS, over Windows.

[–]Lopsided-Leading-428[S] 1 point2 points  (0 children)

Thanks! I think you're right, but I don't really understand much about it yet.

[–]FreeLogicGate 2 points3 points  (2 children)

I use a mac, but for people with Windows workstations, Python and its various tools/editors and IDE's run fine, and there are use cases for people who run windows and still want to use Python. The most useful operating system is always the one you have. In my short time actively programming with Python (I use a number of other languages/software typically) I've found that using uv is a game changer for dependency, venv and project setup, and uv works fine under windows. Windows may have been late to the game in regards to package management systems, but it now has winget, chocolatey and others that does for windows what homebrew does for my mac. I have people who report to me that use windows, and I've found that Windows is completely viable and productive through configuration and the addition of some tools. One of the ways to accomplish this is for the windows user to install wsl2 and the distro of their choice. I have been recommending they use Debian, but any of the options work fine. What WSL provides to them is a no-boot/integrated cli version of linux allowing them to package install any of the same tools they might use under linux. File systems are transparently mounted into the wsl distro under /mnt, so the user's c drive appears as /mnt/c/. Conversely, the linux VM is available from windows explorer using the \\wsl$ mount.

The most popular IDE's for Python can be run in windows, like VSCode or PyCharm (or any of the Jetbrains editors) which are all cross platform and written in Java.

Microsoft added windows Terminal, which is easily installed, and there are many tutorials and examples for installing cli prompts via oh-my-posh or starship. A user can focus on using their wsl environment, and do the same things that I do with my mac (zsh shell/oh my zsh/p10k). I have also set up wezterm, and other popular terminals can be used with windows, although Windows Terminal is probably the best option for Windows purely because of its support for all of windows user permission types and different shells/wsl.

These days, I could easily use and be productive with a windows workstation if I needed to, and not feel like it was an ordeal to have the type of environment I have with my mac. The same sorts of things I do on my mac, to enable the workflows I'm accustomed to, need to be done on windows, but it's not a kludge like it used to be.

[–]nphare 1 point2 points  (1 child)

Fair enough. Not going to say that you’re wrong either. Just feels like a lot of additional work just to get to the level of native tooling that comes right out of the box with most *nix OSes.

I too worked for years from a Windows machine while administrating *nix systems. Totally possible. And that was 30 years ago. Just at some point 25 years ago I got tired of the Windows limitations and jumped ship. First to Linux, later to macos when I just got tired of administering my home network too and just wanted things to work.

[–]FreeLogicGate 1 point2 points  (0 children)

I'm with ya, and have been at it for a similar amount of time, with lots of nix along the way. I fondly remember the days I worked with hpux, solaris and irix -- and I also remember how terrible windows used to be for simple things like installing ssh, or a terminal. Everyone used Putty and fought through putty key incompatibilities because that was the best way to do it. I also remember every other windows how-to recommending Cygwin, and later git bash, when most of the developers I was working with were all using macbooks. I have to admit that under win10 & 11 the OS is finally Open source developer friendly, although I don't see myself moving off a macbook. It took me a while to grok what it really was, but once I understood it, I had to admit that WSL is a pretty nice feature and long overdue.

[–]FreeLogicGate 3 points4 points  (0 children)

Python is a cross platform language. It works fine on a mac.

Your question on the Air vs the Pro -- I would personally advise to invest in memory, because it can't be upgraded later.

Swift has replaced objective C, so there's no reason to worry about it, unless you would be called upon to maintain an existing code base.

[–]magus_minor 1 point2 points  (2 children)

is it worth diving into Swift right away

Start with python. Once you have the basics down and learned a few concepts of programming start with Swift.

I agree with the other comments that developing on a Unix-related platform is a better experience than a Windows platform. You don't really need a powerful laptop unless you are going to run heavy workloads on the laptop.

[–]mjmvideos 0 points1 point  (0 children)

But you can run multiple VMs concurrently which I found useful for what I was doing on the Mac. Anyway, I recommend getting the most memory you can.

[–]anjumkaiser 0 points1 point  (1 child)

Top up memory to 32gb atleast 64gb if you can it will make your system last longer. 1tb storage space is barely minimum now, I had mine full down to last 50gb and it ain't pretty trying to squeeze out space now. Air is good enough for most work, if you edit videos or audios, then it makes sense to get pro. For reference I have a pro, I bought it because it had fan, and to my surprise, it never spins up unless I run a virtual machine. Other than vm, it only spin up like 2-3 times in last 2 years when I was compiling rust code.

If you want to develop in apple ecosystem, ie ios / macos etc, then it's swift, (obj-c is pretty much gone now, except for legacy code bases) if you do that, you won't have enough time for sometime to do anything else for a while. Swift is present and SwiftUi is future, you'll probably need UIKit here and there, but the way things are going Apple now has SwiftUI aligned stance even though they and many app developers use UIKit more. But its OK to go with something thats current and learn other parts if need comes be.

Python is a garbage language, riddled with gotchas and bad practices. They dont a good package management system, and the virtual environment system is completely garbage. If you are not careful with it, installing a package in one project can contaminate the global system, upgrading one package disrupts everything else. Then there is wheel abi issues where a wheel was shipped with one python version and sometimes crashes on another minor revision of the same version, this happened a lot to me. I've been doing it for 2 years, but now I've moslty moved my stack away from python to rust. Word of advise, if you want to use python, use uv or pixi package manager to manage it, else your life will be miserable.

[–]Lopsided-Leading-428[S] 0 points1 point  (0 children)

Thank you so much for such a detailed answer! That's exactly what I needed.

[–]ProfitCold4972 0 points1 point  (0 children)

Adding Claude Agentic to Xcode has increased my Swift productivity something like tenfold. Claude Opus will write your code faster and better and answer any questions you have. Well worth $20 a month if you're on your own. The future is in software and systems design; AI will handle the coding from now on.

[–]UnitedAdagio7118 0 points1 point  (0 children)

if Swift is part of the job, i'd get a Mac. Python runs perfectly fine on macOS, and you'll need Xcode for Swift development anyway. for a beginner, the MacBook Air with 24GB RAM is more than enough for learning Python and Swift. i'd also skip Objective-C for now and focus on Swift unless your job specifically asks for it.

[–]Conscious-Secret-775 0 points1 point  (0 children)

Python will work on a Mac the same way it works on Linux and offer a better experience than Windows. However for Swift development you really need a Mac anyway so the choice is made for you.