Enda klagomålet jag har på Linux för desktop är att man verkar ha svårt att bara låta saker vara när de verkligen börjar bli bra. Gnome2 var på slutet riktigt stabilt och användbart, då börjar man med Gnome3 som inte var någon höjdare... Samma sak gäller Canonical, Unity var faktiskt riktigt funktionabelt i 12.04, i alla versioner efter det har saker blivit sämre
Nu är 12.04 en LTS-release, så man kan utan problem köra den fram till 14.04 släpps (kör själv just 12.04 både på Linux-laptopen hemma och på jobbdatorn). Men undrar om man lyckas få ihop saker och ting igen till dessa att 14.04 släpps för 13.04 är ingen höjdare
Vad det gäller klagomålet på programspråk kan jag bara säga WTF???
C# är knappast den nirvana som många Windows-förespråkare vill få det till, tvärt om så har nog Microsoft lyckats få C# dit de alltid hävdade från start: C# är inte en Java-klon utan en ersättare för C++. Fram till 2.0 var C# definitivt en Java-klon, nu i version 5 är inte frågan om man lyckats göra C# mer komplicerat än C++11, så "mission accomplished"?
Avancerade finesser må vara trevligt för små till medelstora projekt då det ger (marginell) färre rader kod, men på en kodbas som är många miljoner rader så är språk som C och Java långt bättre val än mer "avancerade" språk som C#, Scala och C++11. Enda moderna språk (i.e. nyare än 15 år) jag skulle vilja jobba med på något riktigt stort projekt är Go, där var designfilosofin: exakt hur få finesser kan vi ha i ett språk och ändå ha något som är enkelt att jobba med, d.v.s. totalt motsatsen till C#, Scala och C++11 där man i stället kör med: hur många finesser kan vi trycka in i språket utan att det kollapsar under sin egen vikt?
Skulle vara intressant att höra hur personer som faktiskt har erfarenhet av något stort C#-projekt (i.e. >ett par miljoner rader kod). I mitten på 90-talet var C++ väldigt hett och många försökte migrerar från C till C++, de riktigt stora projekt jag känner till som försökte sig på den migreringen gick efter ett tag tillbaka till C...
Gillar man C# så finns ju dels Mono men även Vala. Mono försökte göra en implementation av .Net för Linux, OSX och Windows. Problemet är att .Net är en proprietär teknik från Microsoft, så man kan aldrig bli bättre en en kopia som alltid ligger steget efter.
Vala är rätt sätt att ta språket C# till Linux. Man tar de delar av C# som passar bra för GTK+ och andra Gnome specifika bibliotek, man gör sedan inte en kopia av .Net (biblioteket) utan man använder Gnome-biblioteken som standardbibliotek. Man får då ungefär samma funktioner, men man är inte en kopia av något man aldrig kan hålla jämna steg med, utan man är helt i förarsätet själv. Prestandamässigt så är Vala snabbare än både Mono och .Net, men det viktigaste är att Vala är designat från start att passa GUI-applikationer så man har gjort saker som anrop av destruktorer deterministisk.
Visual Studio är en extremt bra IDE, inget snack om det. Men jobbar man med Java eller Scala så är faktiskt Eclipse också väldigt bra när man väl satt sig in i programmet. Monodevelop är också bra, gillar det faktiskt mer än nyare versioner av VS då Monodevelop är mer likt VS5/6 som är de versioner jag håller som de bästa som någonsin gjorts. Fördrar dock att koda i Emacs (även på Windows) då jag tycker alla andra textredigerare är lite väl spartanska, undantaget är C# då det inte finns något vettigt "emacs-mode" för det språket.
Men som redan påpekats i denna tråd: folk som vill att Linux ska vara en Windows-klon kommer alltid att bli besvikna, samma sak gäller de som försöker använda OSX som en Windows-klon. Både Linux (Ubuntu) och OSX är extremt bra operativsystem om man använder de på sättet de är tänkt att användas på!