Interview de Shai Almog et Chen Fishbein, créateurs du framework de développement d'applications mobiles multiplateforme Codename One. Deux anciens d'Oracle, ayant plus de 20 ans d'expérience en ingénierie logicielle. Chen Fishbein était déjà l'auteur de la célèbre bibliothèque d'interfaces graphiques LWUIT (en J2ME).
(25/09/2015)
Bonjour Shai Almog, bonjour Chen Fishbein, vous êtes les concepteurs de Codename One. Comment travaillez-vous ? Qui s'occupe de quoi ?
Nous travaillons en équipe depuis longtemps, bien avant de nous retrouver chez Sun. En fait, nous sommes des amis d'enfance et nous avons l'habitude de travailler ensemble.
Généralement, c'est Shai qui s'occupe du support et de l’administration tandis que Chen se concentre davantage sur les aspects techniques.
Comme c’est le cas avec la plupart des startups, tout le monde touche presque à tout et notre organisation est très souple. Par exemple, au début Shai faisait tous les webcasts et maintenant Steve en réalise aussi un certain nombre.
Codename One est un framework assez jeune, puisque sa première version bêta a été lancée publiquement en janvier 2012. Il a atteint très vite une grande maturité. Comment expliquez-vous cela ?
Il a été créé à partir d'un framework très robuste que nous avions développé chez Sun Microsystems. Ses racines remontent à 2006, lorsque Chen a démarré le projet sous-jacent.
Quand nous avons fondé Codename One, nous avions derrière nous des années de travaux d'infrastructure et toute l'expérience acquise chez Sun Microsystems. Cela nous a permis de lancer une version bêta qui a été remarquablement fonctionnelle. Depuis, nous avons développé une grande communauté enthousiaste qui a vraiment contribué à la robustesse du produit.
Le fait d'avoir à compiler ses applications dans le Cloud surprend souvent les développeurs qui découvrent le framework. Pouvez-vous expliquer les raisons de ce choix ?
Lorsque nous avons commencé à travailler sur Codename One, nous avions une architecture très complexe qui permettait au plugin d’être utilisé à la fois en ligne et hors ligne. Le niveau de complexité était tel que nous avons dû réduire un grand nombre de fonctionnalités pour supporter l’utilisation ou la compilation hors ligne.
Après quelques nuits difficiles de bidouillage, nous avons fait le point et sommes arrivés à la conclusion que c'était "le seul moyen" de rendre le concept du Write Once Run Anywhere (WORA) possible sur les appareils mobiles.
"C'était le seul moyen de rendre le concept du WORA
possible sur les appareils mobiles"
La compilation offline (hors ligne) aurait exigé un Mac pour l’iOS, une machine Windows pour Windows Phone et aurait engendré d'énormes difficultés avec l'évolution des outils (par exemple, les mises à jour mineures de Xcode créent des ruptures). Le déploiement de nouvelles fonctionnalités aurait alors signifié la mise à jour du plug-in. En exemple, le support de Java 8 ou le support de nouveaux types d'appareils sont des choses que nous avons ajoutées avec peu d’efforts parce que nous pouvons facilement mettre à jour et maintenir les serveurs.
Quand nous parlons à nos clients de type entreprise, les serveurs de compilation sont un énorme avantage puisque la plupart des sociétés n’assignent pas de Macs aux développeurs et préfèrent une administration centralisée.
Comment voyez-vous l'arrivée de Dart/Sky dans le développement Android ? Codename One va-t-il l'intégrer ?
La faible adoption de Dart sur le web risque de se reproduire sur Android. D'une manière générale, Java demeure la Lingua Franca de la programmation moderne. Tout développeur diplômé de l'université le sait. C’est simple, puissant, performant et légèrement ennuyeux (dans le bon sens).
Steve Hannah a écrit un plug-in Mirah (un dialecte du langage Ruby) pour Codename One. Je pense que nous allons petit à petit supporter d'autres langages au fur et à mesure que nous avançons, mais pour le moment, c'est plus simple de se concentrer uniquement sur Java.
Qui aujourd'hui utilise Codename One ? Essentiellement des développeurs Java ?
Actuellement, nous nous concentrons uniquement sur les développeurs Java même si nous voyons des initiatives intéressantes de gens tels que ceux qui ont créé Codeapps.io.
La diversité dans la communauté est énorme. Nous avons des développeurs indépendants, des startups et des entreprises du Fortune 500, qui montrent la multiplicité de l'écosystème Java.
Pourriez-vous nous citer quelques beaux exemples d'applications développées avec Codename One ?
yHomework est tout à fait réussi et dans sa dernière version assez spectaculaire (elle était déjà étonnante avant). Elle peut résoudre des équations mathématiques très complexes et fournit étape par étape le processus de résolution. L'équipe derrière elle avait déjà un prototype en JavaScript avant de choisir Codename One pendant sa version bêta.
Leur principale motivation était de garder le code sécurisé puisque les applications JavaScript sont exposées à un vol de propriété intellectuelle alors qu’il est plus difficile de faire la même chose avec des applications natives Codename One.
Travel2gether est une application de voyage sociale très raffinée qui a été présentée dans le cadre d'une émission de voyage en Israël.
Pumpop a des millions de téléchargements et est une application de rencontres avec une interface assez plaisante.
"La meilleure part de Codename One
est celle que nous n'avons pas construite"
Comment voyez-vous l'avenir de Codename One ?
Il y a deux choses que nous avons récemment annoncées qui me rendent heureux. Elles sont toutes les deux révélatrices de l'avenir de Codename One et de son orientation future. La première est l'Assistant de génération de certificats iOS qui est déjà sorti et qui a révolutionné le développement. La signature et les certificats étaient les deux plus gros pièges pour les nouveaux développeurs et en une pierre deux coups, nous avons pu simplifier ça avec un assistant.
Le second est le nouveau GUI Builder destiné à remplacer l'actuel GUI Builder qui date de Sun Microsystems.
Ces deux outils sont importants parce qu'ils rendront le développement plus simple, plus facile et pratiquement infaillible. Ils sont également importants parce qu'ils sont construits avec Codename One tout en utilisant notre port desktop [NDLT : Codename One compile aussi des applications de bureau Windows et Mac avec le port desktop] !
Nous sommes effectivement à un stade où nous écrivons nos outils en utilisant nos propres codes, et c’est génial d'en être là.
Pour l'avenir, je prévois que nous allons continuer à mettre toujours plus l'accent sur la facilité du développement, sur de meilleurs outils et idéalement investir davantage dans le design d’interfaces.
Merci d'avoir répondu à mes questions. Souhaitez-vous ajouter quelque chose ?
Merci!
Je pense que la meilleure part de Codename One est celle que nous n'avons pas construite. La communauté rend Codename One vraiment incroyable et nous surprend constamment avec des utilisations innovantes et des contributions de grande qualité.
Merci à Eric Dodji Gbofu pour sa traduction
Voir aussi
> Fiche de présentation de Codename One
> Site officiel de Codename One
> Interview de Eric Dodji Gbofu, auteur du livre Codename One - Développer en Java pour iOS, Android, BlackBerry et Windows Phone