Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Emner
  • Opret bruger
  • Log ind
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
Java J2EE udvikler ( J2EE )
Udgivet 23. nov 2011 13.43
IT Security Specialist
Udgivet 20. jan 9.45
Freelance Oracle PL/SQL udvikler
Udgivet 11. jan 10.50
Java-backender med flair for frontend søges
Udgivet 11. jan 11.02

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

It skal spare kommunerne for 165 millioner kroner i 2012

Udgivet 9. feb 16.02Opdateret 9. feb 16.02

Adobe: Vi laver ikke Flash til Android-udgaven af Chrome

Udgivet 9. feb 15.15Opdateret 9. feb 15.15

Så oldnordisk er politiets it-miljø: Nostalgisk gensyn med 1980’erne

Udgivet 9. feb 14.22Opdateret 9. feb 15.12

EMC lægger flash-cache på PCIe-kort: 4.000 gange hurtigere end harddiske

Udgivet 9. feb 13.39Opdateret 9. feb 13.39

Egedal Kommune sparer 100.000 om året med open source-CMS

Udgivet 9. feb 12.56Opdateret 9. feb 12.56
Flere it-nyheder »
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Seneste debat

  1. Opdateret liste over danske iværksættere

    2 comments.
    Last update 2 timer 17 minutter
    Skrevet af Therese Hansen
  2. Stop SOPA, PIPA, ACTA, TPP og alle dem der kommer efter

    50 comments.
    Last update 6 timer 39 minutter
    Skrevet af Bjarne W. B. Petersen
  3. Derfor bliver dårlige it-projekter ikke stoppet i tide

    1 comment.
    Last update 7 timer 2 minutter
    Skrevet af Kasper Jørgensen
  4. Grotesk jobinterview i 2007: »Tag ikke jobbet, vi får alligevel aldrig Polsag til at virke«

    17 comments.
    Last update 7 timer 10 minutter
    Skrevet af Claus Waldersdorff Knudsen
  5. Så oldnordisk er politiets it-miljø: Nostalgisk gensyn med 1980’erne

    6 comments.
    Last update 7 timer 13 minutter
    Skrevet af Simon Justesen
  6. Domæne-forening: Lov om .aarhus og .cph var for tynd

    9 comments.
    Last update 8 timer 4 minutter
    Skrevet af Jarle Knudsen
  7. ACTA er i orden!

    51 comments.
    Last update 10 timer 36 minutter
    Skrevet af Jarle Knudsen
  8. It-advokat: Nu går grænsebommene ned over internettet

    10 comments.
    Last update 12 timer 22 minutter
    Skrevet af Niels Elgaard Larsen
Mere debat »

Information

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

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Digitaliseringsstyrelsen
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X 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
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Version2 udgives af

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