Ti teknokriger om utviklerne

SQL mot NoSQL, kompilert mot skripting – det er mange tekniske kriger om utviklernes oppmerksomhet.

Publisert Sist oppdatert

Enten du tror det er en medfødt menneskelig egenskap eller et resultat av hvordan samfunnet har blitt, er dualismer noe vi støter på hele tiden: Kommunisme mot kapitalisme, salt mot søtt. Overalt ser vi to alternativer som settes opp mot hverandre, som gir oss en myriade av muligheter til å definere oss selv, etter hvilken side vi velger.

Dette er kanskje særlig synlig i teknologiverdenen, der produkter og teknologier kjemper om oppmerksomheten vår, ved å definere seg gjennom forskjellene fra en konkurrerende løsning. Så stiller fanboy-ene seg opp, og disser og utfordrer den andre siden.

Uten disse krigene, uten disse store debattene og valgene, ville kodebasene ha smeltet sammen for lengst, og verden hadde gått videre – men kanskje med litt mindre innovasjon og nytenking enn hva vi hadde likt.

Her kommer ti av de aller mest interessante krigene som nå raser blant programvareutviklerne. I et hvert prosjekt vi starter opp i dag, må vi ta stilling til flere fundamentale spørsmål, som understreker forskjellene mellom teknologiene. Velger vi enkelthet eller korrekthet? Åpen kildekode eller proprietære verktøy? Klammer eller ordskillere i kildekoden? Disse, og mange flere, spørsmål definerer alternativene dagens utviklere står overfor.

Teknokrig nummer 1: PHP mot Node.js

PHP ble aldri spesielt populær blant proffe it-folk, men fikk en stor tilhengerskare blant massene som ville ha litt mer intelligens på webserverne sine. Disse hordene gav oss svært gode rammeverk som WordPress, Drupal, Joomla med flere. Mye av weben er bygd på PHP.

Nå begynner det å dukke opp sprekker i modellen. Ungdommene er betatt av Node.js, en mekanisme for serverside programmering som er basert på JavaScript. Nå kan plutselig utviklerne skrive kode som er kjørbar både på klienten og serveren, uten at det er nødvendig å lære seg to programmeringsspråk. Node.js har sine særegenheter, men det finnes allerede solide rammeverk som tilbyr funksjonalitet som er helt på høyde med de beste PHP-pakkene.

Vil den neste generasjonen omfavne enkelheten ved å kun og bare skrive kode i JavaScript? Eller vil de holde seg til lettheten ved å legge inn kode inni HTML? De som foretrekker JavaScript vil nesten helt sikkert flytte seg til Node. De som ønsker å bruke de stabile pakkene fra PHP arbeidshester som WordPress eller Drupal kommer til å stå i mot Node.js-stormen.

Teknokrig nummer 2: MySQL mot PostgreSQL

De to store alternativene for åpen kildekode databaser har ligget i konstant krig i nesten to tiår, uten noen ende i sikte. På den ene siden har MySQL tatt mesteparten av de grunnleggende arbeidsoppgavene på weben, takket være enkelt installasjon og konfigurasjon. På den andre siden har PostgreSQL lenge lovt en overlegen transaksjonsmekanisme for å beskytte data når kommunikasjonen glipper. Disse to alternativene har bevegd seg mot hverandre over tid, i og med at MySQL har fått forbedrete mekanismer for transaksjonshåndtering, og PostgreSQL har senket lista for å komme i gang.

De gamle forskjellene definerer fremdeles striden. PostgreSQL betraktes som mer «pålitelig», mens MySQL oppfattes som «kjappere», men disse forskjellene er mer gjenferd enn faktiske realiteter i dag. Gammel vane er vond å vende, og disse pakkene kan fortsette å kjempe om utviklernes oppmerksomhet de neste 20 årene også, der PostgreSQL nylig har fått litt mer vind i seilene, både fra hipster-hackere og Oracle-hatere.

Teknokrig nummer 3: Swift mot Objective-C

Apple har alltid vært den eneste arenaen for Objective-C, den rene og enkle miksen av C og objektorientert programmering. Men tidene endrer seg, og nå tilbyr Swift en moderne syntaks som er renset for mange av irritasjonsmomentene som har holdt programmererne borte fra å lage kode for Apples plattform. Det er klart at de utviklerne som lærte C fra barnsben av, ikke bryr seg om asterisker og multiple filer, men nykommerne som vokste opp med Python, Ruby og til og med Java, kan la seg friste av Swift.

Vil den rene enkle strukturen til Swift fange opp Apple-utviklerne? Vil Python- og Ruby-utviklerne nå strømme over til iOS og danke ut Objective-C-hackerne av den gamle skolen? Eller vil Apple-verdenen stadig bli dominert av den fantastiske effektiviteten til den velprøvde Objective-C-programmeringen? Vil de nye bibliotekene og funksjonene bli kodet i Swift eller Objective-C? Apple har sagt offentlig at begge kan eksistere sammen, så utviklerne vil antakelig holde seg til det de kjenner. De som elsker Python og Java vil trekke mot Swift, mens de som vokste opp med C vil holde seg til Objective-C.

Teknokrig nummer 4: Python mot Ruby

For riktig lenge siden var skriptspråk som «hurtiglim for programvare». Om du trengte å klebe sammen to større programmer, så kunne du skrive enkel skriptkode i operativsystemet, og være ferdig med det.

På ett eller annet tidspunkt begynte folk som likte disse små språkene å lage større programmer som gjorde noe nyttig i seg selv. Ruby eksploderte da den ble koblet sammen med rammeverket Rails, den kombinasjonen gjorde det enkelt å knytte sammen en avansert front-end med en database, ved hjelp av svært få linjer med kildekode.

I mellomtiden vant Python sine egne venner i vitenskapelige miljøer. I dag brukes Python i mange laboratorier verden over. I dagens bedriftsverden dukker det opp anvendelser av statistisk analyse overalt, og velegnete Python dukker opp stadig oftere i it-labene hos bedriftene.

Vil den neste generasjonen utviklere tiltrekkes av enkelheten til Python, der koden kan rammes inn av rene ordskillere? Vil Ruby ekspandere videre ut over Rails? Er Pythons innebygde funksjoner et bedre alternativ enn Rubys «blokker»? Er det kulest å gjøre som forskerne, i stedet for web-hodene? Kanskje er frontlinjene her så sementerte at web-guruene uansett holder seg til Rails, mens vitenskapsfolkene blir værende i Pythons biblioteker.

Teknokrig nummer 5: SQL mot NoSQL

På den ene siden av midtgangen er databasene som besteforeldrene dine brukte. Dataene plasseres sirlig i tabeller, og databasemotoren vil utføre eksotiske spørringer som kobler sammen tabellene og finner fram de riktige rekkene. På den andre siden er de nyoppstartete NoSQL-oppkomlingene. De gir store løfter om hastighet og parallellisme, med det lille forbeholdet om at av og til kan tingene gå rett vest, og databasen leverer tilbake svar som er feil eller inkonsistente.

Er tilnærmingen med «belte og bukseseler» som de tradisjonelle databasene med sin tradisjonelle beskyttelse av transaksjonene det riktige svaret for dine data? Eller vil du ha raskere, billigere og et mer moderne verktøy som sprer belastningen effektivt over en klynge av datamaskiner? Det er klart at konsistens og presisjon er viktig for banker, men hva med en database full av tilfeldig skravling fra internett? Trenger alle data den beste beskyttelsen som it-ekspertene klarer å oppdrive? Svaret er (ofte): De som trenger absolutt konsistens, som banker og flyselskap, vil gå for tradisjonelle SQL-databaser med ekte transaksjoner. Alle andre velger den kjappe, enklere og mer skalerbare NoSQL.