The Object-Oriented Programming Language RubyDe Nederlandse Ruby Homepage



Wat is ruby

Ruby is de geïnterpreteerde script taal voor snel en gemakkelijk object-georiënteerd programmeren.Het heeft veel voorzieningen voor het verwerken van tekstbestanden en het uitvoeren van systeembeheer taken (zoals Perl). Het is eenvoudig, doorzichtig, uitbreidbaar en makkelijk te porten.

Oh, wat ik nog moet zeggen: het vrije software. Dit betekend dat het niet alleen gratis is, maar ook dat je vrij bent om het te gebruiken, te copiëren, te wijzigen en te verspreiden zoals je goeddunkt.


Kenmerken van Ruby

  • Ruby heeft een eenvoudige syntax, deels geïnspireerd door Eiffel en Ada.

  • Ruby heeft voorzieningen voor exception handling, zoals Java of Python, om het eenvoudig te maken om fouten af te handelen.

  • Ruby's operators zijn syntax suiker voor method calls. Ze zijn eenvoudig te herdefiniëren.

  • Ruby is a complete en pure object-georiënteerde taal: OOL. Dit betekend dat alle data in Ruby een object is, niet in de zin van Python of Perl, maar in de zin van Smalltalk: geen uitzonderingen. Voorbeeld: In Ruby is het getal 1 een instantie van de klasse Fixnum.

  • Ruby's OO is zorgvuldig ontworpen voor volledigheid en om open te staan voor verbeteringen. Voorbeeld: Ruby biedt de mogelijkheid om in runtime methodes toe te voegen aan een klasse of zelfs aan een instantie van een klasse. Dus, indien nodig, *kan* een instantie van een klasse ander gedrag vertonen dan andere instanties van de zelfde klasse.

  • Ruby kent, *met opzet*, alleen single inheritance. Maar Ruby kent het concept van modules (in Objective-C Categoriën genoemd). Modules zijn verzamelingen van methodes. Iedere klasse kan een module importeren en op die manier alle methodes van de module verkrijgen (mix-in). Dit volgens sommigen een betere manier dan multiple inheritance, die gecompliceerd is, en niet vaak wordt gebruikt in vergelijking met single inheritance (C++ niet meegerekend, aangezien die vaak geen andere keus heeft als gevolg van strong type checking!).
  • Ruby kent echte closures. Niet alleen naamloze functies, maar met bindings met aanwezige variabelen.

  • Ruby kent code-blocks in zijn syntax (code singesloten door '{' ... '}' of door 'do' ... 'end'). These code-blocks kunnen worden doorgegeven aan methodes of worden omgezet in closures.
  • Ruby heeft een echte mark-and-sweep garbage collector. Het werkt met alle Ruby objecten. Je hoeft geen reference counts bij te houden in extension libraries. Dit is beter voor je gezondheid. ;-)

  • Het schrijven van C extensies in Ruby is makkelijker dan in Perl of Python, deels vanwege de garbage collector, en deels vanwege de uitstekende uitbreidings API. Een SWIG interface is ook beschikbaar.

  • Integers in Ruby kunnen worden gebruikt zonder rekening te hoeven houden met hun interne representatie. Er *zijn* kleine integers (instanties van de klasse Fixnum) and grote integers (Bignum), maar je hoeft je niet druk te maken over welke er word gebruikt. Als een waarde klein genoeg is, is een integer een Fixnum, anders is het een Bignum. Conversie gaat automatisch.

  • Het is in Ruby niet nodig variabelen te declareren. Het gebruikt eenvoudige naamgevings conventies om de scope van variabelen aan te geven. Voorbeeld: eenvoudig 'var' = locale variabele, '@var' = instance variabele, '$var' = globale variable. Het is daarom ook niet nodig om iedere instance variabele met 'self.' te prefixen.

  • Ruby kan extension libraries dynamisch laden als het OS dat toelaat.

  • Ruby kent OS onafhankelijke threading. Dus voor alle platforms waarop Ruby draait is multithreading beschikbaar, ongeacht of het OS het ondersteund of niet, zelf onder MS-DOS! ;-)

  • Ruby is makkelijk te porten: het wordt voornamelijk onder Linux ontwikkeld, maar werkt op vele soorten UNIX, DOS, Windows 95/98/NT, Mac, BeOS, OS/2, etc.

De bedenker van Ruby

Yukihiro Matsumoto, a.k.a Matz
matz@netlab.jp


Home Nederlands