It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Greetings fellow GOGlodytes and Linux enthusiasts! Can someone point me from experience some good Linux distribution suitable for software development?

My main points are to be able to develop with:
- JAVA (IntelliJ IDEA IDE + GUI development on Swing);
- Mobile development (Android studio, probably thru IntelliJ IDE) - something I really would like to learn and I wonder if it could be made on Linux;

Most of the tools require or rather "works best" on KDE or Gnome, at least those are officially supported. Since there are many changes KDE is going thru now I'm leaning toward Gnome. Another plus for Gnome, for me, would be that I've heard it is lighter on resource requirements. Personally I've used KDE till v.4 and many lightweight environments like LXDE, XFCE, Mate and don't know how painless the transition would be, but I'm willing to try out.
I also would like some distro that is LTS (Long Term Support) as per Ubuntu terminology, because I don't want to have to reinstall it after 6-12 months, (My Mint 16 can't update anything as of the beginning of this year) :( Don't know how I' would feel for a rolling release, do you think it could easily break a carefully setted up development environment?
No posts in this topic were marked as the solution yet. If you can help, add your reply
If you don't need the absolute latest software, you could try Debian Stable. It works well, is easy to install and maintain these days, is well supported for a long time, and updates to the OS are pretty much entirely bug fixes; in other words, an update won't suddenly force you to change your workflow.

Edit: Also, Debian lets you choose the desktop environment that you want.
Post edited May 09, 2016 by dtgreene
avatar
leon30: Greetings fellow GOGlodytes and Linux enthusiasts! Can someone point me from experience some good Linux distribution suitable for software development?

My main points are to be able to develop with:
- JAVA (IntelliJ IDEA IDE + GUI development on Swing);
- Mobile development (Android studio, probably thru IntelliJ IDE) - something I really would like to learn and I wonder if it could be made on Linux;

Most of the tools require or rather "works best" on KDE or Gnome, at least those are officially supported. Since there are many changes KDE is going thru now I'm leaning toward Gnome. Another plus for Gnome, for me, would be that I've heard it is lighter on resource requirements. Personally I've used KDE till v.4 and many lightweight environments like LXDE, XFCE, Mate and don't know how painless the transition would be, but I'm willing to try out.
I also would like some distro that is LTS (Long Term Support) as per Ubuntu terminology, because I don't want to have to reinstall it after 6-12 months, (My Mint 16 can't update anything as of the beginning of this year) :( Don't know how I' would feel for a rolling release, do you think it could easily break a carefully setted up development environment?
GNOME3 on most rolling distros is going through a constant stream of updates for version 3.20, they're not major updates but I get updates here and there :D

Also, if you're going to develop anything for Linux please do try and keep it somewhat future-proof :) You have no idea how much of a pain it is to have hunt down obsolete versions of various libraries just to be able to compile something :/

As for development, I am not sure what distro would be best, to be honest, as I always thought that the tools are what mattered the most...
avatar
JudasIscariot: As for development, I am not sure what distro would be best, to be honest, as I always thought that the tools are what mattered the most...
Sure, the tools matter the most, but to begin with it might be useful to go with one of the most common distributions regarding what you're building, so that you easily can make sure it works well in the primary target environment (say, a RedHat-based one if you're doing corporate software or an Ubuntu-based one for just about anything else, as those are the most common in each kind of environment). Then you likely want to test your thing in other environments as well, say a fully updated Arch to see if it breaks with the latest libraries, the currently-supported LTS Ubuntu (if you aren't already using it) to see how it fares with a bit older versions, and some other random ones.
avatar
Maighstir: Then you likely want to test your thing in other environments as well, say a fully updated Arch to see if it breaks with the latest libraries, the currently-supported LTS Ubuntu (if you aren't already using it) to see how it fares with a bit older versions, and some other random ones.
Of note, you can use virtual machines or chroots for this purpose; that way, you don't need to worry about dual-booting or getting another computer just for testing.

(On the other hand, if you expect your software to run on something like a Raspberry Pi, you might want to get one for testing purposes.)
LTS Ubuntu is the best choice since there are many applications that are tested only on Ubuntu.
For example, the Linux version of Unity3d (which is still in beta), is tested only on Ubuntu. I know you don't actually want to use Unity3d but still I think many applications work better on Ubuntu.
LTS because you don't want to update it every year.
avatar
Maighstir: Then you likely want to test your thing in other environments as well, say a fully updated Arch to see if it breaks with the latest libraries, the currently-supported LTS Ubuntu (if you aren't already using it) to see how it fares with a bit older versions, and some other random ones.
avatar
dtgreene: Of note, you can use virtual machines or chroots for this purpose; that way, you don't need to worry about dual-booting or getting another computer just for testing.

(On the other hand, if you expect your software to run on something like a Raspberry Pi, you might want to get one for testing purposes.)
Yeah, for different software environments, a VM is certainly enough, and emulation helps even when testing on different hardware (while VirtualBox only does x86, and chrooting only does whichever architecture you're actually running on, qemu can emulate several different architectures), but if you're targeting a specific piece of hardware, you'll definitely want one or a couple of the actual machine.
avatar
leon30: Greetings fellow GOGlodytes and Linux enthusiasts! Can someone point me from experience some good Linux distribution suitable for software development?

My main points are to be able to develop with:
- JAVA (IntelliJ IDEA IDE + GUI development on Swing);
- Mobile development (Android studio, probably thru IntelliJ IDE) - something I really would like to learn and I wonder if it could be made on Linux;

Most of the tools require or rather "works best" on KDE or Gnome, at least those are officially supported. Since there are many changes KDE is going thru now I'm leaning toward Gnome. Another plus for Gnome, for me, would be that I've heard it is lighter on resource requirements. Personally I've used KDE till v.4 and many lightweight environments like LXDE, XFCE, Mate and don't know how painless the transition would be, but I'm willing to try out.
I also would like some distro that is LTS (Long Term Support) as per Ubuntu terminology, because I don't want to have to reinstall it after 6-12 months, (My Mint 16 can't update anything as of the beginning of this year) :( Don't know how I' would feel for a rolling release, do you think it could easily break a carefully setted up development environment?
In that order:

1) Any.

2) Those are available on all but the most specialized distros.

3) GNOME3 was a plague on mankind. Why do you think MATE and Cinnamon exist? Though it's possible it's gotten better now, I'd still recommend you keep using the lightweight DEs or just whatever parts of them you find useful if resource usage is a factor. If you have more than one monitor, consider a tiling window manager.

4) Mint does come in LTS flavor. It's just Ubuntu under the hood, after all. Why not use that if you're already familiar with it?
Thanks for the responses till now, let me just elaborate that I'm totally new into the Java world and programming under Linux (if we don't count Bash scripts into account).
Debian stable + DE is a great choice, but since JudasIscariot and hyperagathon pointed out Gnome 3 is being in fast development nowadays too I'm not sure how good will that be (but will investigate what gnome options are possible, because I absolutely like how lightweight Debian could be).
Since I've tried to setup an IDE + JDK on my Mint 16, and failed miserably I'm looking into ready-out-of-the-box OS+DE solution in order to be able to built my development setup on top of it.
I'm talking about KDE, Gnome and Unity only because as stated here these are the desktop environments that my IDE of choice supports, and I'm asking for Gnome OSes, because according to my experience the RAM usage is like that Unity>KDE>Gnome and my system will start with 2GB of ram, later will become 4 without a swap space.
I see here only the 3 major enterprise players on the Linux scene are officially supported for JDK and I wonder which one is more resource efficient and with which desktop environment - Fedora or OpenSUSE, or maybe Ubuntu (if your experience is newer than mine), are those stable enough or they break regularly?
After a further research I found that Swing and JavaFX are entirely Java based so they depends to the requirements of the JDK version i choose (most probably 7 or 8).
Post edited May 09, 2016 by leon30
I'm using Ubuntu Gnome (still 14.04 until the end of the year). Rock solid, everything works as it should.
Arch Linux, for development, and everything else. Install whatever you need, configure it your way, and enjoy your bleeding-edge Linux environment without the excessive junk that comes with Ubuntu & friends. It is a rolling release distro btw., so you install once, apply tiny upgrades everyday (or not); no reinstall needed for many years.

The runner up is Debian Sid if you are more familiar with Debian-based distros and not feeling like learning something new.
For development, depends upon what you develop.

If you need flexibility in choosing versions, then its Gentoo or Exherbo. Need precompiled desktop, give Calculate Linux a try.
If you need to develop something specific on cutting edge stack, then its Arch.
If you need to develop something specific on stable stack, then its Debian Stable.
If you don't want complexity of Arch, yet want cutting age stack, then its Ubuntu or Mint, although its packaging tools are less developer-friendly and more user friendly (same as Debian).
---

Edit: Ah, Java. Well, it depends if you need more cutting edge or currently stable. The Debian Stable (with backports) is by far best fire-and-forget platform. If you need ready desktop based and fully compatible with it, its SolydK or SolydX.

I don't know if you want anything outside of Java.. You could pull custom stuff with Gentoo and Arch the fastest, but Arch requires much more attention on upgrades and Gentoo much more CPU time. Both require more inside knowledge than Debian/Solyd.
Post edited May 11, 2016 by Lin545
avatar
leon30: Since I've tried to setup an IDE + JDK on my Mint 16, and failed miserably I'm looking into ready-out-of-the-box OS+DE solution in order to be able to built my development setup on top of it.
What went wrong? This should literally be a matter of apt-getting a few packages.

I'm talking about KDE, Gnome and Unity only because as stated here these are the desktop environments that my IDE of choice supports
Ah, I see what worries you. You can freely ignore that, though. IntelliJ doesn't need any GNOME, KDE or Unity specific libraries, nor does it depend on the features of these as far as DEs go.

and I'm asking for Gnome OSes, because according to my experience the RAM usage is like that Unity>KDE>Gnome and my system will start with 2GB of ram, later will become 4 without a swap space.
Between the system, a browser and these behemoth IDEs, prepare to swap. A really good idea would be to use a lightweight DE, or just a window manager (and whatever else you need, of course).

I see here only the 3 major enterprise players on the Linux scene are officially supported for JDK and I wonder which one is more resource efficient and with which desktop environment - Fedora or OpenSUSE, or maybe Ubuntu (if your experience is newer than mine), are those stable enough or they break regularly?
May I ask why do you care about this certification? Does your work require it, or do you plan on purchasing suport from Oracle? If not, this too is just hot air. JDK will work on any other distro that has it in its repositories. It wouldn't be there otherwise :) However, if you must use one of these three, go with either Ubuntu or OpenSUSE. Fedora is Red Hat's polygon for new stuff, and my experience with it is that it tends to fall apart sooner than later.
avatar
hyperagathon: .....
avatar
leon30: I'm talking about KDE, Gnome and Unity only because as stated here these are the desktop environments that my IDE of choice supports
avatar
hyperagathon: Ah, I see what worries you. You can freely ignore that, though. IntelliJ doesn't need any GNOME, KDE or Unity specific libraries, nor does it depend on the features of these as far as DEs go.
Thanks that's exactly what I wanted to know, I'll definitely try some lighter alternatives first! After some research I will try first Debian 8 stable + JWM / MATE / LXDE in that order and may be the CrunchBang successor from Bunsen Labs. Thought of CentOS 7 or Trisquel 7, but they seems heavier at this point.

avatar
leon30: and I'm asking for Gnome OSes, because according to my experience the RAM usage is like that Unity>KDE>Gnome and my system will start with 2GB of ram, later will become 4 without a swap space.
avatar
hyperagathon: Between the system, a browser and these behemoth IDEs, prepare to swap. A really good idea would be to use a lightweight DE, or just a window manager (and whatever else you need, of course).
What would you recommend me as a swap partition size for 2-4 GB Ram and which OS version do you think will perform better the 64-bit or the 32-bit ?

avatar
leon30: I see here only the 3 major enterprise players on the Linux scene are officially supported for JDK and I wonder which one is more resource efficient and with which desktop environment - Fedora or OpenSUSE, or maybe Ubuntu (if your experience is newer than mine), are those stable enough or they break regularly?
avatar
hyperagathon: May I ask why do you care about this certification? Does your work require it, or do you plan on purchasing suport from Oracle? If not, this too is just hot air. JDK will work on any other distro that has it in its repositories. It wouldn't be there otherwise :) However, if you must use one of these three, go with either Ubuntu or OpenSUSE. Fedora is Red Hat's polygon for new stuff, and my experience with it is that it tends to fall apart sooner than later.
I thought this means more stable out-of-the-box performance, but after I found out that even the Android is going toward OpenJDK, it became not a big deal for me :)
Post edited May 12, 2016 by leon30
avatar
leon30: Thanks that's exactly what I wanted to know, I'll definitely try some lighter alternatives first! After some research I will try first Debian 8 stable + JWM / MATE / LXDE in that order and may be the CrunchBang successor from Bunsen Labs. Thought of CentOS 7 or Trisquel 7, but they seems heavier at this point.
That seems quite reasonable.

What would you recommend me as a swap partition size for 2-4 GB Ram and which OS version do you think will perform better the 64-bit or the 32-bit ?
Well, historically, it was 1:1, but on a 4 GB system, that's probably a waste - maybe 2 for both 2 and 4 GB? But honestly, you don't want to touch swap, so upgrade when you can. As for 32 vs 64, I'm personally stuck on 32, and can't really comment. I'd assume the memory consumption is going to be higher on 64, but it might be negligible (?).

I thought this means more stable out-of-the-box performance, but after I found out that even the Android is going toward OpenJDK, it became not a big deal for me :)
Good :) This is purely anecdotal and obviously I don't use any enterprise Java apps, but I've seen precisely one app that *required* Oracle's version in the last six-seven years (=the time I've been using OpenJDK).