Best contribution platform
Would you recommend to develop on Windows 10 or Linux (I mean for MuseScore dev) or it doesn't matter?
Thanks
Would you recommend to develop on Windows 10 or Linux (I mean for MuseScore dev) or it doesn't matter?
Thanks
Do you still have an unanswered question? Please log in first to post your question.
Comments
Better don't start holy wars ;-)
I'm working on Windows 7 and 10, other prefer to work on Linux or Mac, every one to his/her own.
In reply to Better don't start holy wars… by Jojo-Schmitz
Well, it's because I want to install a virtual machine from scratch to do MuseScore dev only, and first choice is the OS.
So I was curious is there is any reason to use one or the other specifically for MuseScore (e.g. because one specific QT dev tool used for MuseScore would work better in Win or Linux) I know that asking that as a general question is useless.
In reply to Well, it's because I want to… by frfancha
Just a thought. If you use a Linux virtual machine you can test builds on both windows and Linux.
In reply to Well, it's because I want to… by frfancha
It is not just Windows vs Linux, it is probably more important which Linux distribution you would use.
Ad also which platform you're more comfortable with
I don't know about "best", but I would say that for any given hardware specs, Linux compilation is generally faster than Windows (on account of both the toolsets and filesystem implementation), and Linux generally requires less fiddling than either Windows or macOS to get a build environment up and running. That said, the number of different Linux distros makes blanket statements like that dangerous.
For virtual machines I use linux as the host (ubuntu studio), plenty of RAM (16GB) and download free copies of Windows from the MS website - they expire after 90 days or so but you can re-activate them, download again. You could also consider dual-booting Windows and linux which is pretty easy and faster than running a VM.
On
https://musescore.org/en/handbook/developers-handbook/compilation/compi…
it is explained to select QT5.9 or QT5.4
For Linux however, on
https://musescore.org/en/handbook/developers-handbook/compilation/compi…
one speaks only about qt-creator and eclipse.
Is eclipse the tool used to develop MuseScore on Linux vs QT on Windows?
In reply to On… by frfancha
You are talking apples and oranges.
Qt is a set of libraries we use for tons of things, needed on all platforms. And you need the correct version for the version of MuseScore you are developing or else it won't compile.
QtCreator is a GUI tool that can help manage your development process - editing, complaining, debugging - and it's useful but not necessary. Personally, I wouldn't think of development without it or something like it. I can't comment on eclipse, never having used it. But QtCreator is great on both Windpws and Linux.
In reply to You are talking apples and… by Marc Sabatella
<< Qt is a set of libraries we use for tons of things, needed on all platforms. And you need the correct version for the version of MuseScore you are developing or else it won't compile >>
Should we add some mention on that to the MuseScore developer doc then, because the Linux page:
https://musescore.org/en/handbook/developers-handbook/compilation/compi…
doesn't mention QT and even less a specific version, contrary to the windows page
https://musescore.org/en/handbook/developers-handbook/compilation/compi…
Adding to the confusion, the Windows page says explicitly:
the development version of MuseScore (master) on Windows requires Qt 5.9 or newer
as if this was specific to Windows
<< I can't comment on eclipse, never having used it >>
Well this confirms that there is a problem with the MuseScore doc for Linux proposing to install Eclipse.
In reply to << Qt is a set of libraries… by frfancha
Qt isn't mentioned in the generic Linux instructions because it should be covered in the dependencies section of the instructions for your particular distribution.
As for eclipse, I don't see the problem. As the instructions say, apparently it is an option that is available to you, just as QtCreator is. I just can't say why you'd want to use it rather than QtCreator. I might assume mainly people who are already using it for other projects might be interested in learning how to use it with MuseScore as well.
TLDR: Use Linux for open source development.
In general, I recommend developing on Linux as it has better much development tools and a better development environment for open source applications. (For closed source applications it is best to build on the target environment.) The Windows development environment has improved dramatically over the last year, but it is still playing catch-up, and this is likely to remain true for the foreseeable future.
Most programming tutorials you find online assume a Bash shell and a Linux development environment (usually Ubuntu or other Debian-derived distro). You can get these on Windows by installing MinGW (the recommended option for compiling MuseScore on Windows), Cygwin or Linux Subsystem for Windows, but these are just ways to simulate a Linux environment and they come with a host of bugs and problems that you simply won't have if you just go straight to a native Linux environment.
Linux is not perfect, it does has it's own set of issues, but if you restrict yourself to a Linux-only environment then you only have to deal with Linux issues, whereas if you try to combine Linux and Windows in some kind of unholy union then you end up with a host of extra problems to deal with. It's much better to keep Linux and Windows separate in a dual-boot or virtual machine environment, rather than trying to combine them à la MinGW/Cygwin/LSW.
I personally own a MacBook Pro which I triple boot Windows, Mac and Linux (Ubuntu). I do most of my development in Linux and then reboot into Windows or Mac when it comes to specific testing for those systems.
In case you were wondering, the Mac development environment closely resembles the Linux environment (once you've installed Homebrew and upgraded Bash and Python) and is better than Windows environment. However, whereas the Windows environment is improving all the time, the Mac environment appears to have gone backwards over recent years due to Apple's stance on the GPL 3, insistence that all developers must install Xcode (even if they don't actually use it), and the general feeling that macOS has become secondary to iOS on Apple's list of priorities.
In reply to In general, I recommend… by shoogle
Hi Shoogle,
Thanks for the long but clear explanation.
<< Linux is not perfect, it does has it's own set of issues >>
Well, on my Debian machine
apt-get install qt5-default
says: qt5-default is already 5.10.1 (I have added buster to sources.list)
but qmake --version says:
using qt 5.7.1
What not 5.10.1 ?
I will post this question on a dev forum (as it is only vaguely related to MuseScore) to solve it... but if you have any suggestion ... more than welcome!
In reply to Hi Shoogle,… by frfancha
I'm not sure why this happened. Possibly you have both versions installed at once, and Qt 5.7 is the default (probably installed in
/usr/lib/x86_64-linux-gnu/qt5/
) so that you don't break any programs that are relying it, whereas Qt 5.10 is optional (probably installed in/opt/qt5/
) and you need to add it to$PATH
before you can use it.FWIW we actually recommend you don't use the version of Qt provided by your Linux distribution. Instead, we recommend using the official version of Qt as provided by the Qt Project.
This is once of the annoyances of Linux; each distribution insists on maintaining it's own version of every open source project rather than just using the upstream version, like on Windows and Mac. Still, when they get it right it means the distribution repositories become a handy one-stop shop for all open source software.