#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