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

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

  • Upload
    twasyl

  • View
    99

  • Download
    1

Embed Size (px)

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

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

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

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

Thierry Wasylczenko

@twasyl

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

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

3

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

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

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

Le polyglottisme, c'est quoi?

5

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

6

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

Moi, je code !

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

Quelques chiffres

8

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

~3/4

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

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

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

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

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

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

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

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

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

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

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

Que faut-il en conclure?

15

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

L'avenir c'est le

cloud?

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

On va coder sur

tablette?

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

Le fond d'écran à

la mode sera Win98?

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

Le polyglottisme dans tout ça?

19

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

Nouveau?

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

Pas vraiment

• > 30 ans

• Emacs

• Coeur en C

• Extensions en Emacs Lisp

21

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

Mais pourquoi le

polyglottisme ?

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

La métaphore du batiment 23

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

Familier? 24

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

PER-SO-NNA-LI-

SA-TION

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

Pour les clients

• Avantages

• LI-BER-TE

• Sentiment de puissance

• Extensible

• Inconvénients

• Facilité indispensable

• Porte ouverte aux bugs !

26

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

Pour les développeurs

• Difficulté de conception

• API

• Code «borné» / sécurisé

• Connaissances ++

• Compétences ++

27

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

De ça

Application

28

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

A ça

Application

Composant 1Composant 2

Composant 3

Composant 4

Composant 5Composant 6

29

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

Mieux !

Application

Composants

utiliseComposant 1 Composant 2

Composant 3 Composant 4

Composant 5

30

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

Il est où le

polyglottisme ?

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

Partout !

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

Les types de polyglottisme

33

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

Dev polyglotte

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

Nashorn

• Moteur JavaScript en ... Java

• Créer des applications «natives» en JS

• Communication JavaScript – Java

35

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

• JRuby

• IronRuby

Ruby 36

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

Applications web

• Vue

• (Pseudo) HTML + JS

• Controlleur

• Java

• .NET

• C’est déjà du polyglottisme !

37

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

Choisir la bonne

techno?

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

Non !

• Pas de meilleure techno

• Des besoins

Vous vous souvenez des

composants ?

39

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

Persistance

polyglotte

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

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

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

• Qui sont les amis de mes amis qui vivent

en Suisse ?

• Données très évolutives

• Plusieurs types

• Graphe

• Clé/Valeur

• Document

NoSQL 42

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

Les deux

• Ont des forces

• Ont des faiblesses

• Ont des cas d’utilisation

• Pas de mauvais choix

43

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

Bon + Bon =

Meilleur

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

Déploiement

polyglotte

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

Plateformes cibles

• Ordinateurs

• Windows, Mac, Linux

• Tablettes

• Apple, Android, Microsoft

• Mobile

• iOS, Android, Windows Phone

46

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

Laquelle choisir?

• La «meilleure» ?

• La plus à la mode ?

• Et les utilisateurs, vous y pensez ?

47

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

PaaS

Page 49: #Polyglottisme, une autre manière de développer une application
Page 50: #Polyglottisme, une autre manière de développer une application
Page 51: #Polyglottisme, une autre manière de développer une application
Page 52: #Polyglottisme, une autre manière de développer une application
Page 53: #Polyglottisme, une autre manière de développer une application

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

53

Page 54: #Polyglottisme, une autre manière de développer une application
Page 55: #Polyglottisme, une autre manière de développer une application
Page 56: #Polyglottisme, une autre manière de développer une application
Page 57: #Polyglottisme, une autre manière de développer une application

Oui et non

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

Ils le font

58

Page 59: #Polyglottisme, une autre manière de développer une application
Page 60: #Polyglottisme, une autre manière de développer une application
Page 61: #Polyglottisme, une autre manière de développer une application
Page 62: #Polyglottisme, une autre manière de développer une application
Page 63: #Polyglottisme, une autre manière de développer une application
Page 64: #Polyglottisme, une autre manière de développer une application
Page 65: #Polyglottisme, une autre manière de développer une application

Ressources

65

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

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

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

67