Ruby

Från Wikipedia
Hoppa till: navigering, sök
För andra betydelser, se Ruby (olika betydelser).
Ruby
Ruby-logo-R.svg
Paradigm multi-paradigm: objektorienterad, imperativ, funktionell, reflektiv
Gavs ut 1995
Skapat av Yukihiro Matsumoto
Utvecklare Yukihiro Matsumoto och m.m.
Senaste version 2.1.1 (2014-02-24)
Datatypsdisciplin duck, dynamic
Implementationer Ruby MRI, YARV, JRuby, Rubinius, IronRuby, MacRuby, HotRuby
Influerat av Ada, C++, CLU, Dylan, Eiffel, Lisp,Perl, Python, Smalltalk
Influerat Perl 6, Falcon, Fancy, Groovy (programspråk), Ioke, Mirah, Nu, Reia
Platform Unix, Linux, Microsoft Windows, m.m.
Licens GPL och Ruby License
Webbplats ruby-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[redigera | redigera wikitext]

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[redigera | redigera wikitext]

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. Språkets popularitet växer snabbt[källa behövs].

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 X, 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 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[redigera | redigera wikitext]

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[redigera | redigera wikitext]

  • 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[redigera | redigera wikitext]

  1. ^ http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/2773

Externa länkar[redigera | redigera wikitext]

Guider[redigera | redigera wikitext]