Ruby / JRuby - Ruby On Rails


Contexte
Kantena a mené de nombreux projets de modernisation (patrimoines logiciels vers les environnements Objet et Web). Notre société a dû assumer des choix avec ses clients afin de « reskiller » ses consultants afin de répondre aux problématiques suivantes :
- comment résorber une dette technique,
- comment allier la simplicité d’un L4G avec les apports des architectures Web,
- comment améliorer nos pratiques de développement ?
Pourquoi RUBY
Langage Ruby :
- Est un langage de script / dynamique orienté objet,
- L’environnement Java avec Jruby permet un accès simplifié à l’écosystème Java, mais aussi à l’environnement .Net (avec Iron-Ruby) et à SAP et ABAP avec Blue Ruby,
- Regroupe le meilleur d’autres langages de script (Perl Python, ..) qui ne sont pas forcement objet,
- Est moins foisonnant et complexe, donc plus simple à utiliser et plus facile à apprendre que Java,
- Est très apprécié des équipes de développement,
- Permet de respecter les principes KISS et DRY,
- Est un langage libre développé en Open Source,
- Est utilisable de l’iPhone (JRuby) au Mainframe.
Framework Rails :
- Est très bien adapté aux développements de gestion,
- Propose un découpage MVC, logique de client léger à interface dans un navigateur avec http simple ou Ajax ; cela peut aller jusqu’au client lourd type RDA (Ruby),
- Utilise des conventions, et non des configurations.
Analyse stratégique de KANTENA

Exemples d’application
- Projets et prototypes prévus en phases (versions),
- Projets nouveaux à périmètre non stabilisé,
- Développements moins coûteux qu’en Java (à qualité égal, gain significatif en temps de programmation),
- Adapté à la DSI lorsqu’elle veut se rapprocher de la MOA,
- Idéal dans le cas de migration / portage d’applications sur le Web,
- Développement d’Add-on autour des applications Java existantes (c’est du « Java » sans Java),
- Lorsque différentes applications doivent être implémentées sur une même JVM,
- Lorsqu’il est stratégique de prévoir une maintenance évolutive (langage « expressif » : reprise des codes plus facile pour un tiers),
- Alternative à coût maîtrisé à une externalisation (sous-traitance ou Offshore) de développement Java décidée pour cause de coûts trop élevés en interne ...




