SlideShare une entreprise Scribd logo
1  sur  92
.Net pour le développeur Java :
  une source d'inspiration ?
          Cyrille Martraire @cyriux
           Rui Carvalho @rhwy
C’est vendredi soir
http://www.futura-sciences.com/fr/doc/t/medecine-1/d/et-bailler-de-plaisir_571/c3/221/p3/
Au menu
                                    Au menu



                  • Le point sur .Net
                  • Ce quimanque à Java Java
                  Ce   qui manque à

                  • Du fun !
                Le point sur .Net


http://blog.gaborit-d.com/17-parodies-fun-de-la-situation-room/
Au menu




                   Ce qui manque à Java

                Le point sur .Net


http://blog.gaborit-d.com/17-parodies-fun-de-la-situation-room/
Rui - @rhwy
•   Développeur, architecte, blogueur, prof

•   indépendant chez ArtOfNet

•   Dans le web et technos microsoft depuis près de 15 ans

•   Spécialiste Asp.Net Mvc, Sql Server et Speaker au Techdays

•   Animateur dans la communauté .Net ALT.NET Paris

•   Passionné de dev, OSS, web, agilité, architectures

•   Veut devenir maitre artisan du logiciel quand il sera grand
Cyrille - @cyriux
•   Ingénieur généraliste ENSTA à Brest

•   Développeur depuis les startups en 2000, et en finance depuis

•   Fondateur de la communauté Software Craftsmanship Paris

•   Co-fondateur et directeur technique d’Arolla

•   Passionné de développement, DDD, TDD, BDD, specs agiles…

•   Veut devenir maitre artisan du logiciel quand il sera grand
.Net pour moi au départ…
http://www.freeimageslive.co.uk/free_stock_image/bsodbluescreen6927jpg
"La Guerre des Voisins"
Once
upon
 a
Time
 ...
1996 - Java Applets (cool)
1996 – Active X (cool?)
CGI      Perl




(sub{s,^(.*)$,$1+//,e for@_})->($A)
1995 – ASP / IIS
~ 1999 JSP-J2EE
Reprenons le fil de l'histoire
         - next -
1996 JDK 1.0                  1998 JDK 1.2            2002 JDK 1.4

               1997 JDK 1.1            2000 JDK 1.3




                                                      2002 .Net 1.0
2013? JDK 8.0

2002 JDK 1.4                 2006 JDK 6.0

                2004 JDK 5.0                                      2011 JDK 7.0




          2003 .Net 1.1          2005 .Net 3.0           2010 .Net 4.0
2002 .Net 1.0
                          2005 .Net 2.0          2007 .Net 3.5            2012 .Net 4.5
Oui mais concrètement?
.Net : une réplique de Java ?
•
    'instanceof' is called 'is'
•
    {}
•
    Majuscules !
Naturellement polyglotte !
Séduire les fans de C++
Séduire les fans de C++
             •   exe .dll autour du bytecode

             •   arithmétique de pointeurs

             •   unsafe, fixed : mémoire à la main

             •   conditional compilation
Fonctionnalités
Java Vs. C#/.Net
Razor                                                   3rd-party Java libs & APIs
                     Extension methods
        LINQ                                          Pure Java →
F#                 Lambdas                            Portable            Open-Source
     Operator overloading
                                                                      Mieux en Java
                                        Array ≈ Collection

Jaloux de C#                                                  Java enum as class
                    Lifted “?” syntax      delegate
Dynamics                                                     Partial class
                  Expression trees
                                                                  Conditional Compilation
         Reified generics                Generator
                                         (yield)
Votre. feature Net préférée ?
Votre feature Net préférée ?
              • Syntax Sugars
              • Extension Methods
              • Lambdas
              • Linq

              • (Razor)
Prenons un exemple
Old School to LINQ


           Voyage dans les bonnes choses de C#
Itérators                     Auto
            lambdas         Properties

            Dynamics        Linq
  var
                       Extension
  Anonymous            Methods
    objects
SOLID? DRY?
    refactor
Ce qui nous amène à LINQ
Derniers Points
Dynamics

!= variant         != dynamic proxy

= Type spécial     = proxy contrat infini
extensible           + méthodes d'accès
Mais aussi
Razor - syntaxe hybride HTML/C#

    @foreach(var item in Model) {

              int next = item.Count+1;    Ca poutre !

              <h2>@item.Title</h2>
              <a href="#@next">Next</a>
    }

    <h1>Ma collection</h1>
Play 2 - copiteur en Scala

@(customer: Customer, orders: List[Order])
<h1>Welcome @customer.name!</h1><ul>
@for(order <- orders) {
 <li>@order.getTitle()</li>} </ul>
Communautés
Plus c’est social mieux c’est
http://monodevelop.com/Screenshots
http://monodevelop.com/Screenshots
http://bourse-planete.com/leffet-moutonnier/
http://blog.zap2it.com/pop2it/2012/02/sacha-baron-cohen-aka-the-dictator-will-attend-the-oscars.html
http://bourse-planete.com/leffet-moutonnier/
http://blog.zap2it.com/pop2it/2012/02/sacha-baron-cohen-aka-the-dictator-will-attend-the-oscars.html
Pour Finir
Quelques Messages
JVM != JAVA
Enterprise
  Wars
    ...
http://www.designsontalent.com/blog/bid/50260/10-Tips-for-Reinventing-Talent-Acquisition
C# : le langage idéal ?
Questions




http://www.actone.net/methodes/poser-des-questions/

Contenu connexe

Similaire à .Net pour le développeur Java - une source d'inspiration?

Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Alexandre Morgaut
 
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Julien Jakubowski
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Camille Roux
 
Scala pour le Data Eng
Scala pour le Data EngScala pour le Data Eng
Scala pour le Data Engunivalence
 
Scala pour le Data Engineering par Jonathan Winandy
Scala pour le Data Engineering par Jonathan WinandyScala pour le Data Engineering par Jonathan Winandy
Scala pour le Data Engineering par Jonathan WinandyParis Data Engineers !
 
Objet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonomeObjet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonomeformationobjetdirect
 
Etat de l'art Server-Side JavaScript - JS Geneve
Etat de l'art Server-Side JavaScript - JS GeneveEtat de l'art Server-Side JavaScript - JS Geneve
Etat de l'art Server-Side JavaScript - JS GeneveAlexandre Morgaut
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013Romain Linsolas
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Jean-Michel Doudoux
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !matparisot
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Mathieu Parisot
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 

Similaire à .Net pour le développeur Java - une source d'inspiration? (20)

gradle_lavajug
gradle_lavajuggradle_lavajug
gradle_lavajug
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012
 
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
 
gradle_nantesjug
gradle_nantesjuggradle_nantesjug
gradle_nantesjug
 
Gradle_LyonJUG
Gradle_LyonJUGGradle_LyonJUG
Gradle_LyonJUG
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
 
Scala pour le Data Eng
Scala pour le Data EngScala pour le Data Eng
Scala pour le Data Eng
 
Scala pour le Data Engineering par Jonathan Winandy
Scala pour le Data Engineering par Jonathan WinandyScala pour le Data Engineering par Jonathan Winandy
Scala pour le Data Engineering par Jonathan Winandy
 
Objet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonomeObjet Direct Formation Java pour devenir autonome
Objet Direct Formation Java pour devenir autonome
 
Gradle_ToursJUG
Gradle_ToursJUGGradle_ToursJUG
Gradle_ToursJUG
 
Etat de l'art Server-Side JavaScript - JS Geneve
Etat de l'art Server-Side JavaScript - JS GeneveEtat de l'art Server-Side JavaScript - JS Geneve
Etat de l'art Server-Side JavaScript - JS Geneve
 
Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux Alphorm.com Formation Java, les fondamentaux
Alphorm.com Formation Java, les fondamentaux
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10Voxxeddays lux 2018 apres java 8, java 9 et 10
Voxxeddays lux 2018 apres java 8, java 9 et 10
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
Javavs net
Javavs netJavavs net
Javavs net
 

Plus de Rui Carvalho

Agile Feedback Loops
Agile Feedback LoopsAgile Feedback Loops
Agile Feedback LoopsRui Carvalho
 
NewCrafts 2017 Conference Opening
NewCrafts 2017 Conference OpeningNewCrafts 2017 Conference Opening
NewCrafts 2017 Conference OpeningRui Carvalho
 
AltNet fr talks #2016.11 - news
AltNet fr talks #2016.11 - newsAltNet fr talks #2016.11 - news
AltNet fr talks #2016.11 - newsRui Carvalho
 
Patience, the art of taking his time
Patience, the art of taking his timePatience, the art of taking his time
Patience, the art of taking his timeRui Carvalho
 
Clean up your code with C#6
Clean up your code with C#6Clean up your code with C#6
Clean up your code with C#6Rui Carvalho
 
Feedback Loops v4x3 Lightening
Feedback Loops v4x3 Lightening Feedback Loops v4x3 Lightening
Feedback Loops v4x3 Lightening Rui Carvalho
 
Feedback Loops...to infinity, and beyond!
Feedback Loops...to infinity, and beyond!Feedback Loops...to infinity, and beyond!
Feedback Loops...to infinity, and beyond!Rui Carvalho
 
Simplicity 2.0 - Get the power back
Simplicity 2.0 - Get the power backSimplicity 2.0 - Get the power back
Simplicity 2.0 - Get the power backRui Carvalho
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)Rui Carvalho
 

Plus de Rui Carvalho (12)

Agile Feedback Loops
Agile Feedback LoopsAgile Feedback Loops
Agile Feedback Loops
 
NewCrafts 2017 Conference Opening
NewCrafts 2017 Conference OpeningNewCrafts 2017 Conference Opening
NewCrafts 2017 Conference Opening
 
AltNet fr talks #2016.11 - news
AltNet fr talks #2016.11 - newsAltNet fr talks #2016.11 - news
AltNet fr talks #2016.11 - news
 
Patience, the art of taking his time
Patience, the art of taking his timePatience, the art of taking his time
Patience, the art of taking his time
 
Code Cooking
Code Cooking Code Cooking
Code Cooking
 
Clean up your code with C#6
Clean up your code with C#6Clean up your code with C#6
Clean up your code with C#6
 
Feedback Loops v4x3 Lightening
Feedback Loops v4x3 Lightening Feedback Loops v4x3 Lightening
Feedback Loops v4x3 Lightening
 
Feedback Loops...to infinity, and beyond!
Feedback Loops...to infinity, and beyond!Feedback Loops...to infinity, and beyond!
Feedback Loops...to infinity, and beyond!
 
Simple Code
Simple CodeSimple Code
Simple Code
 
Simplicity 2.0 - Get the power back
Simplicity 2.0 - Get the power backSimplicity 2.0 - Get the power back
Simplicity 2.0 - Get the power back
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)
 
My Git workflow
My Git workflowMy Git workflow
My Git workflow
 

.Net pour le développeur Java - une source d'inspiration?