Searching for info how to use Fusion360 on Linux I stumbled over this insane thread.
It is always the same. Somebody asks politely for Linux support and all the
Linux haters start another flame war about about what OS is better. Normally
without having any Linux experience. Please respect that people have different
opinions.
I just want to talk about technical problems and solutions. I'm developer and
in my company we also develop cross-platform tools using C++ and Qt library.
These tools work on Windows and Linux, it's just a matter of cross-compiling.
It could work on Mac OS X too, and on every other OS which is supported by Qt
(QNX, FreeBSD, etc.). We just have no interest in OS X, because we don't have
any customer which works on that Apple OS (industrial automation area).
I'm not sure, but I believe Fusion360 is also based on Qt libraries,
hence it works on Windows, Mac, and would most likely also work on Linux.
If you design your application portable this is just a matter of cross-compiling,
there is no reason to port anything, except for some rare corner cases.
So why is there no Linux version?
Typical reasons are:
* the management sees not enough customers here. It's a question about cost/income ratio.
- I think if done right, there are not much costs (keyword continuous integration)
- Number of potential customers. Linux users need to raise there hand and write to Autodesk,
so that they can see, there are potential customers. Linux leads already on the server market,
and on embedded devices, smart phones and tablets (if you count Android as Linux).
On the desktop Windows is still the dominating system (88%), Mac (9%), Linux (2%).
But this is for the average user, this doesn't need to be true for engineers and makers using CAD software.
I have no statistic here, but I personally have never seen engineers working on Mac.
But I have seen many engineers, software developers and scientists that work on Linux.
* Linux binary compatibility issues: There is not one Linux, there are many Linux distributions,
which are not binary compatible. It is a lot of work to build and test for many different Linux flavours.
There have been different solutions for this problem over the years, but AppImage seems to best and simplest solution today. See https://appimage.org/
We also use this in my company. Cura, the 3d printer slicing software uses it, and many other software is distributed as AppImage.
AppImage containers are comparable to DMG files on Mac from the user point of view. Simply download it, make it executable and run it.
No installation. If you don't want it anymore, just remove that file.
* Graphics card driver issues: Game developers had it hard for a long time on Linux. MS Direct3d code only works on Windows.
OpenGL code is portable, but not all drivers support all features. Vendors like NVidia didn't open any specs,
so the Linux developers needed to reverse engineer...but that's another story.
Anyway, for most 3D tools today the drivers are OK. Cura, OpenSCAD, FreeCAD, Slic3r, Browsers, etc. All these tools support3D views, and this works even on Intel on board graphics on Linux. The requirements are not as high as for modern games, where you your always need the latest NVidia card.
So this should not be a real issue for Fusion360.
* Testing: every supported system needs to be tested, which costs money.
To solution to this is test automation. Unit tests which get executed on check-in (Continuous Integration),
automated GUI test with tools like Squish.
* Support: More customers, more support. And you need personnel with Linux know-how, which is maybe not there today.
From the application usage this should be the same as before, because this is OS independent. But there may be new installation issues.
Solution: I think most Linux users can live without support. A Beta version is better than nothing.
Linux users are normally good in solving issues, and the community helps each other.
* Equipment costs: Actually, this is not in issue, because here Linux is the clear winner. Linux works on every PC. All the software is for free: The OS, compilers, IDEs, static code analyzers, fuzzy testing tools, Docker virtualization, git version control system, etc.
For Windows your need licenses for the OS, Visual Studio, etc.
For Mac OS X you also need to buy the expensive Apple hardware.
For this reason Linux is such an interesting platform for developers. I know companies, where the developers develop there software on Linux even though they are targeting Windows.
I hope I could give some insight in building and distributing Linux applications. I doubt this will change anything, but at least I tried it. Anyway I would prefer a native application over any web based solution, like the most people.
It works better, more fluent, without internet connection. And I can keep may designs private and don't get forced to store this in any cloud.
Final note on Mac OS X for all the Linux haters: Apple gave up developing their own OS with Mac OS X, which was a good decision. It uses a Mach Kernel which comes from the Unix world. It has more in common with a Linux kernel, than with Windows. All the command line tools are the same GNU tools like on Linux. So are services like the SSH daemon. The print system is CUPS (Common Unix Print System), that comes from the Linux world. The browser is a fork from KDE's Konqueror, which is also a Linux tool. On the Mac your also have SAMBA and NFS, and many more Linux tools. Just the GUI uses their own framework, which is based on ancient NEXTSTEP and Objective-C. So at the end Mac OS X is 50% Linux 🙂 Indeed you can even install an X server on Mac OS X and run all kinds of Linux tools there too (I did this because so many good Linux tools are missing on a Mac).
And if Apple would decide to use the Linux kernel as their OS core, users wouldn't recognize this, like people normally don't know that a Linux kernel is running in the Android device.