»Jeg synes, det er svært at finde ulemper ved C#. Hovedsageligt arbejder jeg med C#, men det sidste års tid har jeg arbejdet med Java. Det er besværligt. Der er ikke noget, der virker. Man skal trykke Java rigtigt på maven, før det gør det rigtige. I C# og .Net virker tingene bare. Der er også udfordringer, men det er så meget nemmere.«
Sådan lyder den kontante udmelding fra Eskild Diderichsen, der er seniorudvikler i konsulentvirksomheden IT Minds, når det handler om de to sprog, som tit konkurrerer på samme anvendelsesområder. Det er typisk server-applikationer, ofte med webgrænseflader.
C# og .Net er ganske populært i Danmark. Det viser Version2’s job-barometer, der som regel peger på, at C# og .Net optræder med højere hyppighed i it-stillingsopslag end Java. Version2’s opgørelse af CMS-systemer i det offentlige fra starten af året viste også en klar dominans af Asp.Net-teknologien, med en andel på 58 procent.
Måske er Microsofts miljø bare nemmere at arbejde med? Det er i hvert fald Eskild Diderichsens mening, og den bygger på konkrete erfaringer:
»For eksempel skulle jeg lave en webapplikation. Kunden forlangte, at det skulle ske med webframeworket Spring Boot. Det udviklingsmiljø og editors, som det anbefales, man bruger, er det værste skrald, jeg nogensinde har arbejdet med. Udviklingsværktøjet er en modificeret udgave af Eclipse. Det var simpelthen forfærdeligt. Det er langsomt, autocomplete fungerer ikke rigtig, og man skal tweake miljøet meget for at få det til at virke. Man kan ikke bare vælge menuen ‘nyt projekt’ - og så kører det. Og det er jeg vant til fra .Net og Visual Studio. Det tog mig et par dage, før jeg overhovedet kunne køre Java-applikationen.«
Open source fjerner risiko for leverandørafhængighed
Med til historien hører det, at det var Eskild Diderichsens første bekendtskab med Spring Boot og Spring Tool Suite (STS).
»I dag ved jeg, at der findes Start.spring.io, og i stedet for STS ville jeg bruge Intellij Idea. Men det var der ingen ‘getting started guides’, der gad at informere mig om. Med det sagt, vil jeg stadig ikke anbefale Spring Boot eller Java til nogen.«
Eskild Diderichsen prøver at overtale sine kunder til at vælge .Net som platform. Det giver ikke altid pote, og det kan der være gode grunde til. Kunden kan have et ønske om ikke at anvende for mange sideløbende teknologier i sin virksomhed.
»Men C# er min favorit. Det er en 'letvægter' og nemt at komme i gang med, og der er et godt community. Du har en forventning om, at tingene fungerer, når det hele kommer fra samme leverandør. Og det gør det også.«
Det er utrolig nemt at integrere C#, Asp.Net, Visual Studio og Azure. Det fungerer nemmere end med Amazons sky, og det spiller bare, lyder udmeldingen.
Men kan man sige, at man sætter sig i et afhængighedsforhold, med bare én leverandør?
»Det er rigtigt. Hvis det skulle begynde at gå skidt for Microsoft, så er det skidt for C# og .Net. Men sprog, framework og runtime er open source. Så kan man tage det og bygge videre på det, hvis det skulle være. Det fjerner det potentielle problem.«
»Nu er Java dødt«
De sammenstykkede elementer i Javas verden kan nemt give bøvl med skidt integration.
»I forhold til den Java-applikation, vi lavede, skulle vi integrere med en Oracle-database. Det var simpelthen noget bøvl. Jeg savnede værktøjer fra .Net-verdenen, som jeg ikke kunne finde alternativer til.«
Det drejer sig for eksempel om .Net’s ‘entity framework,’ der skaber en bro mellem relationsdatabaser og kode.
»Der findes Hibernate til Java, men det kan ikke håndtere versionering af database-schemaet. Når man ændrer databasen, så er det manuelt arbejde, i stedet for at kunne generere ‘database-migrations’ ud fra koden. Der er plugins til Hibernate, der siger, at de kan det der, og jeg har forsøgt at få det til at virke, men når det kommer til stykket, virker det ikke. Det er den oplevelse, jeg har fået med Java. Det er noget gammelt juks.«
I .Net og C# har Microsoft givet mulighed for, at man kan bryde bagud-kompatibilitet, når det drejer sig om store versionsnumre. I modsætning hertil har Java en meget vidtgående bagud-kompatibilitet, men det ser Eskild Diderichsen ikke som et problem:
»Man kan have .Net-frameworks installeret ved siden af hinanden i forskellige versioner, og så kan man rette applikationen efter den version, man vil have. Det gælder også .Net Core.«
Med .Net Core version tre, er Microsofts miljø nu open source hele vejen igennem. Og når IT Minds udvikler applikationer i C#, foregår det i Docker-containere på Linux.
Hvilken betydning får det, at kunder ikke længere skal betale for en Windows Server-licens i forbindelse med drift, men i stedet kan bruge Linux?
»Det betyder, at nu er Java dødt. Færdigt. Der er ikke grund til at skrive nogle linjer kode i Java nogensinde igen. I hvert fald så længe, det handler om server-applikationer,« slutter Eskild Diderichsen.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.