Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (5)
Emner Udviklingsværktøjer, Ruby, Java

Twitter har succes med Scala

Mikroblogging-tjenesten Twitter bruger Ruby, men når det dynamiske scriptingsprog kommer til kort, tager Scala over. Og Ruby og Scala er gode makkere, lyder budskabet fra Twitters udviklere.

Af Tania Andersen Mandag, 6. april 2009 - 11:01

Mikroblogging-tjenesten Twitter er en af de store succeshistorier for Ruby og webframeworket Rails. Men når det dynamiske sprog når sine begrænsninger, er det et andet nyt sprog, Scala, som overtager arbejdet.

Scala er et sprog, som afvikles på Javas platform. Det er i tidens ånd et hybridsprog, som kombinerer objektorientering med elementer fra funktionsprogrammering.

I Scala er funktioner med på første klasse og sproget byder på såkaldte algebraiske typer. Fra Erlang har Scala lånt den såkaldte Actor-model til parallelprogrammering. På den objektorienterede side ligner sproget Java, men med mixins - traits - i stedet for interfaces. Scala bruger i udstrakt grad typeinferens, så koden kan se helt dynamisk ud.

»Twitter er primært en Ruby-applikation, med en bunke Ruby-dæmoner som foretager asynkron processering på backend'en,« fortæller udvikler Alex Payne til udvikler-bloggen Artima.

Men Ruby on Rails har ydelsesmæssige begrænsninger, når det handler om at processere data på server-siden, mener han. Og hans personlige opfattelse er, at Ruby, som sprog betragtet, mangler elementer som kunne bidrage til, at udvikleren kan skrive pålidelig og højt-ydende kode.

Hans kollega Steve Jenson tilføjer, at Ruby, ligesom mange andre scriptingsprog, får problemer i miljøer med langlivede processer.

Scala giver fleksibilitet

Her kom Scala ind i billedet for Twitter. Selvom udviklerne er løbet ind i mange problemer med Ruby, kan de stadig godt lide fleksibiliteten i sproget, fortæller Alex Payne, og den fleksibilitet genfinder de i Scala. Samtidig benytter Scala statiske typer, men på en »smertefri« måde, som han udtrykker det. Twitters udviklere har nemlig erfaret, at typerne sniger sig ind i systemet, efterhånden som kodebasen og applikationen vokser.

»Der er masser af kald til Rubys kind_of?-metode,« fortæller Alex Payne, der mener, at systemet vil eksplodere, hvis der ikke foretages nogle typecheck undervejs.

»Det er en skam at skulle skrive al det, når der er en løsning, som har eksisteret i programmeringssprogenes verden i årtier,« siger han med henblik på statiske typer.

Scala og Ruby er meget komplimentære, fortæller Steve Jenson. Twitter bruger blandt andet Scala til en kø-tjeneste, som sender beskeder fra det Rails-baserede frontstykke til dæmonerne på serveren.

»Ruby-udgaven fungerede egentligt rimeligt anstændigt i den normale tilstand, men opstartstiden og opførslen ved crash var uforudsigelig,« siger udvikler Robey Pointer.

Svært at flytte Rails til Jruby

Twitters udviklere overvejede også at benytte Jruby, som er den udgave af Ruby, der i lighed med Scala kører oven på Javas afviklingsmiljø. Men det blev droppet, da det ikke var muligt at portere den del af løsningen, som var udviklet i Rails. Det skyldtes, at applikationen benyttede en række C-baserede moduler, som ikke umiddelbart kunne flyttes til Jruby.

Twitters udviklere mener ikke, er der er så meget at betænke sig på, når det handler om at benytte Scala til produktionssystemer. Men man skal berede sig på at bruge et par timer på at tilrette sit udviklingsmiljø.

»Det virker som om, at IDE-understøttelsen er, om end ikke i sin barndom, så i de akavede teenage-år,« mener Alex Payne.

Send Tweet
Udskriv

IT-job & karriere

  • Se alle it-job
  • Importer din kompetenceprofil fra LinkedIn
Business Warehouse udvikler - Aalborg/Aarhus
Udgivet 1. mar 9.06
Cisco Unified Communication konsulent til fast stilling
Udgivet 15. feb 9.32
.Net Web Developer
Udgivet 8. maj 15.44
Java udviklere – backend – gerne med Oracle erfaring
Udgivet 16. jun 2011 14.38

Kommentarer (5)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Jakob Tikjøb Andersen 6. apr. 2009 - 11.28
 
Scala er vel ikke nyt?

Som jeg husker det er første release af scala tilbage i 2003, men spændende at høre nogen bruger det til noget "seriøst".

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Kim Dalsgaard 6. apr. 2009 - 12.04
 
Obie F om Twitter og Ruby/Scala

En spændende post af Obie Fernandez om Twitter og deres brug af Ruby og Scala.

http://blog.obiefernandez.com/content/2009/04/my-reasoned-response-about...

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Jesper Louis Andersen 6. apr. 2009 - 14.46
 
Re: Obie F om Twitter og Ruby/Scala

I dynamisk typede sprog kan man hurtigt komme til at træde sig selv over tæerne netop som det formentlig er tilfældet med Twitter: Koden bliver gjort polymorf i den forstand at der i funktionsprologen checkes hvad vi har fået af dataobjekt og så behandler det efter type.

Hvis vi får et Userobjekt er alt fint, men hvis vi får et tal skyder vi på at det er userid og prøver at loade et Userobjekt fra databasen. Hvis vi får en string skyder vi på det er et username og prøver at loade det fra DB osv. Koden bliver fleksibel fordi det er underordnet hvad du præsenterer funktionen for at data. Men det betyder også at koden bliver sløv hvis alle lag ned gennem stakken laver den type tests.

Hvis man tænker sig om kan det sagtens undgås og så er der meget mere hastighed at hente. Det er dog nemmere at have et ordentligt statisk typet sprog hvis man er godt vil have ens kode ren mht. til ovenstående problem.

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Ole Østergaard 6. apr. 2009 - 21.13
 
Re: Obie F om Twitter og Ruby/Scala

Hvis man gør koden polymorf i et dynamisk sprog på den måde at man checker på typen og "brancher ud" på baggrund af typen, har man ikke fattet en bjælde. Så er man ikke voksen nok til at nyde livet i den dynamiske overhalingsbane :-)

Det lyder ærlig talt som om der render en del Twitter-medarbejdere rundt og gør mere skade end gavn...

Men ikke et ondt ord om Scala herfra - det ser da både fikst og godt ud, og jeg vil ikke have noget imod at bruge det i fremtiden hvis lejligheden byder sig. Scala, Clojure, Groovy og JRuby - Java er måske nok et dødt sprog, men en sprællevende platform :-)
/Ole

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Mark Ruvald Pedersens billede
Mark Ruvald Pedersen 7. apr. 2009 - 09.44
 
Re: Obie F om Twitter og Ruby/Scala
Java er måske nok et dødt sprog

Just for kicks: Hvad ville du så kalde C?
:)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Netgroup efter kæmpe-nedbrud: Kunderne vidste godt, der ikke var fuld redundans

Udgivet 16. maj 16.24Opdateret 16. maj 16.32

Justitsminister vil ikke afvise NemID som spionværktøj for politiet

Udgivet 16. maj 16.00Opdateret 16. maj 16.00

Microsoft risikerer nyt browser-slagsmål med EU over Windows 8

Udgivet 16. maj 15.21Opdateret 16. maj 15.23

Så splittet er Android: 3.997 forskellige enheder

Udgivet 16. maj 14.44Opdateret 16. maj 14.48

Her er 5 undskyldninger for at droppe Digital Post

Udgivet 16. maj 14.03Opdateret 16. maj 14.31

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Whitepapers

Kick-start your master data management initiative

Affecto Denmark

Affecto Data Quality Assessment: Er din indsigt og beslutning baseret på validt data?

Affecto Denmark

Framework til datamigrering i SAP miljøer - spar op til 50% på dine Data Migration udgifter

Affecto Denmark

Få et Data Warehouse (DW) review hos Affecto

Affecto Denmark

Ressourcehåndtering

Projectplace
  • Flere whitepapers

Branchenyheder

Komplex it er blevet Brocade Premier Partner

Komplex IT

Øg din effektivitet og produktivitet med bizhub C654/C754

Konica Minolta Business Solutions Denmark

Brugerfjendtlige it-løsninger gør brugerne til en sikkerhedstrussel

Projectplace

Athena IT-Group A/S med solid indtjening

Athena IT-Group

Konica Minolta præsenterer inkjet-baseret digital trykmaskine på drupa

Konica Minolta Business Solutions Denmark

Seneste debat

  1. Sociale medier ved en skillevej

    7 comments.
    Last update 1 time 3 minutter
    Skrevet af Jimmy Frydkær Dürr
  2. Raspberry Pi - den booter ... oftest :-)

    12 comments.
    Last update 1 time 25 minutter
    Skrevet af Lars Tørnes Hansen
  3. Justitsminister vil ikke afvise NemID som spionværktøj for politiet

    15 comments.
    Last update 3 timer 48 minutter
    Skrevet af Peter Jespersen
  4. Her er 5 undskyldninger for at droppe Digital Post

    11 comments.
    Last update 6 timer 23 minutter
    Skrevet af Jacob Larsen
  5. Hardware-mangel i skoleklasserne: 2 pc'er 3 gange om ugen er for lidt

    13 comments.
    Last update 6 timer 31 minutter
    Skrevet af Christian Wang
  6. Netgroup efter kæmpe-nedbrud: Kunderne vidste godt, der ikke var fuld redundans

    18 comments.
    Last update 7 timer 11 minutter
    Skrevet af Peter Larsen
  7. Så splittet er Android: 3.997 forskellige enheder

    15 comments.
    Last update 7 timer 15 minutter
    Skrevet af Marcin Brodzikowski
  8. TDC køber 7.500 kunder fra konkursramte Skyline

    4 comments.
    Last update 9 timer 58 minutter
    Skrevet af Ken Poulsen

Mere debat »

It-virksomheder

Incube
|
BEC
|
Contest
|
REALTECH NORDIC ApS
|
CFN People A/S
|
Sec4it
|
Avenida
|
Surfray 2009
|
Invokers
|
Zap Technology
|
Propeople
|
EVRY Danmark A/S
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Download Windows 8
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Mountain Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300