#Polyglottisme, une autre manière de développer une application

Preview:

DESCRIPTION

#Polyglot, le buzz word dont tout le monde parle. On le voit partout: serveur d’application polyglot, IDE polyglot, outil polyglot, application polyglotte et même conférence polyglotte. Mais quels en sont les avantages et inconvénients? Pourquoi développer une application de manière polyglotte? Durant cette session je vous exposerai, au travers d’un retour d’expérience, pourquoi le polyglotisme est une autre manière intelligente de développer une application, tout de même vieille de 20 ans. Et qu’aujourd’hui plus que jamais vous devriez la prendre en considération lors de vos choix architecturaux pour être tournés vers l’avenir. Et nous nous permettrons aussi de rêver quelque peu.

Citation preview

#Polyglottisme: une autre manière dedévelopper une application

Thierry Wasylczenko

@twasyl

#Polyglottismeune autre manière de développer une application

3

Ce dont on va parler

• Le polyglottisme, c’est quoi?

• Quelques chiffres

• Ce qu’il faut en conclure

• Le polyglottisme dans tout ça?

• Les types de polyglottisme

• Les «générateurs», c’est polyglotte?

• Ils le font

• Ressources

4

Le polyglottisme, c'est quoi?

5

6

Moi, je code !

Quelques chiffres

8

~3/4

Consultation des sites webCo

nsul

tatio

n (%

)

81.62%

9.55% 8.83%

73.21%

14.58% 12.21%

Q4 2012 Q4 2013

Desktop Tablette Mobile0

20

40

60

80

100

SmartInsights

10

Developpement d'applications

Share of app dev

93%

83%

55%

Smartphone

Tablette

Desktop

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%

Statista

11

Ulisation des plateformes mobilesUt

ilisa

tion

(%)

Q1 2014

67%71%

68%75%

71%78%

74%

60%

49%

61%54%

59%

45%38%

50%

64%

49%

39%

58%62%

50%

21% 21%

29%22% 23%

33%

24%

Android iOS HTML5 mobile Windows Phone

Amérique du nord Amérique du sud Europe de l'ouest Europe de l'est Asie de l'est Asie du sud Afrique et Moyen‑Orient

0

20

40

60

80

100

SmartInsights

12

SaaS: utilisationPo

urce

ntag

e d'

utili

satio

n

17%

22%

40%

Jan 2011 Jan 2012 Jan 201315%

20%

25%

30%

35%

40%

45%

Statista

13

SaaS: revenusRe

venu

s en

bill

ions

$

10.75

13.46

16.22

19.82

23.72

27.94

32.8

2010 2011 2012 2013 2014 2015 20165

10

15

20

25

30

35

Statista

14

Que faut-il en conclure?

15

L'avenir c'est le

cloud?

On va coder sur

tablette?

Le fond d'écran à

la mode sera Win98?

Le polyglottisme dans tout ça?

19

Nouveau?

Pas vraiment

• > 30 ans

• Emacs

• Coeur en C

• Extensions en Emacs Lisp

21

Mais pourquoi le

polyglottisme ?

La métaphore du batiment 23

Familier? 24

PER-SO-NNA-LI-

SA-TION

Pour les clients

• Avantages

• LI-BER-TE

• Sentiment de puissance

• Extensible

• Inconvénients

• Facilité indispensable

• Porte ouverte aux bugs !

26

Pour les développeurs

• Difficulté de conception

• API

• Code «borné» / sécurisé

• Connaissances ++

• Compétences ++

27

De ça

Application

28

A ça

Application

Composant 1Composant 2

Composant 3

Composant 4

Composant 5Composant 6

29

Mieux !

Application

Composants

utiliseComposant 1 Composant 2

Composant 3 Composant 4

Composant 5

30

Il est où le

polyglottisme ?

Partout !

Les types de polyglottisme

33

Dev polyglotte

Nashorn

• Moteur JavaScript en ... Java

• Créer des applications «natives» en JS

• Communication JavaScript – Java

35

• JRuby

• IronRuby

Ruby 36

Applications web

• Vue

• (Pseudo) HTML + JS

• Controlleur

• Java

• .NET

• C’est déjà du polyglottisme !

37

Choisir la bonne

techno?

Non !

• Pas de meilleure techno

• Des besoins

Vous vous souvenez des

composants ?

39

Persistance

polyglotte

SGBD

• Données relationnelles "plates"

• Liaisons 1-1

• Liaisons n-n ?

• Ca se complique ... et c’est moche

• Schémas peu évolutifs

• Apparations d’outils comme FlyWay

41

• Qui sont les amis de mes amis qui vivent

en Suisse ?

• Données très évolutives

• Plusieurs types

• Graphe

• Clé/Valeur

• Document

NoSQL 42

Les deux

• Ont des forces

• Ont des faiblesses

• Ont des cas d’utilisation

• Pas de mauvais choix

43

Bon + Bon =

Meilleur

Déploiement

polyglotte

Plateformes cibles

• Ordinateurs

• Windows, Mac, Linux

• Tablettes

• Apple, Android, Microsoft

• Mobile

• iOS, Android, Windows Phone

46

Laquelle choisir?

• La «meilleure» ?

• La plus à la mode ?

• Et les utilisateurs, vous y pensez ?

47

PaaS

Les "générateurs", c'est polyglotte?

53

Oui et non

Ils le font

58

Ressources

65

Ressources

• Articles

• Why you should hire a Polyglot Programmer

• Polyglot programming

• Librairies / Outils

• DukeScript: http://dukescript.com/

• RoboVM: http://www.robovm.com/

• Xamarin: http://xamarin.com/

• Conférence

• Polyglot Unconference: http://www.polyglotconf.com/

66

67

Recommended