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

92
.Net pour le développeur Java : une source d'inspiration ? Cyrille Martraire @cyriux Rui Carvalho @rhwy

description

Pour se remettre dans le contexte, nous parlons ici de .Net présenté à une conférence Java. Nous allons revoir un peu d'historique des débuts pré-.Net et des inspirations mutuelles des deux environnements. Puis nous parlerons fonctionnalités à travers un exemple illustrant notamment les points essentiels de C# aujourd'hui avec les lambdas qui arriveront avec Java 8. Nous finirons enfin avec une partie communautaire.

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

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

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

Cyrille Martraire @cyriuxRui Carvalho @rhwy

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

C’est vendredi soirhttp://www.futura-sciences.com/fr/doc/t/medecine-1/d/et-bailler-de-plaisir_571/c3/221/p3/

Page 3: .Net pour le développeur Java - une source d'inspiration?
Page 4: .Net pour le développeur Java - une source d'inspiration?

Au menu

• Le point sur .Net

•Ce qui manque à Java

• Du fun !

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

Au menu

Ce qui manque à Java

Le point sur .Net

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

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

Au menu

Ce qui manque à Java

Le point sur .Net

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

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

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

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

Page 8: .Net pour le développeur Java - une source d'inspiration?
Page 9: .Net pour le développeur Java - une source d'inspiration?
Page 10: .Net pour le développeur Java - une source d'inspiration?
Page 11: .Net pour le développeur Java - une source d'inspiration?
Page 12: .Net pour le développeur Java - une source d'inspiration?

.Net pour moi au départ…

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

http://www.freeimageslive.co.uk/free_stock_image/bsodbluescreen6927jpg

Page 14: .Net pour le développeur Java - une source d'inspiration?
Page 15: .Net pour le développeur Java - une source d'inspiration?

"La Guerre des Voisins"

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

Onceupon

a Time

...

Page 17: .Net pour le développeur Java - une source d'inspiration?
Page 18: .Net pour le développeur Java - une source d'inspiration?

1996 - Java Applets (cool)

Page 19: .Net pour le développeur Java - une source d'inspiration?
Page 20: .Net pour le développeur Java - une source d'inspiration?

1996 – Active X (cool?)

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

(sub{s,^(.*)$,$1+//,e for@_})->($A)

CGI Perl

Page 22: .Net pour le développeur Java - une source d'inspiration?
Page 23: .Net pour le développeur Java - une source d'inspiration?

1995 – ASP / IIS

Page 24: .Net pour le développeur Java - une source d'inspiration?
Page 25: .Net pour le développeur Java - une source d'inspiration?

~ 1999 JSP-J2EE

Page 26: .Net pour le développeur Java - une source d'inspiration?
Page 27: .Net pour le développeur Java - une source d'inspiration?

Reprenons le fil de l'histoire- next -

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

1996 JDK 1.0

1997 JDK 1.1

1998 JDK 1.2

2000 JDK 1.3

2002 JDK 1.4

2002 .Net 1.0

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

2004 JDK 5.0

2002 JDK 1.4

2002 .Net 1.0

2003 .Net 1.1

2006 JDK 6.0

2005 .Net 2.0

2011 JDK 7.0

2005 .Net 3.0

2007 .Net 3.5

2010 .Net 4.0

2012 .Net 4.5

2013? JDK 8.0

Page 30: .Net pour le développeur Java - une source d'inspiration?
Page 31: .Net pour le développeur Java - une source d'inspiration?
Page 32: .Net pour le développeur Java - une source d'inspiration?

Oui mais concrètement?

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

.Net : une réplique de Java ?

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

• 'instanceof' is called 'is'• {}• Majuscules !

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

Naturellement polyglotte !

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

Séduire les fans de C++

Page 37: .Net pour le développeur Java - une source d'inspiration?
Page 38: .Net pour le développeur Java - une source d'inspiration?

Séduire les fans de C++

• exe .dll autour du bytecode

• arithmétique de pointeurs

• unsafe, fixed : mémoire à la main

• conditional compilation

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

Fonctionnalités

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

Java Vs. C#/.Net

Jaloux de C#

Mieux en Java

LINQRazor

Lambdas

Extension methods

F#

Dynamics Expression trees

Reified generics

Operator overloading

Lifted “?” syntax delegateJava enum as class

Array ≈ Collection

Partial class

Conditional CompilationGenerator (yield)

3rd-party Java libs & APIsPure Java → Portable Open-Source

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

Votre. feature Net préférée ?

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

Votre feature Net préférée ?•Syntax Sugars

•Extension Methods

• Lambdas

• Linq

• (Razor)

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

Prenons un exemple

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

Voyage dans les bonnes choses de C#

Old School to LINQ

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

Itérators

varLinq

Extension MethodsAnonymous

objects

Dynamics

lambdas AutoProperties

Page 46: .Net pour le développeur Java - une source d'inspiration?
Page 47: .Net pour le développeur Java - une source d'inspiration?
Page 48: .Net pour le développeur Java - une source d'inspiration?
Page 49: .Net pour le développeur Java - une source d'inspiration?
Page 50: .Net pour le développeur Java - une source d'inspiration?
Page 51: .Net pour le développeur Java - une source d'inspiration?
Page 52: .Net pour le développeur Java - une source d'inspiration?
Page 53: .Net pour le développeur Java - une source d'inspiration?
Page 54: .Net pour le développeur Java - une source d'inspiration?
Page 55: .Net pour le développeur Java - une source d'inspiration?
Page 56: .Net pour le développeur Java - une source d'inspiration?

SOLID? DRY?refactor

Page 57: .Net pour le développeur Java - une source d'inspiration?
Page 58: .Net pour le développeur Java - une source d'inspiration?
Page 59: .Net pour le développeur Java - une source d'inspiration?
Page 60: .Net pour le développeur Java - une source d'inspiration?
Page 61: .Net pour le développeur Java - une source d'inspiration?
Page 62: .Net pour le développeur Java - une source d'inspiration?
Page 63: .Net pour le développeur Java - une source d'inspiration?
Page 64: .Net pour le développeur Java - une source d'inspiration?
Page 65: .Net pour le développeur Java - une source d'inspiration?
Page 66: .Net pour le développeur Java - une source d'inspiration?

Ce qui nous amène à LINQ

Page 67: .Net pour le développeur Java - une source d'inspiration?
Page 68: .Net pour le développeur Java - une source d'inspiration?
Page 69: .Net pour le développeur Java - une source d'inspiration?

Derniers Points

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

Dynamics

!= variant

= Type spécial extensible

!= dynamic proxy

= proxy contrat infini + méthodes d'accès

Page 71: .Net pour le développeur Java - une source d'inspiration?
Page 72: .Net pour le développeur Java - une source d'inspiration?

Mais aussi

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

Razor - syntaxe hybride HTML/C#

@foreach(var item in Model) {

int next = item.Count+1;

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

}

<h1>Ma collection</h1>

Ca poutre !

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

Play 2 - copiteur en Scala

@(customer: Customer, orders: List[Order]) <h1>Welcome @customer.name!</h1><ul> @for(order <- orders) { <li>@order.getTitle()</li>} </ul>

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

Communautés

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

Plus c’est social mieux c’est

Page 77: .Net pour le développeur Java - une source d'inspiration?
Page 78: .Net pour le développeur Java - une source d'inspiration?
Page 79: .Net pour le développeur Java - une source d'inspiration?

http://monodevelop.com/Screenshots

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

http://monodevelop.com/Screenshots

Page 81: .Net pour le développeur Java - une source d'inspiration?
Page 82: .Net pour le développeur Java - une source d'inspiration?
Page 83: .Net pour le développeur Java - une source d'inspiration?
Page 84: .Net pour le développeur Java - une source d'inspiration?

http://blog.zap2it.com/pop2it/2012/02/sacha-baron-cohen-aka-the-dictator-will-attend-the-oscars.htmlhttp://bourse-planete.com/leffet-moutonnier/

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

http://blog.zap2it.com/pop2it/2012/02/sacha-baron-cohen-aka-the-dictator-will-attend-the-oscars.htmlhttp://bourse-planete.com/leffet-moutonnier/

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

Pour FinirQuelques Messages

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

JVM != JAVA

Page 88: .Net pour le développeur Java - une source d'inspiration?
Page 89: .Net pour le développeur Java - une source d'inspiration?

Enterprise Wars

...

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

http://www.designsontalent.com/blog/bid/50260/10-Tips-for-Reinventing-Talent-Acquisition

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

C# : le langage idéal ?

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

Questions

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