SlideShare ist ein Scribd-Unternehmen logo
1 von 12
2013-03-08   Parce que le Ruby, c’est bien   1
Contenu

             ⦿Le Ruby… ?
             ⦿Une syntaxe minimaliste
             ⦿Fonctionnalités
             ⦿S’installer en 10 minutes
             ⦿Les gems & bundler
             ⦿4-5 scripts ensembles



2013-03-08                   Ca va être du bonheur   2
Le Ruby… ?

             1995: première publication
                 Yukihiro « matz » Matsumoto
             2004: Ruby on Rails
             Aujourd’hui: 11ème sur TIOBE

             Ruby c’est aussi, une communauté



                    "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be
2013-03-08                                                                                                                         3
                                      happy. That is the primary purpose of Ruby language.“ Yukihiro Matsumoto
Une syntaxe minimaliste

        Script
                                                                                                                                                 if en fin de ligne



Pas d’accolades                                                                                                                                Pas de parenthèses




             Pas de return




                 « Dans quelque domaine que ce soit, la perfection est enfin atteinte non pas lorsqu'il n'y a plus rien à ajouter mais lorsqu'il n'y a plus rien à enlever »
2013-03-08                                                                                                                                                                     4
                                                                               Antoine de Saint-Exupéry
Fonctionnalités

             ⦿Open source
             ⦿« Plus puissant que Perl, et plus
              orienté objet que Python »
                                                                                      Mixins
                                                                      Typed Exception handling
Dynamic
                                  Duck typed
                                                                             Reflective
              Garbage collected
                                                          Cross-platform
  RubyGems                 Boolean coercion
2013-03-08                    Chuck Norris m’a aidé à faire les animations                       5
S’installer en 10 minutes
             ⦿On a besoin de:
                 ⦿rubyinstaller.org
                 ⦿DevKit
                 ⦿MySysGit
             ⦿Ou plus simplement:
                 ⦿RailsInstaller
             ⦿IDE: RubyMine, EMACS, TextMate…
                 ⦿Bonus RubyMine: thème VS


2013-03-08               Ce message pas très subliminal te suggère fortement d’utiliser railsinstaller   6
2013-03-08   Si il n’y a pas de questions, on passe donc directement à la métaprogrammation dynamique   7
Les gems & bundler

⦿ Les gem, ces librairies distribuées
⦿ http://rubygems.org

             Nom                                                    Plateforme
                     Version
⦿ gem help commands & gem environment
⦿ Recherche -> gem install nokogiri -> require ‘nokogiri’
⦿ bundle install & bundle update

2013-03-08                 Non, tu peux pas les offrir à ta femme                8
« Ask me no questions, and I'll tell you no lies. »
2013-03-08                 Oliver Goldsmith                        9
5 scripts

             1. Appels système
             2. Notifications RATP
                => nokogiri & ruby_gntp (growl)
             3. Proxification (métaprogrammation)
             4. Organiseur de séries
             5. Cra client
                => nokogiri & mechanize


2013-03-08                L’heure de la pizza n’a jamais été aussi proche   10
LouisKottmann/PrezRuby (git)
                        RubyKoans
                    Desining ruby APIs
                       RailsTutorial
                       Ruby-toolbox
                       Thor & Rake
             SelectorGadget / GrowlForWindows




2013-03-08                  Qui fait un caps’?   11
2013-03-08   12

Weitere ähnliche Inhalte

Mehr von SOAT

Back from Microsoft //Build 2018
Back from Microsoft //Build 2018Back from Microsoft //Build 2018
Back from Microsoft //Build 2018SOAT
 
L'entreprise libérée
L'entreprise libéréeL'entreprise libérée
L'entreprise libéréeSOAT
 
Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !SOAT
 
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseJAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseSOAT
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESSOAT
 
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-DurandSOAT
 
1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-DurandSOAT
 
2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-DurandSOAT
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido SOAT
 
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu ParisotDans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu ParisotSOAT
 
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014SOAT
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...SOAT
 
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014SOAT
 
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...SOAT
 
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014SOAT
 
ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)SOAT
 
Xamarin et le développement natif d’applications Android, iOS et Windows en C#
 Xamarin et le développement natif d’applications Android, iOS et Windows en C# Xamarin et le développement natif d’applications Android, iOS et Windows en C#
Xamarin et le développement natif d’applications Android, iOS et Windows en C#SOAT
 
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatA la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatSOAT
 
MongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesMongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesSOAT
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSOAT
 

Mehr von SOAT (20)

Back from Microsoft //Build 2018
Back from Microsoft //Build 2018Back from Microsoft //Build 2018
Back from Microsoft //Build 2018
 
L'entreprise libérée
L'entreprise libéréeL'entreprise libérée
L'entreprise libérée
 
Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !
 
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseJAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entreprise
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
 
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
 
1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand
 
2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido
 
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu ParisotDans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
 
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
 
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
 
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
 
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
 
ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)
 
Xamarin et le développement natif d’applications Android, iOS et Windows en C#
 Xamarin et le développement natif d’applications Android, iOS et Windows en C# Xamarin et le développement natif d’applications Android, iOS et Windows en C#
Xamarin et le développement natif d’applications Android, iOS et Windows en C#
 
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatA la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
 
MongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesMongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de données
 
Soirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVCSoirée 3T Soat - Asp.net MVC
Soirée 3T Soat - Asp.net MVC
 

Scriptez en Ruby by louis kottman

  • 1. 2013-03-08 Parce que le Ruby, c’est bien 1
  • 2. Contenu ⦿Le Ruby… ? ⦿Une syntaxe minimaliste ⦿Fonctionnalités ⦿S’installer en 10 minutes ⦿Les gems & bundler ⦿4-5 scripts ensembles 2013-03-08 Ca va être du bonheur 2
  • 3. Le Ruby… ? 1995: première publication Yukihiro « matz » Matsumoto 2004: Ruby on Rails Aujourd’hui: 11ème sur TIOBE Ruby c’est aussi, une communauté "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be 2013-03-08 3 happy. That is the primary purpose of Ruby language.“ Yukihiro Matsumoto
  • 4. Une syntaxe minimaliste Script if en fin de ligne Pas d’accolades Pas de parenthèses Pas de return « Dans quelque domaine que ce soit, la perfection est enfin atteinte non pas lorsqu'il n'y a plus rien à ajouter mais lorsqu'il n'y a plus rien à enlever » 2013-03-08 4 Antoine de Saint-Exupéry
  • 5. Fonctionnalités ⦿Open source ⦿« Plus puissant que Perl, et plus orienté objet que Python » Mixins Typed Exception handling Dynamic Duck typed Reflective Garbage collected Cross-platform RubyGems Boolean coercion 2013-03-08 Chuck Norris m’a aidé à faire les animations 5
  • 6. S’installer en 10 minutes ⦿On a besoin de: ⦿rubyinstaller.org ⦿DevKit ⦿MySysGit ⦿Ou plus simplement: ⦿RailsInstaller ⦿IDE: RubyMine, EMACS, TextMate… ⦿Bonus RubyMine: thème VS 2013-03-08 Ce message pas très subliminal te suggère fortement d’utiliser railsinstaller 6
  • 7. 2013-03-08 Si il n’y a pas de questions, on passe donc directement à la métaprogrammation dynamique 7
  • 8. Les gems & bundler ⦿ Les gem, ces librairies distribuées ⦿ http://rubygems.org Nom Plateforme Version ⦿ gem help commands & gem environment ⦿ Recherche -> gem install nokogiri -> require ‘nokogiri’ ⦿ bundle install & bundle update 2013-03-08 Non, tu peux pas les offrir à ta femme 8
  • 9. « Ask me no questions, and I'll tell you no lies. » 2013-03-08 Oliver Goldsmith 9
  • 10. 5 scripts 1. Appels système 2. Notifications RATP => nokogiri & ruby_gntp (growl) 3. Proxification (métaprogrammation) 4. Organiseur de séries 5. Cra client => nokogiri & mechanize 2013-03-08 L’heure de la pizza n’a jamais été aussi proche 10
  • 11. LouisKottmann/PrezRuby (git) RubyKoans Desining ruby APIs RailsTutorial Ruby-toolbox Thor & Rake SelectorGadget / GrowlForWindows 2013-03-08 Qui fait un caps’? 11

Hinweis der Redaktion

  1. Rails: David HeinemeeierHanssonTIOBE: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.htmlGIT de ruby: https://github.com/ruby/ruby  git clone git://github.com/ruby/ruby.git
  2. Ce qu’il est important de noter ici, c’est qu’on a pas besoin de créer de classes (script), ni de compiler (dynamique). Une simple ligne dans un fichier texte peut constituer un programme entier.Pas besoin de checker explicitement si le paramètre est nil, puisque par défaut seuls nil et false valent false (booleancoercion).
  3. Ruby est totalement libre. Il est non seulement gratuit, mais son utilisation, sa copie, sa modification et sa distribution sont également libres.toute donnée est un objet, y compris les types; toute fonction est une méthode; toute variable est une référence à un objet.Dynamic: pas compiléTuring complete: il peut simuler une machine de turingReflective: un programme en ruby peut modifier sa propre structure et son comportement au runtimeDucktyping: « si ca marche comme un canard, nage comme un canard et cancane comme un canard, alors j’appelle cet oiseau un canard »Cross-platform: certaines gem sont différentes ou non disponibles selon les OSBooleancoercion: tout est « true » sauf « false » et « nil »RubyGems: tout le monde peut participer
  4. Impossible de couvrir les spécificités, ceci est un cloud de mots clés relatifs à Ruby.L’audience en choisit quelques uns