Politik

Silicon Valley: den okända produktivitetsrevolutionen och dess vittgående globala konsekvenser

När jag började jobba här i Silicon Valley så var det inte ovanligt att programmeringsteam bestod av uppemot 50 personer som jobbade i tre år för att skapa en produkt som idag skulle lätt knackas i hop av 3 personer på tre veckor.

Den hemliga såsen, för att använda ett populärt amerikansk uttryck, är givetvis objektorienterade språk som kommer med ramverk och återanvändning. Bara en så enkel sak som Microsofts ODBC, som kom i september 1992 och som gjorde det möjligt att läsa in och skriva ut SQL-data med några enkla kodrader, oavsett vilket databas det handlade om, var ett enormt framsteg.

1990 hade vi faktiskt en heltidsanställd kille vars enda uppgift det var att skriva skräddarsydd databaskod för att accessa två-tre olika databaser.

När den ostrukturerade spagettikoden och alla buggarna försvann och ersattes av välstrukturerad objektorienterad kod i C++ och senare Java så kunde man återanvända en massa kodbibliotek och skära ner på programmeringsteamen, samtidigt som utvecklingstakten accelererades och programmeringsteamen bantades rejält.

Idag är allt det där gammal dammig historia och vad som nu gäller är att driva på utvecklingstakten ännu mer.

Datormolnen med t.ex. Google Compute Engine, Google App Engine och Amazon EC2 och den enormt populära Heroku, för att bara nämna de mest populära har förändrat hela IT-industrin. Idag behöver startupföretag t.ex. inte köpa in sig i dyra datorhallar eller ens köpa in sina egna servrar, man bara leasar s.k. virtuella avbildningar i datormolnen och på några minuter har man hur många virtuella datorer man vill, och har råd med.

Datorer som man kan hyra timme för timme. Så när man är klar med sitt utvecklingsarbete och testande så bara lämnar man tillbaks några dussin virtuella servrar och utvecklingskostnaderna sjunker dramatiskt.

Kodhotellet Github har på kort tid blivit grundbulten i den nya snabbfotade IT-industrin, där små utvecklingsteam inom den öppna kodrörelsen kan samarbeta om nya projekt, projekt som dom sen kan fildela och dela med sig av hur mycket dom vill.

Men det är kanske inom dataspråken som den största innovationen sker just nu och märkligt nog sker den kring det rätt anrika datorspråket JavaScript lanserades som en komponent i Netscape Navigator och släpptes i december 1995.

Vad som gör JavaScript så intressant för dagens IT-ingenjörer är att det är dynamiskt och körs i webbläsaren och använder ett gränssnitt som kallas Document Object Model (DOM)

Google Maps och mängder med andra dynamiska applikationer använder t.ex. JavaScript.

På sistone har vi sett en uppsjö av nya JavaScript-baserade programmeringsspråk och ramverk.

Ajax (även AJAX , (en förkortning av Asynchronous JavaScript and XML) är en grupp av samverkande webbteknologier som används på klientsidan för att skapa asynkrona webbapplikationer. Med Ajax kan webbapplikationer skicka data till och hämta data från en server utan att det syns på skärmen.

Och AJAX, som f.ö. använder det oerhört populära dataformatet JSON< , JavaScript Object Notation/a> istället för det klumpigare XML, är kanske mest berömt för att det används för att göra det möjligt att snabbt scrolla inom Google Maps.

Nu kommer vi till nästa JavaScript-teknologi, nämligen JQueryJquery, som är ett JavaScript-bibliotek som förenklar och snabbar på webbutvecklingen. Det släpptes 2006.

Coffee Scriptär ett programmeringsspråk som kompileras till JavaScript. Det är ett s.k. syntaktiska socker som är inspirerad av Ruby, Python och Haskell för att öka JavaScripts läsbarhet, och lägga till ett antal användbara funktioner som bl.a. mönstermatchning.

Sedan mars 2011, har CoffeeScript varit på GitHubs lista över mest använda projektet.

Men vänta, vi är inte klara än!

Meteor är ett annat JavaScript baserat ramverk som just har fått en investering på över $11 miljoner av Silicon Valleys ledande riskkapitalfirma Andreessen Horowitz, beskrivs som nästa stora grej i applikationsutveckling på webben,

The Next Webs Anna Heim förklarar varför Meteor anses vara så viktigt: Meteor raises $11.2m round led by Andreessen Horowitz, launches open source app dev platform

Medan de flesta webbprogram idag kört på servrar i datormolnen så kommer appar som skrivs med Meteor att köras på användarens egen dator – inne i webbläsaren eller i pekmobilen, och hämta alla nödvändiga data från molntjänster.

Det är viktigt för det gör användarupplevelsen mycket smidigare, och det är redan den modell som används av företag som Twitter, Facebook och Google, men som har varit utom räckhåll för den genomsnittliga utvecklaren.

Sen kommer vi till SproutCore som är, gissa vad då? Jo ännu ett j-kla öppen kod-ramverk i JavaScript! Som intressant nog är sponsrat av ingen mindre än Apple, som knappast har gjort sig känt som någon vän av öppen kod.

Slutligen har vi Ryan Dahls Node.js som är baserad på Google Chromes JavaScript “runtime” vad nu det blir på svenska, och som gör det lätt att skriva snabba skalbara nätverksapplikationer som körs på servrar och inte i webbläsaren.

Jag skulle antagligen kunna fortsätta i flera dar till med ännu fler JavaScript-baserade verktyg, programmeringsspråk och ramverk, det är ibland litet svårt att veta vad som är vad.

Men den här lilla genomgången har förhoppningsvis visat vilken fullkomlig explosion som nu är på gång med innovation av dynamiska programmeringsverktyg skrivna i öppen kod på JavaScript-sidan.

De här verktygen kan laddas ner och användas av IT-ingenjörer över hela världen. Som sen använder dom till att snabbt som attan knacka ihop nya appar och program som allt snabbare automatiserar och datoriserar världen, minskar avstånden på jorden och knyter oss alla närmare varandra.

Man kan knappast önska sig något bättre.

Pressklipp:

NyTeknik – Senaste nytt,
Computer Sweden 20 senaste nyhet, Computer Sweden 20 senaste nyhet, Computer Sweden 20 senaste nyhet, Computer Sweden 20 senaste nyhet, Computer Sweden 20 senaste nyhet

[tags] JavaScript, AJAX, JQuery,Coffee Script, Meteor,SproutCore, Node.js[/tags]

4 thoughts on “Silicon Valley: den okända produktivitetsrevolutionen och dess vittgående globala konsekvenser

  1. Bosse

    Gregor: Vad som gör JavaScript verkligt intressant är att det kan köras som “vanlig” JavaScript i besökarens webbläsare (klienten) och att du dessutom också kan köra JavaScript på servern med hjälp av t.ex. Node.js. Så JavaScript är ett flexibelt språk som kan användas på många sätt och dessutom finns ett flertal s.k. JavaScript-bibliotek som avsevärt förenklar för utvecklaren (JQuery, Prototype, Rico m.fl.)

  2. Gregor

    Vad som gör JavaScript så intressant för dagens IT-ingenjörer är att det är dynamiskt och körs i webbläsaren […]

    […] som gör det lätt att skriva snabba skalbara nätverksapplikationer som körs på servrar och inte i webbläsaren.

    Hur skall det vara egentligen – server eller webbläsare?

  3. Fredrik Bertilsson

    Ursäkta att jag stör igen, men jag skulle vilja nyansera bilden lite. Min erfarenhet består förvisso till största delen av svenska statliga myndigheter samt större industriföretag, men min erfarenhet är inte att IT-avdelningarna har blivit direkt mindre. De har istället blivit mycket större i antal anställda (och konsulter) räknat, utan att det producerade resultatet har blivit speciellt större.

    För tjugo år sedan kunde ett fåtal COBOL-programmerar åstadkomma väldigt mycket affärsnytta. Bra mycket mer än dagens java-programmerare i alla fall. Webben fanns förvisso inte på den tiden, men dagens objektsorienterade och flerskiktade arkitekturer medför ofta många fler utvecklingstimmar än vad som skulle kunna vara fallet.

    När det gäller ODBC så vet jag inte om jag delar din analys. Innan fanns det gott om produkter för embedded SQL (t.ex Pro*C för Oracle). Dagens programmerings språk har betydligt sämre stöd för SQL där SQL skrivs som konkatenerade strängar utan någon syntaxkontroll och obefintligt stöd i moderna IDE:er.

    Till sist vill jag också påpeka att spagettikod försvann redan när GOTO avskaffades. Långt innan några objeksorienterade programmeringsspråk fanns. Dagens flerskikade applikationer har istället lasangekod.

    /Fredrik

    1. Lennart

      Fredrik: Du stör givetvis inte, en blogg utan kommentarer är helt ointressant.
      Det förvånar mig att IT-avdelningarna på svenska myndigheter skulle växa. Nu sysslar man väl kanske inte med
      programutveckling där. Det kan ha att göra med att myndigheterna ny datoriseras i allt snabbare takt.
      Annars är det svårt att förklara.

      Att Cobol skulle vara mer produktivt än Java har jag däremot svårare att acceptera. Speciellt eftersom Java idag
      kommer med J2EE, med mängder med komponenter som Cobol saknar.

      Spagettikod försvann FAKTISKT inte när man slutade skriva GoTo. C passar fortfarande bra för små projekt med stenhårda
      krav på prestanda. Men det är inte realistiskt att försöka skriva ett stort projekt i C eftersom språket
      helt saknar de objektorienterade koncept som finns inbakade i C++. Dvs ingen skulle idag skriva ett
      stort projekt i C utan istället använda C++.

      På tidigt 90-tal övertog jag själv ett stort projekt skrivet i C tillsammans med ett team på ett par dussin
      programmerare. Vi tillbringade ett helt år med att fixa oräkneliga buggar som mest fanns i gränssnitten mellan
      olika dåligt designade moduler. Det var ett helvete på denna jorden, och inte ett enda GoTo-uttryck.

      ODBC anses som ett historisk framsteg som standardiserade hur man läste och skrev till databaser.

      Men det är mycket intressant att höra dina åsikter eftersom vi kommer från olika miljöer.

      En intressant utveckling med dagens högproduktiva datorspråk som dom jag skrev om är att startupföretagen inte
      längre håller sig med testare. Med Öppen Kod kan alla läsa och rätta koden, vilket är en milsvid skillnad från
      förr när kod var något man höll hemligt.

      Kommentera gärna igen, som sagt, intressant att läsa dina kommentarer.

Comments are closed.