Ruby on Rails 2.0

11 12 2007

Un an et demi s’est écoulé depuis la 1.1. Le changelog est à la mesure du changement de numéro de version.

Toutes ces nouveautés paraissent bien utiles, malheureusement je n’ai plus le temps de suivre de près l’évolution de ce langage.

En effet, ces derniers temps font que je penche désormais beaucoup du coté .NET, mais je reste attaché profondément aux valeurs portées par ce framework. (Un jour peut-être que j’y reviendrais…)

C’est pour cela aussi que je vois venir avec grand intérêt le framework ASP.NET MVC dont les personnes à l’origine sont également fans de Rails.

Petite liste des fonctionnalités « inspirées » :

  • Séparation des rôles : Possibilité de tester la couche Controlleur sans conteneur web
  • Hautement extensif et pluggable : Comme tout est à base d’interfaces, il est facile d’intégrer un moteur d’injection de dépendance
  • URL Mapping Natif : Idem des routes de Rails
  • Moteur de template pour la couche présentation
  • etc.

Tant mieux si Ruby on Rails peut apporter sa philosophie dans d’autres environnements, tout le monde y sera gagnant.



Rails, mon amant de programmation

1 02 2007

Dans mon travail de tous les jours je revendique une expertise technique sur les technologies .NET et Java/J2EE.

Mais le soir venu, lorsque la lumière du jour disparait, je me transforme en raileur.

Je quitte un monde d’IDE affinés depuis 10 ans et de langages statiques pour me retrouver devant mon simple éditeur de texte, une console MS-DOS et une contrée vaste remplie de dynamisme et de conventions.

Au début je trouvais choquant de perdre tous ces beaux outils, le refactoring surpuissant d’Eclipse, le contrôle statique à la compilation… Aujourd’hui je m’aperçois que cela n’a aucune incidence pour une seule raison :

Rails = productivité

Et je m’étonne à chaque fois des choses que j’arrive à accomplir durant le peu de temps que je consacre à ces activités. La transition d’une idée en concept puis en implémentation devient fluide. Les points bloquants restent les points de conception mais une fois ceux-ci résolus, le codage se fait naturellement.

Si l’on prend une métaphore routière, J2EE c’est le 33 tonnes. Le moteur est costaud et le réservoir d’essence est plein. On est donc sûr d’arriver au bout.

Rails c’est la formule 1. Il faut être à l’aise et savoir garder le contrôle. Evidemment, c’est plus difficile à piloter. C’est ce qui explique pourquoi les « early adopters » sont souvent des personnes ayant déjà une expérience significative dans le développement.

Voilà pourquoi cette technologie a le vent en poupe. Percera-t-elle dans le milieu professionnel ? C’est difficile à prédire, mais la tendance semble bonne… En tout cas mon intérêt s’affirme à chaque fois que je viens à pratiquer du rails.



Ruby on Rails 1.1 de sortie

28 03 2006

Deux mois après la version 1.0 finale, une update majeure est sortie avec la 1.1. La liste des nouveautés est assez impressionnante mais voici les principales compréhensibles pour les non railistes (j’invente ce mot) :

  • RJS : Javascript écrit en Ruby. On peut écrire maintenant un code comme :
# Highlight all the DOM elements of class "product"  page.select(".product").each do |element|    element.visual_effect :highlight  end
 # 4 seconds after rendering, set the font-style of all company  # spans inside tds to normal  page.delay(4) do    page.select("td span.company").each do |column|      column.set_style :fontStyle => "normal"    end  end

Ce qui générera le code Javascript correspondant. L’intérêt est de ne pas forcer sur l’apprentissage du Javascript et de continuer à programmer en Ruby même sur le poste client avec une étape intermédiaire d’interprétation du Ruby en JS…

Techniquement assez impressionnant quand même !

  • Active Record : C’etait déjà le gros pavé de Rails avec l’intégration du mapping objet-relationnel dans le framework. La couche a donc été amélioré avec des possibilités accrues dans l’association des objets. Je ne rentrerais pas plus dans les détails, n’ayant pas suivi de près.
  • Integration Test : Des outils sympathiques ont été ajouté qui permettent d’exécuter des tests d’IHM sur l’application codés en Ruby. Exemple de code :
   def test_signup_new_person      get "/login"      assert_response :success      assert_template "login/index"
     get "/signup"      assert_response :success      assert_template "signup/index"    end

Au passage, si vous suivez un peu le framework Rails, je vous conseille de suivre l’excellent blog Ruby’s Cube qui donne pas mal d’astuces sur Ruby/Rails et en francais pour ne rien gacher !

Via l’article original posté sur le blog Rails qui donne les nouveautés de façon bien plus exhaustive.