EnglishDeutschFrançaisEspañolPortuguêsIndonesian日本語한국어简体中文繁體中文PolskiTürkçe

De PHP à Ruby

PHP est très répandu pour les applications web, mais si vous avez découvert Ruby on Rails ou souhaiter aborder un langage plus généraliste, Ruby vaut certainement le coup d’œil.

Similarités

Tout comme en PHP, en Ruby…
  • le typage est dynamique : pas besoin de déclarer les variables ;
  • il y a des classes, dont la gestion est la même qu’en PHP 5 (public, protected, private, etc.) ;
  • certaines variables débutant par $ (mais pas toutes : seulement les globales) ;
  • eval est toujours de la partie ;
  • interpolation au sein des chaînes de caractères, de la forme ”#{foo} is a #{bar}” au lieu de ”$foo is a $bar”. Comme en PHP, cela ne fonctionne que pour les chaînes entre guillemets doubles ;
  • heredocs existe aussi ;
  • des exceptions pour gérer les erreurs, comme en PHP 5 ;
  • une bibliothèque standard relativement dense ;
  • des tableaux et des hashs identiques sur le fond, la forme étant respectivement {...} au lieu de array() ;
  • true et false identiques, avec simplement null écrit nil ;

Différences

Contrairement à PHP, avec Ruby…
  • le typage est fort. Il faut utiliser des méthodes comme to_s, to_i pour faire les conversions de types ;
  • nombres, chaînes de caractères, tableaux, hash, etc. tous sont des objets. Par exemple, on écrira -1.abs et non pas abs(-1) ;
  • les parenthèses sont souvent optionnelles, notamment dans les appels de méthodes. Usage recommandé pour clarifier la filiation des paramètres, cependant ;
  • la bibliothèque standard ne s’organise pas d’après des conventions de nommage, mais en modules et classes ;
  • la réflection est une capacité intrinsèque des objets : pas besoin d’utiliser une classe comme Reflection en PHP 5 ;
  • les variables sont des références aux objets (leurs noms), pas des objets ;
  • pas de classes abstraites (abstract) ni d’interfaces ;
  • les tableaux et les hashs ne sont pas interchangeables ;
  • seuls false et nil s’évaluent à faux : 0, array(), "..." valent tous vrai dans les tests conditionnels ;
  • à peu près tout est un appel de méthode, d’une manière ou d’une autre (même raise, le throw de PHP).

rubyforge.org rubyforge.org rubyforge.org radiantcms.org rubyforge.org tryruby.hobix.com rubyforge.org