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) ; evalest 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 dearray(); trueetfalseidentiques, avec simplementnullécritnil;
Différences
Contrairement à PHP, avec Ruby…- le typage est fort. Il faut utiliser des méthodes comme
to_s,to_ipour faire les conversions de types ; - nombres, chaînes de caractères, tableaux, hash, etc. tous sont des objets. Par exemple, on écrira
-1.abset non pasabs(-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
Reflectionen 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
falseetnils’é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, lethrowde PHP).
rubyforge.org rubyforge.org rubyforge.org radiantcms.org rubyforge.org tryruby.hobix.com rubyforge.org