I’m a junior backend software engineer. I use a Vim plugin on my fancy code editor. I like the command line but I’m not all in on it or anything.
If I was a Windows user I’d switch. But being a Mac user I have a lot of what I need for software development.
What am I missing out on? Genuine question.
I think that’s a lot about personal preference. Do you enjoy your machine? That you can’t repair it? That you can’t easily take your OS with you one to a machine from another manufacture? Maybe you don’t care. I do. I think Linux gives you a lot of freedom, but if you don’t need or want it, I don’t think there is a reason to change. I mean, apart from the whole Apple-being-a-big-coorporation-that-actively-hinders-reparability issue that one might care about from a societal and environmental perspective.
Maybe you could get all the same stuff you need for development in Linux, and a lot more freedom to boot.
I apologize that this comes off a bit hostile. I am a bit hostile. I am also sorry for it!
I don’t think there was anything hostile about your comment tbh. You offered your opinions, admitted that OP might not have the same computing concerns as you, and then said that was fine. That’s more fair than most of the discussions I’ve seen on Linux forums lol.
Perhaps you shouldn’t. Any honest Linux user will tell you up front if that if you have a comfortable system already it may not be worth the disruption in your workflow while dealing with the learning curve. That being said, being free from the whims of Apple is a nice feeling.
EDIT: I’m not sure what the state of virtualization is on the Mac side right now but it wouldn’t be the worst idea to fire one up and try out a distro or two. Kick the tires before you think about committing.
As long as the distro has an ARM64 build, it’ll be fine virtualized on Apple silicon. Virtualbox has a developer preview build for M1/M2 Macs and I believe VMWare Fusion licenses are free for individuals.
While you can run AMD64 builds but it’s quite slow and painful (even headless via Docker). Thankfully most distros have ARM64 builds available - and I second the “kick the tires” effort.
„It is difficult to free fools from the chains they revere.“ — Voltaire
I would use the word people instead of fools, because even the smartest people can be misled.
Also, for some people freedom is very important even if it cost them dearly. Other people just want convenience and luxury, and don’t mind living in a golden cage.
You really have to make your own decisions in life. What makes you tick?
Yep. Apple hardware is generally fine. The basic software is more or less solid too. The problem arises from not actually owning the hardware or the software on your system. And being locked down into a tightly controlled ecosystem. For someone that just wants a computing appliance it’s not too horrible. Maybe even preferable. But for someone that wants full control and the ability to upgrade change or alter it. It’s very stifling and confining. And only getting worse as Apple and Microsoft continue to try to lock down their captive consumer bases. Rather than focus on improving to draw new customers.
At the end of the day you should use what you prefer. As for why I use Linux, it comes down to the core design philosophy. Apple designs their products for the happy path. Stray from that and you’re going to be fighting the OS for every inch. Linux is designed for hackers (as in the original term, not security). It not only allows you to do what you want, but encourages it.
As an example, consider the number of window managers available on Linux. There are the two big ones that are closer to the “happy path” (Gnome & KDE), but there are also dozens of other mature options. i3. bspwm. sway. Xmonad. Awesome. There are so many options, and for the most part you really can stitch your OS together from the parts you like. Except for systemd… but that is a whole different conversation.
There are plenty of other reasons I use Linux for everything I can, but that’s the selfish one. And it’s why I feel downright uncomfortable using anything else at this point.
i mean, if it works for you, it works! by all means, stick with it. it’s all about what works best for you
but since you’re asking about Linux’s features…for me, a college student, Fedora Linux works. the desktop’s workspaces feature allows me to have a different workspace for each task or context, and i can create as many as i want easily. i can open up several apps at once by dragging icons from the app grid and dropping them onto workspaces, so i can get set up quickly
when it comes to updates, i appreciate that i can update my computer whenever i want or put updates off until a more convenient time. app management is super easy (especially in comparison to the dumpster fire that is Windows app management), the Software app that comes out of the box does everything: installing apps from different repositories, system updates, firmware updates, even version upgrades for the OS are handled in one place
the desktop itself is a bit restrictive out of the box. there are no desktop icons and you can only tile windows to half the screen. you can download extensions that restore any functionality you’re missing though, like Desktop Icons NG for desktop icons, and Tiling Assistant for quarter tiling. i like the minimalism though. having no desktop icons forces me to actually organize my files, and to compensate for the lack of tiling i use the workspace feature i mentioned above. i especially like how everything hides itself away when you’re actually doing work, so all that’s visible is the clock, the system indicators, and whatever you have open
there’s plenty of other advantages other people cite like top-to-bottom control of what software is on your system (Linux will even let you get rid of the bootloader if you wanted to for some reason), no DRM, and Everything Just Works™. i can’t personally speak about my experiences with those since i haven’t felt the need to replace any integral software, i haven’t done repairs to my laptop other than putting in a new SSD, and i don’t use any peripherals other than a printer (the printer setup was dead simple though). but i know that if i ever want to do any of these things, i can totally do them
i know my use case is pretty different from a backend software engineer’s, but i thought i would share my personal experience with using Linux as a daily driver
I generally find that setting up dev environments to be easier and cleaner in Linux. I prefer standard distro packages compared to homebrew and all it’s quirks. There’s also native support for docker. If you’re doing backend stuff, it also helps that the machine you’re developing on is using a similar OS as the server that’s going to be running your code in production.
If it’s for your workplace though, evaluate whether it’s worth disrupting your workflow to make the switch. Don’t let your productivity suffer because of it. Maybe test it out in your own free time and make gradual migrations. For a long time, I was dualbooting between Windows and Linux, and I’ve slowly migrated over.
Actually I have a work laptop now, so my personal M1 (which I give a lot of credit for my journey to becoming a developer) is kind of collecting a bit of dust now.
And yes, the point you mentioned about running the same OS as backend servers/infra, it touches on why I would try it out. Again, I’m not unhappy with Macs but there are knowledge/productivity gains that would come with learning Linux which will help with my career, even if it’s a little.
If it’s just collecting dust anyways, just give it a go! And don’t stress about getting it set up fast or perfect on your first try, see it as a fun and interesting project and familiarise yourself with the OS. Maybe check out a few different distros and DE’s before you decide on what to settle with.
Yeah, then I’d say that dusty M1 mac is perfect for experimentation. I will say my Linux experience came in really handy at my work place (software eng), so go for it! Spin up some servers, do some self-hosting, etc. I feel like the only person who can decide whether Linux is for you is you, and if you run into any trouble, the Linux community is here to help you out.
I think you have the best of two worlds. I personally cannot stand the UX of MacOS, but I really like the M* arch. I even dream of getting one MacBook M1 / M2 once asahi linux matures enough and I can enjoy being all linuxy on superefficient hardware that runs quietly.
Hello from a software engineer in test.
I use Linux because of habit of looking for an alternative to Windows that didn’t require Mac hardware. The machines we’ve been allocated are dog slow Dells, so it was either pain or Linux.
I spend most of my day either remoting into embeded units or servers and debugging/writing scripts to test them. I do that over SSH and bar one I can think of, they all run Debian or a variant.
For me personally, I like to have my development environment mimick (with some niceties) what I work with. In general, I sleep better knowing if it works on my machine, it will probably work on the thing it will eventually be used against. I also know the terminal like the back of my hand and have grown to depend on it for basically everything development. I would never not want to use it.
However, my tech lead runs Windows 7, uses VSCode and relys heavily on GUI programs in general. I would also say, he is far more efficient in his tasks than I am. When I questioned his use of these things he responded “It’s how I like it” and that really stuck with me.
The key take away from this ramble is create a PDE, a personal development environment. Linux is great because your can customize just about everything you’d want to. That being said I’m sure you can customize your Mac just as much where it matters.
Just stay awesome!
Note - I would however check out neovim for the exact reasons I’ve stated here :)
Is your tech lead really running windows 7? That thing has not recieved security updates for a while. Does he have a habit of living on the edge?
Eventually you would not have to switch from your MacBook M1 if you like the hardware. Consider following asahi linux, you can follow them on Mastodon or just their GitHub
While I am a Linux user myself I would not recommend switching if you are happy with macOS, especially in the software eng. field there is not much reason to switch unless you explicitly need a platform to do your work. If you can accomplish your work on any platform pick what you’re most comfortable with.
I have plenty of philosophical arguments regarding support of free software, and building our own way online we can wax poetic about. There’s also a discussion to be had of the benefits of a ‘bazaar’ over a ‘cathedral’ style of software use.
There’s plenty of great reasons to search out alternatives and not wind up ‘beholden’ to or reliant on any one mega corporation. We’re responsible for the bridges built for those that come after us, do we want those bridges built by Apple and Facebook, or built by the public? You may think that as a user, your choice of operating system doesn’t matter, but your choices do have an active effect on those around you.
At the end of the day though, if you have a work flow that you’re happy with and there’s no reason to change or upset it, I tend to tell people to do what they’re comfortable with. However since you’ve asked this question to begin with, maybe you’re looking for a challenge and just looking for a push?
push
When I started using Linux a good 25 or so years ago, I wasn’t super techie by any stretch. But I was captured by Stallman and the GPL and the philosophy behind it. I have always been more than willing to deal with the pain or limitations just because I believed in the philosophy. These days it’s much easier as so many things Just Worktm out of the box. But you are right, everyone has to decide their own values and morals, and the compromises we make with ourselves.
I don’t know that anyone would be in a position to convince you. If macOS fulfills your needs and you don’t have a strong ideological opposition to anything from closed-source software to private corporations, there isn’t a reason to change. I have a MBP that’s a fantastic machine.
Linux, to me, is largely about choice and the ability to directly shape your tools. So I also have a roll-your-own custom Silverblue installation via the ublue.it project on a Thinkpad. It’s not better than my MBP, but I can do different things with it that aren’t tied to Apple’s release schedule. And it’s pretty great to manage my personal OS through GitHub.
In the desktop world, some folks roll with only suckless software and a forked personal copy of an esoteric tiling window manager. Some folks roll with default gnome or kde. Most are somewhere in between. They can use a privacy-focused fork of Firefox or they can use Microsoft Edge. The only limitation is imagination and time, whether yours or someone else’s. The downside compared to a private, proprietary ecosystem like macOS is that more tools are developed erratically, abandoned, or have “unique” user interfaces and assumptions.
But, again, I use both. If you feel like you need to switch away from macOS, that’s really up to what you need to do and what you want to accomplish.
You’re missing out on the interface, mostly. Beyond the customisation aspect, KDE, Gnome and even XFCE are more powerful (aka more productive DE) Its more a ideological gain from moving away from Darwin/MacOS. Everything you need to work is first party on linux but third party on Darwin : docker mostly
I use it because it’s fun to try out new things, and because of my unhealthy obsession with privacy and user focused software.