Om du har jobbat intensivt med ett programmeringsspråk så lär man känna till dess konstiga lösningar och vilka buggar det finns i den implementation du använder. Man upptäcker att vissa konstruktioner i ett språk är upphov till ologiska lösningar och förvirring.

För det mesta kan man inte göra något åt saken. Det är helt enkelt svårt att överge ett språk som är populärt och garanterar att vi har jobb. Det kanske inte ens finns något bättre alternativ, eftersom det är rätt troligt att vi använder de bästa lösningarna som mänskligheten har mäktat frambringa.

Här tipsar IDG News om sju språk som vi älskar att hata, men inte kan leva utan.

1. Java

Den virtuella Javamaskinen och klassbiblioteken kanske kommer från 90-talet, men syntaxen kommer från 70-talet när C skapades. Den automatiska minneshanteringen verkar vara ett stort steg framåt, tills din kod bestämmer sig för att ta en paus när minnet rensas. Javautvecklare har klagat länge på många saker och Oracle har fixat en del av dem. Men lösningarna orsakar nya problem, som att en del ny kod inte fungerar med äldre virtuella Javamaskiner.

Inget av det här spelar någon roll. Java utgör inte bara fundamentet för webben och många mobiler, det är också det första språket som lärs ut i många skolor. Bredden på biblioteken är större än för i stort sett alla andra språk. Varför ska man använda något annat språk?

2. C

Det finns mycket att fundera över med ett språk som kanske borde kallas ”portabel assembler”. Finns det till exempel någon som gillar att skriva separata definitionsfiler (header files)? I teorin ska vi kunna använda pekararitmetik för att bygga supersmarta lösningar, men hur många vågar utnyttjar de möjligheterna? De som har försökt upptäcker ofta att koden havererar. Och finns det någon som kommer ihåg alla regler för att undvika säkerhetshål i C-kod?

Men vi har inget val, eftersom C används för kritiska lösningar i mobiler, för drivrutiner och inbäddade system, och så vidare.

3. Javascript

Javascripts skapare försökte skapa ett modernt språk. Tyvärr dömde de oss till ett liv bestående av att hålla reda på olika typer av parenteser. Lägg till anonyma funktioner, Json-datastrukturer, med mera, så är det tydligt att våra fingrar kommer att få jobba hårt på tangentborden. Och så finns det en massa skumma detaljer. Om x är en sträng som innehåller tecknet 1 så ger x+1 strängen 11 och x-1 talet noll. Kommer någon ihåg skillnaderna mellan false, null, NaN och undefined? De låter rätt lika, så varför finns alla fyra i Javascript?

Men det spelar ingen roll hur mycket vi klagar. Webben och flera miljarder webbläsare kommer inte att försvinna. Dessutom dök de smarta utvecklarna bakom Node.js upp och tvingade oss att skriva Javascript på servern också.

4. PHP

PHP är egentligen inget programmeringsspråk, utan mer ett verktyg för att göra statisk html lite smartare. Det går att hantera information i databaser och några saker till, men mest används det för stränghantering. Det är inte värt besväret att klaga på barnslig syntax, eftersom det mesta av innehållet på webben levereras med PHP, på plattformar som Wordpress, Joomla och Drupal. Och så finns det en tjänst som heter Facebook som byggdes med PHP.

Vi borde vara tacksamma mot Facebook för att de byggde Hiphop Virtual Machine och inspirerade Zend att skapa PHP 7.0. Eftersom de nya PHP-lösningarna är dubbelt så snabba så kommer vi att få skriva PHP-kod en lång tid framöver.

5. Python

Python är ett modernt språk som ungdomar gillar. Koden ser ren ut. Några problem? Tja, hoppet från Python 2.7 till 3.0, till exempel. Det var nödvändigt för att utveckla språket, men vi blir tvungna att kolla vilken version av Python som används under resten av våra liv. Och vem gillar att räkna hur många mellanslag som används för att indentera kod?

Men det spelar ingen roll, eftersom folk med vetenskapliga ambitioner älskar Python, till exempel biologer. En del vill använda Python för att beskriva aktieprospekt och det är i alla fall enklare att förstå Python än advokatspråk.

6. Cobol

Cobol dök upp 1959, långt innan de flesta av oss var födda. Med sin komplexa syntax byggd på hundratals reserverade ord borde det ha spelat ut sin roll. Ändå fortsätter Cobolälskarna att skapa nya versioner, genom att låna idéer från andra språk som de limmar fast på en skapelse som nästan är 60 år gammal. Visste du att det finns något som heter Cobol 2014 med något som kallas dynamiska tabeller som folk försökt få in i språket sedan 2002?

Det finns garanterat bättre verktyg för att skriva affärslogik och manipulera databaser, men det är enklare att köpa en större stordator och fortsätta köra gammal Cobolkod. Det finns hur många lediga Coboljobb som helst och även om moderna datavetare ryser av fasa inför blotta tanken på Cobol så kommer språket att finnas kvar så länge det finns företag som fortsätter att använda det.

7. XSLT

Alla älskar XSLT till en början. Det är ett funktionell språk för att hantera xml-data. Det är en smart lösning som fungerar bra när man behöver få tag på delar av stora xml-dokument. Men om du blir ombedd att göra något mer komplext med XSLT än att söka och ersätta data så blir det jobbigt. Fundera på den här beskrivningen från XSLT-experten Bob DuCharme: ”Variabler i XSLT har egentligen mer gemensamt med konstanter i många andra språk och används för liknande syften”. Om du vill använda en variabel vars värde kan förändras i XSLT så måste du vara väldigt smart.

Xml förlorar mark till mer effektiva dataformat som Json, men det används fortfarande flitigt i stora tillämpningar. Du behöver inte använda XSLT, du kan skriva egen kod för att hantera xml-data. Men det är ännu jobbigare.