5 ms·
I'm in the process of doing this, but it's difficult. When I switched from Linux to OS X as my desktop about a decade ago, I felt at home in a way I hadn't been
by Udo 10y ago
I'm in the process of doing this, but it's difficult. When I switched from Linux to OS X as my desktop about a decade ago, I felt at home in a way I hadn't been since the Amiga. Now the Mac platform is stagnating, and in fact becoming somewhat of a prison, in both hardware and software.
There's very clearly no future here for me, but I'm switching to Linux sort-of by default, not because it's better. In many respects, it's worse. There's always Windows, which would have the benefit of a (comparatively) low-maintenance system, and I could get working versions of many apps that have been making my life easier on the Mac for some time, but the system itself feels alien to me.
I'm certainly not switching to Linux on already existing Macs, because macOS hasn't become bad enough to do that, not by a long shot. What's driving the slow changeover right now is hardware. So I got a PC, and I'm running it side-by-side with a Mac via Synergy, but honestly I spend most of my time on the Mac side. When I switched to OS X it was immediate and without looking back, whereas now I'm dragging my heels.
All of this makes me very unhappy. I wish more vendors would just cross-compile to all three platforms. There should be very few, if any, apps that absolutely can't exist on multiple platforms. I understand that a big part of the problem is platform-independent UI, but even that shouldn't be such a huge deal if you just take care of that from the start - instead of suddenly being in the situation where your app is so intricately interwoven with your UI toolkit that it can't be separated anymore.
- tornadoboy55 10y agoThe biggest issue isn't UI - GTK easily solves that. It's just that when you officially release something you have to support it. Support costs money. That isn't feasible for a ~3% market share OS.
- Udo 10y ago> The biggest issue isn't UI - GTK easily solves that. I laid out above why this doesn't solve anything for products that haven't been developed with that in mind from the start. These are the majority of commercial software. > Support costs money. That isn't feasible for a ~3% market share OS. That's part of the reason why many vendors didn't (and still don't) support OS X either, whereas those who did turned a tidy profit. It's certainly worth it if you just charge for it. And there's always the prospect of growing your market share with an underdeveloped platform. Personally I think it's largely psychological. Vendors assume Linux users will likely not pay for professional software. But with more developers switching over that could change.
- tornadoboy55 10y agoThe difference is that OS X is largely used by wealthier people (that can afford the entry fee into Apple's walled garden). OS X is also a stable target. Supporting all major Linux distros would already mean distributing your app in 4+ (!) package formats. Oh, and every distro has different libraries and bugs. Then there's the problem of Linux users, who are compromised largely of tinkerers and FOSS zealots. Believe me man, I would be stoked if I could use 1Password, Alfred, Amphetamine, Karabiner, etc. on Linux but it simply isn't happening for a few more years. Ingredients needed: 1 package format (so Flatpak needs to win because most other distros will never accept Snappy packages) 1 UI kit (GTK has this bagged) 1 core set of libraries and most of all consistency. Even from LTS to LTS there shouldn't change too much. I'm pretty sure someone that's used to OS9 could pick up Sierra and be reasonably productive. Try teaching an average person Gnome 1.0 on Debian 2.1 and then drop him in Gnome 3.2 on Debian 8.6..... yeah
- cbcoutinho 10y agoAs far as package format goes, I think it depends on the complexity of your app. Electron is making development of rather simple apps pretty straight-forward - I'm using at least 2 apps daily that are developed using Electron, and I can access them on both Linux and Windows. I'm not a really heavy application user, but I am curious about the limitations of centralizing packaging using something like Flatpak or Electron. If you try to build a program like Photoshop or Solidworks, do you run into some of the bottlenecks of those services?
- tornadoboy55 10y agoElectron is a webbrowser-as-a-backend on which JS+HTML5 apps run. Photoshop is written in C++, or at least large parts of it. Plus its millions of lines of code. Adobe (or any company really) will never go to the effort (think ten-thousands of man hours) of completely rewriting Photoshop (let alone their entire Creative Suite) just so its on Electron and Linux geeks can run it. Plus, its JS- it will run like hog-shit compared to C++. And even if you hypothetically did get it somewhat performant - we need to get rid of feeling the need to run everything on Electron. Atom runs on Electron. GitKraken runs on Electron. So does WhatsApp. I don't want to spawn 5 Electron instances just to run some apps. Its just horribly inefficient. WhatsApp on OS X, a chat client, uses 500Mb memory(!). Safari with 5 tabs open uses 550Mb. Telegram, which basically does the same as WhatsApp uses 125Mb, because its written natively. What would be best is a unified repo that solely contains Flatpaks. Flatpaks contain all the libraries the application needs to work, so no more issues supporting 20 different distros. However, that will never happen: 2/3+ of Linux users are on Ubuntu and Canonical will always want control (and they want to force their own standard- Snappy packages), and the other 1/3 does not want to bend to Canonical and their weird contributor license. I've already voiced it elsewhere but (mainline) Linux could be as solid as OS X, if only there was more consistency. If almost all distros were purely Wayland+Gnome+Flatpak (and mostly on the same versions) then most companies would feel comfortable targeting that instead of the constant moving multi-target that Linux is now.
- crdoconnor 10y agoAs a linux dev, I find regression testing my code on macs a royal pain in the ass. There are virtual machines but they're flaky. brew also causes all manner of issues. It's not the best designed package manager in the first place and it also suffers by dint of not being the default mode of installing software on a mac.
- tempodox 10y agoNot being the default either, but I find Macports a better, and cleaner, alternative to Homebrew. It keeps all its stuff in `/opt/local`, and thereby separate from both system (`/usr`) and my private shit (`/usr/local`).
- Fnoord 10y agoHomebrew went away from using /opt recently, for $reasons (I read the discussion approx half a year ago on Github). They also changed the location of Casks recently as well. You can still install all your Homebrew software elsewhere, if you insist.
- danieldk 10y agoHomebrew went away from using /opt recently, for $reasons Homebrew has been installing to /usr/local since the beginning of times: http://web.archive.org/web/20100317015208/http://mxcl.github.com/homebrew http://web.archive.org/web/20100317015208/http://mxcl.github...
- Fnoord 10y agoOops, my bad. Then it was just the Cask installation point which was changed [1]. I ended up reinstalling everything (sounds worse than it was) because merely moving and symlinking broke some software. Do you know if other package managers for macOS (or Mac OS X as it was called back then) did install in /opt? [1] https://github.com/caskroom/homebrew-cask/issues/21913 https://github.com/caskroom/homebrew-cask/issues/21913
- Fnoord 10y ago> The biggest issue isn't UI - GTK easily solves that. A lot of commercially available software for Linux actually uses Qt, not GTK.
- nottorp 10y agoIndeed, Qt can actually look native (and use native controls where available) on all 3 platforms. Gtk, not so much.
- spangry 10y agoI feel like it's not so much that there's a lack of good UI libraries (e.g. GTK, QT5), but rather a lack of good design. I've been using Linux exclusively since Windows 10 came out, and even big UI focussed projects like Gnome seem to make the most inexplicable design decisions. Anyone who has used Nautilus file manager for 10 minutes will know exactly what I'm talking about. Or look at the Gnome 'tracker' project: a technically elegant system that is completely unusable (unless you're comfortable writing cli SPARQL queries or interacting with the underlying sqlite database directly). To be clear, I don't mean to be pointing the finger or blaming anyone. Rather, I think there's an inherent (but by no means unsolvable) problem with large, volunteer-driven free software/open-source projects: how do you make these projects attractive to good designers, in the same way that they are attractive to good engineers and developers? This is just my gut feeling as someone who has used Linux daily for the past few years, so take with a big grain of salt...
- alkonaut 10y ago> GTK easily solves that But I'd have to develop with GTK on windows to support that, which is a worse experience now than using e.g. XAML/WPF on Windows (which is declarative, has better HiDpi support etc). So I would hesitate to make a windows desktop app cross platform at that cost, unless the linux user base was large.
- al2o3cr 10y ago"There's very clearly no future here for me, but I'm switching to Linux sort-of by default" You've described all the reasons it's currently sucking, but not any of the ones that would motivate you to switch to a platform you admit sucks.
- cauterized 10y agoHardware isn't enough?