Rubiini

Rubiini
Logo.
Ensimmäisen version päivämäärä 1995
Paradigmat Tulkittu , esine , välttämätön , samanaikainen , toimiva
Kirjoittaja Yukihiro matsumoto
Kehittäjät Yukihiro Matsumoto ja avustajat
Viimeinen versio 3.0.1 (5. huhtikuuta 2021)
Kirjoittaminen Vahva , dynaaminen
Vaikuttanut Eiffel , Lisp , Smalltalk , Perl , Python , Dylan , Ada ja CLU
Vaikuttanut D-kieli , Groovy , Perl 6
Toteutukset Ruby, YARV , Ruby MRI , JRuby , XRuby, Rubinius , Cardinal, Gardens Point Ruby.NET, IronRuby , MacRuby, mruby android-ruby
Kirjoitettu VS
Käyttöjärjestelmä Monitasoinen
Lisenssi Ruby-lisenssi , GNU General Public License -versio 2 ja BSD 2 -lausekkeet ( d )
Verkkosivusto www.ruby-lang.org
Tiedostopääte rb ja rbw

Ruby on ilmainen ohjelmointikieli . Se on tulkittu , olio- ja moniparadigma . Kieli standardoitiin Japanissa vuonna 2011 ( JIS X 3017: 2011) ja vuonna 2012 Kansainvälinen standardointijärjestö (ISO 30170: 2012).

Historiallinen

Yukihiro "Matz" Matsumoto on Rubyn luoja. Turhautunut hänen kokemuksensa Smalltalk ja Lisp kehitystä , hän alkoi suunnitella uutta kieltä vuonna 1993 alle Emacs sitten julkaisi ensimmäisen version vuonna 1995 alle vapaalla lisenssillä . Hän jatkaa uusien versioiden jälkeen.

Suurimpia versiomuutoksia on tapahtunut:

Saapumisen jälkeen Englanti-speaking asiakirjat, ja Ruby on Rails web puitteet vuonna 2004, Ruby on kokenut tietty villitys, joka on jatkanut kasvuaan vuoteen 2008 maailmassa ohjelmointi, sitten hitaaseen laskuun, jos Päätellen hänen Tiobe indeksin .

Filosofia

Ruby on voimakkaasti objektorientoitu ja tulee siten lähelle Smalltalkin objektiparadigmaa  :

Tästä yksinomaan objektiivisesta näkökulmasta huolimatta menettelyjen ohjelmointi on mahdollista ja usein. Ruby käyttää yksinkertaista syntaksia , innoittamana Eiffel ja Ada .

Kieli esitetään usein välttävän epämiellyttäviä yllätyksiä mahdollisimman vähän yllätyksen periaatteen mukaisesti . Mutta koska se ei ole mahdollista välttää yllätykseksi kaikkien käyttäjien, Yukihiro Matsumoto täsmennetään, että hän pyrkii ennen kaikkea välttämään hänen oma yllätys. Joten mitä enemmän tiedämme kieltä, sitä enemmän tiedämme sen kirjoittajan logiikan, ja sitä vähemmän olemme yllättyneitä löydetyistä toiminnoista.

ominaisuudet

Tärkeimmät toiminnot ovat:

Toteutukset

Viralliset tulkki , Ruby MRI , toimii monissa käyttöjärjestelmissä  : UNIX , Linux , Microsoft Windows , MS-DOS , OS X , OS / 2 , ReactOS , AmigaOS jne Se on julkaistu alla GPL vapaata dual lisenssin ja Ruby lisenssin.

Ruby toimittaa interaktiivisen komentotulkin irb : n kanssa testatakseen perusteellisesti kielen toiminnan. On web -versio on IRB testaamiseen Ruby selaimessa.

Siitä asti kun 1. st Tammikuu 2007Kehittäminen Ruby (1,9) perustuu YARV tulkki kirjoittanut Koichi Sasada . Tämä uusi tulkki tuo huomattavaa suorituskykyä.

Sitä paitsi YARV , on useita muita Ruby tulkkeja:

JRuby se on kirjoitettu Java-muodossa ja tulkitsee suoraan Ruby-kirjoitetun lähdekoodin. XRuby Se muuntaa Ruby-koodin Java- tavukoodiksi ja on joissakin vertailuarvoissa nopeampi kuin virallisen tulkin versio 1.8.5. Rubinius Yksinkertaistettu virtuaalikone, innoittamana Smalltalk-80 , toteutettu itse Ruby. Kardinaali papukaijalla kulkeva tulkki . Gardens Point Ruby.NET .NET-kehyksessä toimiva tulkki . IronRuby kääntäjä, joka toimii .NET-kehyksen DLR : llä . Ruby verkkotunnukselle kääntäjä käynnissä CLR ja .NET joka on luovuttu IronRuby . MacRuby OS X -spesifinen Ruby 1.9 -toteutus , joka toimii Objective-C-ajonaikana , joka sallii kaakaokomponenttien natiivin käytön , toisin kuin RubyCocoa-sidokset.: Truffleruby Oraclen tukema ja kehittämä se on Rubal-kielen toteutus GraalVM: ssä, mikä antaa paremman suorituskyvyn kuin MRI. Toteutusvirheet estävät kuitenkin joidenkin suosittujen helmien asennuksen .


HipByte markkinoi myös vapaan ratkaisun, joka perustuu Laurent Sansonettin luomaan MacRuby- projektiin nimeltä RubyMotion .

Versiolla 2.0 voit luoda grafiikkasovelluksia macOS : lle ja iOS: lle .

Sulautetut tulkit

Ruby- ohjelmointirajapinta on C-kielellä, jonka avulla se voidaan integroida muihin ohjelmistoihin . Rubiinia voidaan käyttää erityisesti:

RPG Maker -videopelien luontiohjelmisto sisältää XP- ja VX-versioissaan kirjaston nimeltä RGSS, Ruby Game Scripting System, joka sallii komentosarjojen käytön Ruby-ohjelmassa.

Kirjastot

Kielelle voidaan lisätä monia kirjastoja ominaisuuksia. Näiden kirjastojen historiallinen arkisto on Ruby Application Archive (RAA). Se sisältää lisäominaisuuksia Rubylle, kuten luokka- ja moduulikirjastot, mutta myös laajennuksia kolmannen osapuolen kirjastojen käyttämiseen.

RAA sisältää myös ohjelmiston kirjoitettu Ruby. Näistä ohjelmistoista löytyy erityisesti Rubygems, joka on Ruby-laajennusten pakkaus- ja asennustyökalu. Se mahdollistaa Ruby-kirjastojen ja -ohjelmien nopean käyttöönoton.

Ajan myötä Rubygems-helmi- tietokannasta on tullut vertailukohtana Rubyn kirjastotallennustila (yli 49 miljardia latausta) - Bundle- työkalun r (kehitetty myös Ruby- sovelluksessa ) projektiriippuvuudet ladataan oletusarvoisesti Rubygemsista .

Rubyforge verkkosivuilla oli myös merkittävä joukko ohjelmia ja kirjastoja kirjoitettu Ruby kuitenkin suljettu sen kehittäjä vuonna 2014.

Esimerkkejä

Klassinen Hello world  :

puts 'Hello World!'

Esineiden käyttö:

# Tout est objet, même les nombres: -199.abs # 199 'ruby is cool'.length # 12 'Rick'.index 'c' # 2 "Nice Day Isn't It?".downcase.split(//).sort.uniq.join # " '?acdeinsty"

Mixinin ja perinnön käyttäminen  :

module AnimalSkills def eat puts "I'm eating !" end def move puts "I'm moving !" end def express; puts "I'm expressing !" end end class Animal include AnimalSkills # mixin @@name = 'an animal' # variable de classe def initialize(size, weight, color) # initialisation des variables d'instance @size = size.to_i @weight, @color = weight.to_i, color.to_s end def describe puts "I'm #{@@name} !" puts "I'm #{@size} meter tall, I weigh #{@weight} kilograms and I'm " + @color end end class Zebra < Animal # héritage @@name = 'a zebra' # rédéfinition de la variable de classe: maintenant tous les animaux sont des zèbres ! def initialize(size, weight, color = 'black and white') # surcharge super # appel de la méthode de la classe mère (Animal) end end z = Zebra.new(1, 50) z.describe # => I'm a zebra ! / I'm 1 meter tall, I weigh 50 kilograms and I'm black and white z.eat # => I'm eating !

Huomautuksia ja viitteitä

Huomautuksia

  1. Tärkein ero on, että ohjausrakenteet (jos-sitten-muu, kun taas jne.) Eivät ole esineitä.

Viitteet

  1. "  https://www.ruby-lang.org/fi/news/2021/04/05/ruby-3-0-1-released/  "
  2. Johdanto-D-ohjelmointikieli 1.0 - Digitaalinen Mars .
  3. "  https://www.ruby-lang.org/ja/news/2013/06/30/we-retire-1-8-7/  "
  4. "  https://www.ruby-lang.org/ja/news/2011/10/31/ruby-1-9-3-p0-is-released/  "
  5. JIS X 3017: 2011 - Ohjelmointikielet - Rubiini .
  6. ISO / IEC 30170: 2012 Tietotekniikka - Ohjelmointikielet - Rubiini .
  7. Virallinen FTP-lataussivusto .
  8. (in) Ilmoitus versiosta 1.9.1 .
  9. Ruby 1.9.3-p0 vapautettu .
  10. (en) Ruby 2.0.0-p0 julkaistaan .
  11. (en) Ruby 2.1.0 julkaistaan .
  12. Selitys kasvulle virallisella verkkosivustolla.
  13. (in) Ruby on HOPL , ohjelmointikielten historia .
  14. PoLS: n määritelmä Ruby Garden -wikissä .
  15. (in) e-mail Re: Eri näkökulma on Ruby, jonka Matz lähetti 26. toukokuuta 2005 ruby-talkissa .
  16. (in) Ruby-A Diamond of a Programming Language, osa 2 , artikkeli julkaistu osoitteessa devx.com .
  17. Lisenssin teksti virallisella verkkosivustolla .
  18. (sisään) Kokeile Ruby! sivustolla hobix.com.
  19. (sisään) The Ruby VM: Episode I , haastattelu matz ja ko1 virtuaalikone Ruby.
  20. (sisään) The Great Ruby Shootout , johtavien tulkkien Ruby suorituskyvyn vertailu.
  21. JRubyn virallinen verkkosivusto
  22. (en) XRuby on nopeampi kuin Ruby 1.8.5 MOST -vertaisissa .
  23. (in) Rubinius haastattelu .
  24. Cardinal-projektin verkkosivusto .
  25. (in) Ruby.NET - integrointi Gardens Point Compiler mukaan Huw Collingbourne.
  26. (en) http://www.ironruby.net/ .
  27. (fi) viralliset verkkosivut MacRuby .
  28. (in) PragTob , Menetelmän tekoälyn vertailu Ruby: CRuby vs. Rubinius vs. JRuby vs. Tryffeli - vuosi myöhemmin  ” , ei enää niin nuoren ohjelmistoinsinöörin matkat ,24. tammikuuta 2017(katsottu 4. huhtikuuta 2020 )
  29. Ruby-sovellusarkisto .
  30. Rubygemsin virallinen verkkosivusto .
  31. “  RubyGems.org | sinun helmi-isäntäyhteisösi  ” , rubygems.org-sivustolla ( luettu 3. huhtikuuta 2020 )
  32. RubyForge .
  33. (sisään) Mx Evan Phoenix , "  Ilmoitti tänään, että auringonlaskemme RubyForgen. Viimeinen päivä on 15. toukokuuta. Aloita tiedonsiirto nyt!  » , Päällä @evanphx ,10. marraskuuta 2013(katsottu 4. huhtikuuta 2020 )

Liitteet

Bibliografia

  • (en) Dave Thomas ja Andrew Hunt , Programming Ruby: Pragmatic Programmer's Guide ,2000, 564  Sivumäärä ( ISBN  0-201-71089-7 , lue verkossa )
  • Yukihiro Matsumoto ( trans.  Vuodesta Englanti), Ruby pähkinänkuoressa , Cambridge / Köln / Pariisi jne O'Reilly2002, 242  Sivumäärä ( ISBN  2-84177-210-1 )
  • (en) Dave Thomas , Chad Fowler ja Andy Hunt , Programming Ruby: The Pragmatic Programmer's Guide ,2004( ISBN  0-9745140-5-5 )
  • Chris Pine ( käännös  englanniksi), Aloita ohjelmointi Rubyn kanssa , Pariisi, CampusPress,2006, 165  Sivumäärä ( ISBN  2-7440-2078-8 )
  • Lucas Carlson ja Leonard Richardson , esimerkkinä Ruby ,2006, 867  Sivumäärä ( ISBN  978-2-84177-347-3 )
  • (en) Hal Fulton , The Ruby Way, 2nd Edition: Solutions and Techniques in Ruby Programming (2nd Edition) ,2006( ISBN  0-672-32884-4 )
  • (en) Maik Schmidt , Enterprise Integration with Ruby: Pragmatic Guide ,2006, 346  Sivumäärä ( ISBN  0-9766940-6-9 )
  • (en) Brian Marick , jokapäiväinen skriptaus Rubyn kanssa: Joukkueille, testaajille ja sinulle ,2007, 301  Sivumäärä ( ISBN  978-0-9776166-1-9 )
  • (en) Peter Cooper , aloitteleva rubiini: aloittelijasta ammattilaiseen ,2007( ISBN  978-1-59059-766-8 )

Aiheeseen liittyvät artikkelit

Ulkoiset linkit