211service.com
Hemligheten bakom Twitters tillväxt
Vid Web 2.0 Expo Idag i San Francisco diskuterade Twitters Alex Payne de tekniska detaljerna i programmeringsspråket som han hoppas kan hjälpa hans företag att hantera uppgången i trafiken som det har upplevt under de senaste åren. Företaget lämnar efter sig ett programmeringsspråk som har orsakat det mycket smärta tidigare, och anammar istället ett nytt och något obskyrt språk som heter Scala.
Lite bakgrund: Twitter, en tjänst som låter människor skicka meddelanden med 140 tecken till vänner och allmänheten, lanserades 2006 och beräknas nu ha ungefär åtta miljoner unika användare. När en person postar ett kort meddelande till Twitter, postar tjänsten det på webben och skickar det till människors mobiltelefoner och Twitter-program. Konceptet är enkelt, men under huven är tekniken mer komplicerad.
Det populära webbprogrammeringsspråket Ruby on Rails är ansvarigt för utseendet och känslan av Twitters användargränssnitt, såväl som för många andra webbplatser. Eftersom användargränssnittet, känt som frontend, förlitade sig på Ruby, var det också vettigt att använda Ruby för back-end-operationer som att köa meddelanden. Men när Twitters popularitet växte kunde den Ruby-byggda backend inte hantera den ström av meddelanden som kom i dess väg - en situation som skapade den plötsliga populariteten för Fail Whale , felmeddelandet som Twitter skickar till användare när tjänsten kraschar.
Så Twitter-teamet vände sig till Stege , ett programmeringsspråk med dess ursprung i arbete av Martin Odersky , professor vid EPFL i Lausanne, Schweiz, runt 2003. Under sin presentation förklarade Payne, som också skriver en bok om språket, att Scala har många av fördelarna med andra språk men utan nackdelarna. Några av egenskaperna som gör Scala så tilltalande för Twitter är att den effektivt kan hantera samtidig bearbetning – det vill säga separata instruktioner som behöver använda systemets resurser samtidigt. Detta är användbart när meddelanden från miljontals människor behöver skickas ut direkt till olika enheter över hela världen.
Det är också flexibelt för programmerare att använda, säger Payne. Om en programmerare vill ha mer struktur så erbjuder Scala struktur, men om hon vill ha mer friformsprogrammering tillåter det det också. Och viktigast av allt, för Payne och ingenjörerna på Twitter är Scala ett nytt, spännande och vackert språk som håller teamet engagerat. Det finns fortfarande utrymme för programmerare att känna att de bidrar till utvecklingen av något nytt och fräscht. Detta är inte fallet med mer etablerade språk, som Java eller C++.
Scala är inte perfekt, konstaterar Payne, men dess fördelar överväger vida dess nackdelar. Den mest påfallande nackdelen är att det är lite svårt att lära sig eftersom det har massor av funktioner och en syntax som vissa programmerare kanske inte är bekanta med, säger han. Dessutom är det relativt nytt, vilket betyder att det inte har en bevisad meritlista. Men Payne säger att han och Twitter är villiga att ta risken eftersom språket redan fungerade bra i ett antal testfall.
Just nu är Twitters tjänst en hybrid av programmeringsspråk, säger Payne. Användargränssnittet körs på Ruby on Rails, vilket är bra för människor som klickar sig runt på webbsidor, säger han. Men i slutet av året hoppas Twitter ha en uppsättning tjänster i backend som är helt skrivna i Scala. Och det är företagets plan att se till att alla tredjepartstjänster som ansluter till Twitter via applikationsprogrammeringsgränssnittet (API) går igenom Scala-koden och går helt förbi Ruby on Rails. När du pratar om ett gäng program som träffar API:et snabbt, säger Payne, vi upptäckte att vi bättre kan optimera saker ... med Scala.