Bijna elke Linux distributie geeft ontwikkelaars uiteenlopende aanpasmogelijkheden, maar er zijn er maar een paar die de eigenschappen hebben die de gemiddelde programmeur aanspreekt: een comfortabele werkomgeving, goede documentatie en handige features die de ontwikkelaar op weg kunnen helpen.

Wij kijken vandaag naar 5 grote Linux distributies die goed aansluiten bij de wensen en eisen van de gemiddelde ontwikkelaar. Het zijn bekende systemen die al jarenlang worden ondersteund, een grote gebruikersgroep en community hebben. Hierdoor loop je weinig risico en kan je deze rustig inzetten voor je ontwikkelomgeving.

Elke distributie heeft zo z'n stekre en zwakke punten, maar allemaal zijn ze makkelijk te gebruiken, daarom richten wij ons op de extra's om de basisystemen heen. Ubuntu en het afgeleide systeem, Linux Mint zijn zeer goed gepolijste systemen en zetten hoog in op veiligheid, maar daardoor heb je misschien niet altijd het nieuwste van het nieuwste. Fedora verblijdt gebruikers een stuk sneller met nieuwe pakketten al zal de snelle release-cyclus misschien iets te veel van het goede zijn voor sommige ontwikkelaars. CentOS is het best voor mensen die zich specifiek richten op RHEL, maar zal ook ontwikkelaars aantrekken die zo weinig mogelijk willen wisselen van versie naar versie. Ten slotte is OpenSuse Leap een systeem die ontwikkelaars aanspreekt vanwege het makkelijke installatieproces, subvolumes en de krachtige toolset voor bestandssysteemmanagement.

Ubuntu Desktop 16.04 LTS

De bekendste en een van de betrouwbaarste keuzes voor gebruikers: Ubuntu Desktop is een systeem dat door veel gebruikers wordt gezien als dé Linux distributie. De professionaliteit waarmee het systeem wordt onderhouden (vooral de LTS-versies) zorgt ervoor dat veel ontwikkelaars voor dit systeem kiezen.

LTS (Long Term Support)-versies worden vijf jaar lang ondersteund waardoor lastige veranderingen ontwikkelaars niet in de weg zitten. Niets is vervelender dan een veranderende desktopopgeving waardoor je tijd kwijt bent aan het herconfigureren van alles wat daarvan afhangt. Nieuwer is nou eenmaal niet altijd beter, maar tegelijkertijd wel alle beveiligingsupdates krijgen betekent in elk geval dat je toch helemaal bij bent.

Een ander mooi pluspunt is dat Ubuntu je de mogelijkheid geeft propriëtaire drivers en software-elementen te ondersteunen. Niet elke ontwikkelaar heeft deze nodig, maar het is bijn te weten dat het kan als het nodig is. Als je je Linux-ontwikkeling doet in een VirtalBox VM, installeert Ubuntu 16.04 LTS drivers die je de mogelijkheid geven je scherm te schalen en muisintegratie toe te passen. (jammer genoeg worden de pre-install klembord extra's niet meegenomen, die zal je zelf moeten installeren door de VirtualBox Guest Additions te installeren.)

Een andere ontwikkelaarsvriendelijke feature is de command line-tool genaamd Ubuntu Make. Umake, (zoals het pakket ook wel eens wordt genoemd) geeft ontwikkelaars de mogelijkheid makkelijk ontwikkelstacks, tools en verschillende IDEs voor Node.js, Dart, Rust, Swift, Go, Scala, Android etc. te installeren. Dit is erg handig omdat de stacks netjes up to date worden gehouden terwijl de rest van het systeem met rust wordt gelaten.

Ten slotte zijn er ook flink wat verschillende IDEs beschikbaar via Canonical's repositories. Niet alleen Eclipe, NetBeans en MonoDevelop kan je daar vandaan halen, ook minder bekende projecten als Ninja, Anjuta en Geany kan je gebruiken. Uiteraard zijn de klassieke editors als GNU Emacs, en Bluefish ook aanwezig.

LinuxMint 18.1

Linux Mint is een afgeleide van Ubuntu maar het verschik is groot genoeg om apart genoemd te worden. Het hoofddoel van Mint was vooral het leveren van een comfortabele desktopomgeving. Bijna alle algemene beslissingen in het installatieproces op dat gebied worden voor je genomen. Waarom zou je als ontwikkelaar voor een gebruikersdistributie gaan vraag je je misschien af?

Het antwoord is simpel: een ontwikkelaar is ook een gebruiker en veel van de features die gebruikers gelukkig maken, maken ook ontwikkelaars gelukkig. Het installatieproces is zo versimpeld dat je bijna niets hoef te doen. Uiteraard heb je de mogelijkheden nog wel, maar het hoeft allemaal niet, dat is mooi.

Mint's eigen desktop, genaamd Cinnamon, lijkt qua look and feel op een mix van Windows XP en Windows 7. Hierdoor zullen Linux-nieuwelingen snel vertrouwd raken met het systeem. Je kan veel elementen aanpassen, maar ook in dit geval hoeft dat allemaal niet per se.

De software die beschikbaar is in de repositories van Mint zijn een echo van wat er allemaal voor Ubuntu te krijgen is, goed nieuws voor ontwikkelaars dus. Eclipse, NetBeans, Geany, MonoDevelop, Lazarus (de gratis Pascal IDE) etc. zijn direct beschikbaar zonder dat je verbinding moet maken met externe bronnen. Umake wordt misschien niet standaard meegeleverd, maar deze kan makkelijk van de Mint community site geplukt worden.

Aangezien Mint is gebaseerd op de Ubuntu LTS-releases kan je rekenen op dezelfde ondersteuning als die van Ubuntu. Mint 18.1 wordt bijvoorbeeld ondersteund tot April 2021.

Fedora 25

Fedora staat bekend als een bleeding-edge product voor features die uiteindelijk terecht zullen komen in Red Hat Enterprise Linux. Daarnaast is het ook een goede desktopomgeving voor Linux-ontwikkelaars, vooral nu Fedora is opgesplitst in desktop, server en cloud-edities. Wij focussen ons uiteraard voor dit artikel op de desktop-versie.

Fedora krijgt twee keer in het jaar een nieuwe release en dat is goed en slecht nieuws tegelijk voor ontwikkelaars die niet blij zijn met alle aanpassingen die zo snel worden gemaakt. Het goede nieuws is: gelukkig kan je deze grote release-updatestegenhouden. De huidige versie wordt nog wel even ondersteund waardoor je niet meteen met een onveilig systeem zit. Het slechte nieuws is echter dat releases maar 13 maanden worden ondersteund. Er zijn geen Long Term Releases. Als je voor Fedora gaat, zal je tenminste een keer per jaar een volledige upgrade moeten doen. Dat betekent dat je je gebruikersomgeving en ontwikkeldata beter op aparte partities kan zetten zodat je er zeker van bent dat je niks kwijtraakt als het mis gaat.

De standaard desktopomgeving van Fedora is GNOME 3, een makkelijke omgeving en erg uitgebreid. Ontwikkelaars die liever voor een simpelere no-nonsense-desktop willen gaan kunnen een aander installeren. De makkelijkste manier is om deze keuze al te maken voordat je het systeem installeer. Je kan dan (net als bij Ubuntu) direct voor een versie gaan die standaard de omgeving naar keuze installeert. Fedora noemt dat Spins. Dit scheelt je weer achteraf een desktop kiezen en installeren en geeft je meer tijd je bezig te houden met je ontwikkelomgeving. Je kan kiezen uit KDE Plasma, XFCE, LXDE, Mate-Compiz, Cinnamon en zelfs de OLPC SOAS desktop is beschikbaar.

Er is een volledige sectie van de release notes gewijd aan ontwikkelaars die voor dit systeem gekozen hebben. De notrs leggen gedetailleerd uit welke ontwikkelruntimes er zijn geinstalleerd en welke nieuwe tools er beschikbaar zijn voor verschillende talen.

Fedora's snelle ugradecyclus zorgt ervoor dat de meegeleverde programmeertalen en runtimes de recentste versies zijn. Fedora zet wat dat betreft echt hoog in op het heden en de toekomst. Verschillende versies van Python zijn tegelijkertijd te gebruiken samen met PyPy en Jython. Ook de nieuwste versie van Docker wordt meegeleverd.

Fedora's software repositories bevatten onder andere de traditionele omgevingen als Eclipse en Vim tot MonoDevelop, Code::Blocks en Geany, maar ook IDE's voor Arduino en MCU 8501 hardware boards. Er is misschien niet zoveel keuze als met Ubuntu, maar Red Hat's uitgebreide RPM pakketformaat zorgt ervoor dat je meer dan genoeg 3rd-party software kan toevoegen aan je systeem.

CentOS 7

Red Hat-fans noemen dit systeem de RHEL-kloons zonder serienummer. Dit systeem is voor mensen die RHEL's stabiliteit en lange ondersteuningscyclus willen, maar niet willen betalen voor RHEL's branding of ondersteuning. CentOS en Red Hat begonnen hun samenwerking in 2014, maar toch is CentOC technisch gezien een onafhankelijk project en levert het een paar versies van de RHEL code die ontwikkelaars aan zullen trekken.

Ontwikkelaars kiezen dit systeem vanwege de stabiliteit en de volledige binaire compatibiliteit met RHEL. Als eje specifiek voor RHEL ontwikkelt is compatibiliteit de belangrijkste reden. Daarnaast wordt het systeem jarenlang ondersteund. CentOS 7 wordt bijvoorbeeld ondersteund tot 30 juni 2024.

En dan nu het minder goede nieuws. De software die wordt meegeleverd in een bepaalde editie van CentOS wordt bijna nooit gewijzigd, De enige updates die dit systeem krijgt zijn bug- en beveiligingsupdates. De pakketten zelf worden niet bijgewerkt. Daarnaast zijn veel standaardcomponenten die je vindt op een desktopomgeving niet aanwezig. Ondersteuning voor MP3-playback zal je niet vinden in de repositories. Dat geldt ook voor verschillende tools als IDEs. Veel verder dan Emacs en Vim zal je standaard niet komen.

Gelukkig is daar makkelijk omgeen te werken. Een van de grootste 3rd-party repositories, de Red Har Software Collections repo, levert volledige software-collecties om aan alle wensen en eisen (van ontwikkelaars) te voldoen. De "devtoolset"-verzameling bevat bijvoorbeeld Eclipse en alle bijbehorende software. Het installeren van deze software doe je door het commando: sudo yum install centos-release-scl and sudo yum install devtoolset-4 in te typen. Daarnaast kan je ook aan de slag gaan met Docker en container images gebruiken.

Het installeren van CentOS gaat praktisch op dezelfde manier als Fedora. Het enige grote verschil is dat je opties krijgt utilities als Kdump te installeren of bepaalde beveiligingsopties in te schakalen. Als je een volledige desktop-ontwikkelomgeving wilt hebben, zal je die zelf na installatie moeten installeren., dat kan handmatig of via de de eerder genoemde 3rd-party repo's.

Te veel werk? Pak dan een van de desktopvriendelijke respins als LiveGNOME of LiveKDE. Je krijgt dan direct een desktopomgeving, maar geen extra ontwikkeltools, die zal je ook in dit geval zelf moeten installeren.

OpenSuse Leap

OpenSuse Leap is Suse's nieuwste twist op een desktopgeorienteerde distributie voor bedrijven. De filosofie achter deze mis is de volwassenheid en betrouwbaarheid van het Suse Linux Enterprise-product met ondersteuning voor moderne hardware en regelmatig bijgewerkte software. Leap us eeb nusx van de Fedora en RHEL (of CentOS)-aanpak, maar de grootste aantrekkingskracht voor ontwikkelaars zijn de slimme configuratiestandaarden.

Als je OpenSuse Leap installeert, zal de partitionering je als eerste opvallen. De Root -artitie is geformatteerd met BtrFS voor verbeterde systeembescherming. De home-partitie staat op een andere XFS-gepartitioneerde partitie voor flexibiliteit. BtrFS heeft enkele ontwikkelaasvriendelijke voordelen: je kan snapshots maken van het bestandssysteem en deze terugrollen, of je kan zelfs rechtstreeks naar een snapshot booten en doorgaan waar je bent gebleven.

Een andere ontwikkelaarsspecifiek voordeel van BtrFS is subvolumes. Subdirectories worden als eigen bestandssystemen behandeld met eigen snapshot-mogelijkheden. Leap's installatieprogramma configureert verschillende applicatiespecifieke sobvolumes; MySQL, MariaDB, PostgreSQL, de spooler, logs en Mailman krijgen allemaal standaard subvolumes. Je kan natuurlijk je eigen subvolumes toevoegen ijdens de installatie. Ook is het mogelijk gewoon te kiezen voor ext4 of XFS. De interface voor het toevoegen van subvolumes is redelijk diep verstopt in de installatie-GUI. Toch is het fijn dat deze flexibiliteit al aanwezig is voordat je je systeem op je computer zet.

Ook kan je tijdens het installatieproces zieken voor verschillende desktopomgevingen. Niet alleen GNOME en KDE, maar ook Xfce, LXDE, Minimal X, Enlightenment en de goede oude textmodus.

De standaard repositories bevatten open source en closed source software. Er is echter niet heel veel voor ontwikkelaars (eclipse is bijvoorbeeld niet aanwezig). Gelukkig heeft Suse een online softwarecatalogus met één-klok-installers waarin een groot aantal applicaties (ook Eclipse) te vinden is.

Leap heft verder ook de grapfische tool Snapper, deze tool laat je specifieke snapshots bekijken waardoor je makkelijk kan zien wat er allemaal gewijzigd is en veranderingen terugrollen.

Er is geen standaard-sectie in de releasenotes van Leap voor ontwikkelaars dus je zal het volledige document moeten doorploegen om te zien of er developer-gerelateerde dingen aanwezig zijn.

Elke grote Leap-relase wordt 36 maanden ondersteund. Minor releases worden 18 manden ondersteund.

Wil je liever een eigen versie van OpenSuse Leap bousen, dat dan, met Suse Studio. Je kan daarvoor een standaard editie van OpenSuse Leap gebruiken als basis en verschillende wijzigingen doorvoeren en aanpassen aan jouw wensen en eisen. Daarnaast kan je kiezen uit duizenden andere images die anderen hebben gemaakt, de kans is groot dat iemand anders al de distributie van je dromen in elkaar heeft gezet.