Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Écosystème Ruby : Enjeux et Perspectives

1,079 views

Published on

Une petite présentation faite le 13 mars 2008 devant le LUG de Strasbourg.

Published in: Technology
  • Be the first to comment

Écosystème Ruby : Enjeux et Perspectives

  1. 1. Écosystème Ruby : Enjeux et Perspectives Yann Klis, MiniConf, 11 mars 2008
  2. 2. Présentation Yann Klis Formation à Strasbourg (réseaux et applicatifs) grandes entreprises, start'up, SSII fondateur de Novelys (Strasbourg) en 2005 spécialisée dans le développement d'applications web basée sur Ruby et Rails (et occasionnellement Python) Yann Klis, Novelys, 11 mars 2008
  3. 3. “Rails is the killer app for Ruby.” Yukihiro Matsumoto, Créateur du langage Ruby Yann Klis, Novelys, 11 mars 2008
  4. 4. Plan Virtual Machines Serveurs web Framework Web Divers Yann Klis, Novelys, 11 mars 2008
  5. 5. Plan Virtual Machine Yann Klis, Novelys, 11 mars 2008
  6. 6. “Un logiciel ou interpréteur qui isole l'application utilisée par l'utilisateur des spécificités de l'ordinateur.” Wikipedia Yann Klis, Novelys, 11 mars 2008
  7. 7. VM “officielles” Ruby 1.8 aka MRI (Matz' Ruby Implementation) pas très performante green threads (fastthread) YARV et Ruby 1.9 YARV == Yet Another Ruby VM (1 personne) sorti en décembre 2007 pas encore pour la production meilleurs perfs que MRI Yann Klis, Novelys, 11 mars 2008
  8. 8. Rubinius Architecture basée sur Smalltalk-80 “petite” VM écrite en C Ruby pour le reste Intégration des dernières recherches en ingéniérie logicielle Meilleurs perfs que VM 1.8 et 1.9 (dans certains cas) EngineYard (4 personnes) Yann Klis, Novelys, 11 mars 2008
  9. 9. Utilisation de VM existantes JRuby / IronRuby JVM / VM .Net et Dynamic Language Runtime (DLR) Sun + ThoughtWorks (6 personnes) / Microsoft JIT / AOT Interaction avec la VM hôte et le code executé dans d'autres langages Plateforme Libre (Mono) Yann Klis, Novelys, 11 mars 2008
  10. 10. Autres VM Xruby basé sur la JVM compile le code Ruby vers du bytecode Java Cardinal VM Parrot Yann Klis, Novelys, 11 mars 2008
  11. 11. Plan Virtual Machines Serveurs web Yann Klis, Novelys, 11 mars 2008
  12. 12. Chronologie (sur 2 ans) mod_ruby CGI FastCGI (SCGI) Mongrel EventedMongrel (emongrel) Thin Ebb ? mod_rubinius ? Yann Klis, Novelys, 11 mars 2008
  13. 13. Chronologie mod_ruby (Apache) CGI FastCGI (SCGI) Yann Klis, Novelys, 11 mars 2008
  14. 14. Chronologie Mongrel “plain HTTP” parser écrit en Ragel et en C Evented Mongrel (emongrel) - thread, + event (EventMachine) Thin parser de Mongrel (vitesse et sécurité) EventMachine Rack Yann Klis, Novelys, 11 mars 2008
  15. 15. Chronologie (future ?) Ebb libev “mongrel state machine” Rack => quasiment tout en C mod_rubinius module pour Apache et Nginx Yann Klis, Novelys, 11 mars 2008
  16. 16. Quelques chiffres Yann Klis, Novelys, 11 mars 2008
  17. 17. Plan Virtual Machines Serveurs web Frameworks web Yann Klis, Novelys, 11 mars 2008
  18. 18. Problèmes liés à Rails Trop de “hype” (maturité de certains plugins) “thread safety” Montée en charge Rails n'est pas le meilleur outil  pour tous les développements web Yann Klis, Novelys, 11 mars 2008
  19. 19. “Autres” framework Web Ramaze Camping (4k) Nitro Cerise (inspiration de J2EE) Coset (adapteur Rack pour REST) Halcyon (JSON) moins de magie, IOWA adapté à un usage particulier, Unicycle (EventMachine) choix de composants particuliers, Merb basé sur d'autres concepts ... Yann Klis, Novelys, 11 mars 2008
  20. 20. Plan Virtual Machines Serveurs web Frameworks web Divers Yann Klis, Novelys, 11 mars 2008
  21. 21. EventMachine Ruby et C “event driven” (select, epoll, kqueue, etc) Reactor Pattern Comparable à Twisted dans le monde Python Yann Klis, Novelys, 11 mars 2008
  22. 22. EventMachine (2) Concurrency: 20 Requests: 2000 EventMachine: Requests per second: 3327.79/sec (mean) Twisted: Requests per second: 3194.76/sec (mean) Concurrency: 200 Requests: 20000 EventMachine: Requests per second: 4401.80/sec (mean) Twisted: Requests per second: 4761.90/sec (mean) Yann Klis, Novelys, 11 mars 2008
  23. 23. EventMachine (3) require 'rubygems' require 'eventmachine' module Echo def receive_data data send_data data end end EM.run { EM.start_server "0.0.0.0", 10000, Echo } Yann Klis, Novelys, 11 mars 2008
  24. 24. Rack Interface entre un serveur web et un framework Ruby Interface Rack dispo pour Rails, Ramaze, Merb, etc Yann Klis, Novelys, 11 mars 2008
  25. 25. Divers - Shoes Toolkit et gestion de fenêtre Inspiré des pratiques du web Shoes.app { button("Press Me") { alert("You pressed me") } } Yann Klis, Novelys, 11 mars 2008
  26. 26. Divers - Erlang/Ruby Erlectricity Pont entre des processus Erlang et Ruby Fuzed Faire tourner des applis Rails derrière Yaws Yann Klis, Novelys, 11 mars 2008
  27. 27. Divers Starling Gestion de file d'attente développé par Twitter Revactor “Actor” (thread avec boîte aux lettres) S'inspire de Erlang, Scala, etc Yann Klis, Novelys, 11 mars 2008
  28. 28. Conclusion Univers Ruby de plus en plus mature Gestion de la “courbe de hype” Logiciel de plus en plus pointu Logiciel “phare” (EventMachine, Rack, Rubinius) Performance ? Et le “desktop” ? Yann Klis, Novelys, 11 mars 2008
  29. 29. Ressources http://www.rubyinside.com/ http://ramaze.net/#other-frameworks http://rubyforge.org/news/ Merci de votre attention ! (contact@novelys.com) Yann Klis, Novelys, 11 mars 2008

×