Écosystème Ruby : Enjeux et Perspectives
-
Upload
novelys -
Category
Technology
-
view
970 -
download
4
description
Transcript of Écosystème Ruby : Enjeux et Perspectives
Yann Klis, Novelys, 11 mars 2008
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
“Rails is the killer app for Ruby.”Yukihiro Matsumoto, Créateur du langage Ruby
Yann Klis, Novelys, 11 mars 2008
“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
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
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
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
Autres VM
Xruby
basé sur la JVM
compile le code Ruby vers du bytecode Java
Cardinal
VM Parrot
Yann Klis, Novelys, 11 mars 2008
Chronologie(sur 2 ans)
mod_ruby
CGI
FastCGI
(SCGI)
Mongrel
EventedMongrel (emongrel)
Thin
Ebb ?
mod_rubinius ?
Yann Klis, Novelys, 11 mars 2008
ChronologieMongrel
“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
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
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
“Autres” framework WebRamaze
Camping (4k)
Nitro
Cerise (inspiration de J2EE)
Coset (adapteur Rack pour REST)
Halcyon (JSON)
IOWA
Unicycle (EventMachine)
Merb...
moins de magie,adapté à un usage
particulier,choix de composants
particuliers,basé sur d'autres concepts
Yann Klis, Novelys, 11 mars 2008
EventMachine
Ruby et C
“event driven” (select, epoll, kqueue, etc)
Reactor Pattern
Comparable à Twisted dans le monde Python
Yann Klis, Novelys, 11 mars 2008
EventMachine (2)
Concurrency: 20Requests: 2000
EventMachine: Requests per second: 3327.79/sec (mean)Twisted: Requests per second: 3194.76/sec (mean)
Concurrency: 200Requests: 20000
EventMachine: Requests per second: 4401.80/sec (mean)Twisted: Requests per second: 4761.90/sec (mean)
Yann Klis, Novelys, 11 mars 2008
EventMachine (3)
require 'rubygems'require 'eventmachine'
module Echo def receive_data data send_data data endend
EM.run { EM.start_server "0.0.0.0", 10000, Echo}
Yann Klis, Novelys, 11 mars 2008
Rack
Interface entre un serveur web et un framework Ruby
Interface Rack dispo pour Rails, Ramaze, Merb, etc
Yann Klis, Novelys, 11 mars 2008
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
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
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
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
Ressources
Merci de votre attention !
http://www.rubyinside.com/
http://ramaze.net/#other-frameworks
http://rubyforge.org/news/