Best contribution platform

• Apr 17, 2018 - 17:48

Would you recommend to develop on Windows 10 or Linux (I mean for MuseScore dev) or it doesn't matter?
Thanks


Comments

In reply to 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.

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.

In reply to 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 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 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.

  • On Linux you get the Linux development environment.
  • On Windows and Mac you will be looking for ways to simulate the Linux development environment.

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 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 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.

Do you still have an unanswered question? Please log in first to post your question.