Why are app developers porting to Apple Silicon and not to Linux?

preview_player
Показать описание


Today we're going to address something that is regularly pointed out to me in the comments: why would third party application developers go through all the trouble of porting their apps to Apple Silicon, which is a whole new architecture, and not do a port for Linux, which runs mostly on x86 CPUs, same as what Macs and Windows computers generally run up to that point

Become a channel member, or a Patreon Member to get access to a weekly patroncast and vote on the next topics I'll cover:

00:00 Intro
01:29 Market Share
02:38 Developer Tools
04:27 App Distribution
07:45 The elementary exception
09:47 Parting Thoughts

The first main reason for developers taking the time to port their apps, is market share. But wait a minute, Apple might be very present in the US, but in the rest of the world, Macs just aren't all that common.

According to StatCounter, Windows still holds 73.5% of the market, with Mac OS commanding 15.87%. That's small, but it's still a lot higher than Linux on the desktop, which only holds 2.38% marketshare.

So, obviously, as a developer, if you look at these numbers, you're going to invest time porting your app to the new Apple platform, and not to Linux.

Second reason is developer tools.

Apple is known for restricting what they allow on their platforms, but they also have very good developer tools. They have their own IDE, Xcode, their preferred programming languages, with Swift and Objective C, and they have tons and tons of online resources and documentation to help you get started.

There is no "standardized starter kit" on Linux that would give you a quick and easy starting point. You have to pick between the language you want to use, between GTK or Qt, or Clutter, or something else, and then find some tutorials and documentation by yourself, and get coding.

Apple has simple guides and checklists to help you look at what you need to take care of, when you start porting your app to their new architecture. it's a guided process, and you can keep using the tools you were already using: same language, same IDE, same compilation process.

I think it all comes down to the process: on the Apple platform, you have a very straightforward path, you're guided every step of the way. You're more limited, and you have to pay to distribute, I think it's 99$ per year to get access to the developer tools, but at least you know where you're going.

On Linux, you have to make conscious choices along the way, every step of the way. It's a "do it yourself" process: you need to look for, and learn on your own, as there is no standardized development platform.

Third reason? Application distribution.

Distributing your app is crucial to ensure that people will find it, download it, try it, use it, and maybe pay for it. Apple has that pretty much in the bag.

The Mac App Store might not have everything that you can install on your mac, but it's still another standardized process. You have an online developer console, where you upload your app, enter the details, submit it for review, make changes, upload updates, whatever.

If the mac app store rejects you, or if their limitations don't fit your app, you can still distribute it through your own website, you only have 1 binary to provide. Macs only have 1 packaging format, all applications are .app, which is basically a folder containing the executable and its required libraries, basically like an AppImage.

On Linux, distributing your app is a LOT more convoluted.

First, you need to have packages separated for each architecture: x86 or ARM for example. That's 2 compilation to do, 2 packages to maintain.

Second, you'll have to choose the packaging format. If you only do a .deb, your app won't work on Fedora, Red Hat, openSUSE, or Arch based distros.
If you do an RPM, you lock yourself out of Debian, and all ubuntu based distros.

You could do a flatpak, or a snap, but not all distros use these, even though Flatpak is virtually everywhere now, and some users don't like these packaging formats and won't use them.

Then there is the fact that only ONE app store on Linux lets you ask for money for your app, that's the elementary AppCenter. Anywhere else, you can't charge users for downloading the app, so you have to implement some kind of licence key system, or subscription system, that you have to handle all on your own
Рекомендации по теме
Комментарии
Автор

I love your channel because while you love Linux, you also are willing to critique it where it needs it. The world of Linux needs more folks like you

NeonSonOfXenon
Автор

Because the OS (macOS) remains the same. You just need to provide the ability to build on a new architecture, with some tweaks. But porting to Linux requires much more resources.

AlekseySamoilov
Автор

You literally have to recompile your app with the M1 compiler, v/s writing a new app which uses entirely different syscalls and APIs. You don't see the architecture differences at the high level.

comradepeter
Автор

Linux foundation must dedicate resources not only to the Linux kernel but also to standardisation of various Linux interfaces and procedures (without limiting anyone that wants to deviate from these). Otherwise, Linux will always be a wild jungle for adventurers only. Also, Android apps must be natively supported.

esould
Автор

I have used Manjaro, Ubuntu, Mint none of them motivated me to develop an app for linux, but Elementary OS did, It was way more easier to develop -> test -> deploy, even though the review process takes some time I still like the elementary's Process and the neat documentation.

solairaj
Автор

Apple consumers more likely to spend larger amounts of money

barbietripping
Автор

"Dedicated starter kit" is the reason why elementary os is successful for app developers.

AbhinavKulshreshtha
Автор

The problems Every Linux guys don't talk about is highlighted here.

prabhatmaurya
Автор

One more reason, These AAA developers also know that most of the linux users are gonna use Free and Open source software anyway 😂

shawan
Автор

I love progress bar under sponsored ads

absolutelyproprietary
Автор

Linux is amazing for developers, arguably the best one, when it comes to writing code. I say this as a Windows guy. Yes, I agree that the distribution channel is a big deal, but I would like to add that the TESTING is arduous enough to be a big factor. With Windows it’s bad enough, the plethora of drivers and settings your app may encounter on any random computer is really hard to comprehensively test, but to get a desktop app running reliably on a wide enough set of Linux distributions regardless of what desktop it uses, what startup model it uses, DPI, video drivers, _sound_, […] - it just is too much variability. For Mac devs, they buy one Mac, they run their software on it - if it looks right, it will look right on every machine, you don’t need an army of testers. If your software is paid for, you can’t rely on volunteers - you need to test yourself or hire, which makes Windows bad compared to Mac, and Linux a lot worse than that.

rikardottosson
Автор

Even Linus Torvalds is fed up of having so many Distros.
Edit: Pardon youtube french

vaibhavbv
Автор

Simply put: "Freedom comes at a price"

thingsiplay
Автор

"Rust is the future C's a dead language."

Never before have I been so offended by something I 100% agree with.

tahsintariq
Автор

Apart from understanding your points, I simply find it funny about your parody of "the toxic aspect of Linux community"

zgliu
Автор

I agree with every point of the video. And of course, the idea that everyone should use Free/OpenSource is so crucial in the Linux world. But developers also need to eat :)

Meamka
Автор

I love how you approach Linux's problems from a systemic point of view.

Those who talk about things others don't deserve attention.

finnk
Автор

Nick, not sure if you will see this but you are doing a fantastic job spreading knowledge of Linux. The more high quality youtubers such as yourself get involved, the more people will be willing to try linux and find out how simple most distros have made it. I always look forward to your content!

kevinbreen
Автор

That’s a really interesting topic and I like and agree with your opinion. I have been following your channel for a while now and I think you’re doing a great job. Kudos to you! And cheers from Brazil!

medeirosdez
Автор

Also you forget the biggest thing why AAA companies don't go LINUX. There are issues on the tech side, but the guy who decides where to move next never used a command line since MS-DOS. He is a MANAGER. One good exercise you can do NICK is to have a poll with a open answer to your followers or patreons to answer this simple question: "If you were talking to the Adobe president, how would you convince him to go linux".

welcome to shbcf.ru