tirsdag 27. april 2010 Erlang
For at du skal være villig til å bruke tid på et nytt programmeringsspråk er du sikkert interessert i å vite noe om hvor modent det er, og om det er noe som er brukende i praksis. Du vil ha bevis for at andre har brukt det. Erlang er ikke like stort som .Net, Java, Ruby eller Python, men det finnes likevel mange suksesshistorier.
Erlang var et internt språk hos teleselskapet Ericsson fra 1986 til 1998. De brukte språket til å programmere hardware brukt i GPRS og 3G nettverk verden over. I 1998 bestemte de seg for at de ikke lenger ville kode i et proprietært språk, og åpnet derfor opp kildekoden. Problem solved!
Andre brukere i tele-sektoren er T-Mobile, som bruker Erlang i sine SMS og autentiserings-systemer, og Motorola, som bruker Erlang i prosessering av samtaler knyttet til public safety (kilde: StackOverflow).
Flere bedrifter i andre bransjer, som også har behov for å utvikle systemer med høy ytelse og kapasitet, og med minimal eller ingen nedetid, har i de siste årene tatt i bruk Erlang. Av de mest profilerte prosjektene kan jeg nevne CouchDB (dokumentbasert database), RabbitMQ (meldingskø-system) og ejabberd (instant messaging server, bl.a. brukt i Facebook). Amazon har også brukt Erlang til å implementere SimpleDB, som tilbyr databasetjenester i Amazon Elastic Compute Cloud (EC2). Og Yahoo! har brukt Erlang i implementasjonen av sin sosiale bokmerke-tjeneste Delicious.
Erlang egner seg svært godt til å implementere server-software. Språket er designet fra grunnen av med tanke på skalerbarhet, stabilitet og høy ytelse. Man kan oppgradere kode mens systemet kjører, man kan sette opp noder på ulike maskiner som snakker enkelt sammen, og plattformen har til og med en innebygget, distribuert databaseløsning laget med fokus på høy grad av tilgjengelighet og ytelse.
Damien Katz, utvikler av CouchDB, sier om sine erfaringer med Erlang:
"The code is typically much more compact, elegant and reliable than it would be in more conventional languages."
Katz bemerker derimot at det også er en rekke områder hvor han ikke ville benyttet Erlang. Han sier språket egner seg mindre bra til ting hvor man er mere avhengig av state, som i programmering av brukergrensesnitt, og han sa han slet noe voldsomt med å skrive enhetstester i Erlang (en erfaring jeg foreløpig ikke deler – enhetstester i Erlang er helt konge!). Her er blogposten hvor han forteller om Erlangs mange feil.
Erlang har også påvirket andre språk - ifølge wikipedia har både Clojure og Scala hentet inspirasjon derfra. Det har også Microsoft gjort i sitt inkubasjons-prosjekt Axum, som muligens kan utvikle seg til å bli .NET's beste svar på utfordringene rundt parallell programmering.
Så hvis du vurderer å ta i bruk Erlang, så skal du vite at selv om språket i seg selv ikke er en tungvekter i bransjen, så er det mange tungvektere som bruker det. Oppmerksomheten rundt Erlang er sterkt voksende, samtidig som teknologien har vært vel utprøvd i mange år.