#polyglottisme, une autre manière de développer une application
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.TRANSCRIPT
#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