Langbahn Team – Weltmeisterschaft

Ruby

Ruby
Paradigmmulti-paradigm: objektorienterad, imperativ, funktionell, reflektiv
Gavs ut1995
Skapat avYukihiro Matsumoto
UtvecklareYukihiro Matsumoto m.fl.
Senaste version3.3.0 (2023-12-25)
Datatypsdisciplinduck, dynamic
ImplementationerRuby MRI, YARV, JRuby, Rubinius, IronRuby, MacRuby, HotRuby
Influerat avAda, C++, CLU, Dylan, Eiffel, Lisp, Perl, Python, Smalltalk
InflueratPerl 6, Falcon, Fancy, Groovy (programspråk), Ioke, Mirah, Nu, Reia
PlattformUnix, Linux, Microsoft Windows, m.m.
LicensGPL och Ruby License
Webbplatsruby-lang.org

Ruby är ett fritt generellt programspråk utvecklat i Japan av Yukihiro "Matz" Matsumoto i mitten av 1990-talet. Det är ett interpreterande språk, vilket innebär att koden tolkas direkt vid exekveringen och inte kompileras. Ruby är ett rent objektorienterat programspråk, skapat för att vara så intuitivt som möjligt enligt "principle of least surprise" (ungefärligt översatt principen om minsta möjliga överraskning).

Historia

Matsumoto började utveckla Ruby i början av 1993 och publicerade det offentligt 1995. Han försökte utveckla ett nytt språk som var menat att vara enkelt att förstå för både vana och ovana programmerare. Han skrev en gång att "Ruby ser enkelt ut, men är väldigt komplext på insidan, precis som en människokropp." [1] Idag är Ruby bland de tio mest populära programspråken i världen, enligt TIOBE Software.

Egenskaper

Ruby har varit välkänt som programspråk i Japan i flera år, vilket har lett till att de flesta delarna av språket är skrivna av japaner. Först på senare tid har engelskspråkig dokumentation tagits fram, vilket medfört att även resten av världen har kunnat ta del av språket.

Ruby kan användas på de flesta plattformar, såsom Windows, Unix och GNU/Linux. Det finns förinstallerat i en del versioner av Mac OS, följer med Cygwin och används även av Watir.

Ruby är skalbart och kan användas till både korta skript samt utveckling av större applikationer. Språket lämpar sig även för systemadministration tack vare möjligheter till API-anrop på låg nivå, men passar lika bra för exempelvis webbapplikationer via inbäddning och CGI. Det räknas genom sina egenskaper till de agila programspråken.

Ruby konkurrerar med framför allt Perl och Python; språk som Matsumoto tog inspiration från när han sökte efter en optimal syntax för Ruby. På senare tid har Ruby uppmärksammats genom MVC-webbramverket Ruby on Rails. De mer etablerade webbapplikationsspråken PHP och ASP[förtydliga] har på så sätt fått en ny konkurrent. Utvecklargruppen kring Python har även tagit fram ramverken Django och Turbogears, som båda bygger på samma principer som Ruby on Rails. Ruby on Rails hanterar kopplingen till databaser på ett ovanligt smidigt och enkelt sätt[enligt vem?].

Programexempel

Ruby är objektorienterat och saknar primitiva datatyper. Till och med heltal är objekt. Kodexemplet nedan visar två olika sätt på vilka man kan skriva ut texten "Hej världen" tio gånger i följd.

  10.times { puts 'Hej världen' }
  puts 'Hej världen' * 10

Ruby har inbyggt stöd för bignum-aritmetik, vilket gör att storleken på heltal endast är begränsat av mängden tillgängligt minne. Kodexemplet nedan skriver ut texten "Hej världen" 238472058502835 gånger.

  238472058502835.times { print "Hej världen." }

Kodexemplet nedan söker igenom textfilen "hej.txt" efter raden där det står "john doe" och skriver ut den.

  File.open("hej.txt","r").each do |line|
    puts line if (line.chomp == "john doe")
  end

Litteratur

  • Matsumoto (2007), Ruby in a Nutshell, 2nd ed., O'Reilly.
  • Carlson & Richardson (2006), The Ruby Cook Book, O'Reilly.
  • Fulton (2006), The Ruby Way (2nd ed), SAMS.
  • Thomas, Hansson (2005), Agile Web Development with Rails, The Pragmatic Programmers
  • Thomas, Fowler & Hunt (2004), Programming Ruby (2nd ed), Addison-Wesley.

Noter

Externa länkar

Guider