Article écrit par Nicolas C et Pierre.
Les 19 et 20 octobre 2023, un événement incontournable pour les développeuses et développeurs s’est déroulé à la Cité des Congrès de Nantes : le DevFest de Nantes. Si vous n’avez pas eu l’opportunité d’y assister ou si vous êtes tout simplement curieux de découvrir les sujets qui ont marqué cette édition, vous êtes au bon endroit.
Avec plus de 71 conférences au programme, il est impossible de tout couvrir en détail. Cependant, parmi tous ces sujets passionnants, nous en avons sélectionné trois auxquels nous avons eu la chance d’assister. Restez ici pour découvrir un résumé approfondi de ces conférences !
The Ethics of Generative AI
Cette conférence présentée par Jen Looper rentre dans le vif du sujet à propos des intelligences artificielles (IA). Aujourd’hui, il existe une IA pour tout : le site https://theresanaiforthat.com/ permet même de rechercher celle qui pourrait vous intéresser.
Mais quels effets l’utilisation des IAs peut avoir sur notre quotidien ? Elles fournissent une réponse immédiate à nos questions, besoins, l’envers de la médaille pouvant être une certaine perte de confiance ou de créativité chez ses utilisateurs : à quoi bon créer ou s’investir dans une problématique si une IA peut le faire à notre place ?
C’est ce genre de débat que propose Jen Looper. Elle revient également sur la façon dont les IAs sont entrainées, via les Large Language Models (LLM). En très résumé, les IAs s’améliorent en consultant une quantité astronomique de données, de tout type : texte, images, vidéos, discours… Elles peuvent même continuer à s’améliorer en se basant sur ce qu’on peut lui demander, dire. Cependant, la base de connaissances des IAs reste limitée, l’intégralité de la culture de l’être humain n’étant pas numérisée.
Il est donc possible de leurrer une IA, comme Jen nous le démontre en demandant à l’une d’entre elles de conjuguer le verbe chuchotter, volontairement mal orthographié, afin de voir sa réponse. Celle-ci nous répond avec certitude la conjugaison du verbe mal orthographié. Et lorsqu’on lui demande si elle est sûre d’elle, elle confirme sa réponse. Ce n’est que lorsqu’on lui fait remarquer que chuchoter ne s’écrit qu’avec un seul “t” qu’elle reconnait son erreur.
Quelle doit donc être l’éthique d’une IA ? Doit-elle absolument répondre avec certitudes à toute question posée, risquant de transmettre de mauvaises informations ? Doit-elle conserver l’intégralité des questions qui lui sont posées, et l’ensemble des données qui peuvent lui être fournies ?
Aujourd’hui, certaines IA refuseront d’uploader des fichiers, ou de répondre à certaines questions. En europe, nous avons tous entendu parler du RGPD (Règlement Général sur la Protection des Données), et du droit à l’oubli. Comment les IAs peuvent s’adapter à ces règles ?
Actuellement, chaque société propose sa propre solution, et met à disposition sa documentation. On peut supposer que dans un avenir proche, un standard se mette en place.
C’est en comparant l’évolution des IAs à une seconde révolution industrielle que Jen Looper conclut sa conférence : l’invention de l’impression a révolutionné la transmission de l’information, et elle reste convaincue que l’évolution des IAs ces prochaines années sera passionnante à suivre, et qu’elles feront parties intégrante de notre quotidien sans pour autant nous faire régresser.
Programmation concurrente et asynchrone : le point en Java 21
En septembre dernier, java 21 est sortie. Celle-ci embarque son lot de nouveauté, notamment les virtual threads et la programmation concurrente structurée (structured concurrency).
Ce sont ces 2 sujets que José Paumard prend le temps de nous présenter.
Project Loom, c’est le cœur de la conférence : comment java a revu sa copie sur la programmation concurrente, afin d’optimiser les performances de son langage, et l’utilisation de l’intégralité des ressources de la machine.
Cela passe par un nouvel objet, le VirtualThread. Là où la programmation réactive est nécessaire sur les versions plus anciennes de java pour faire de l’asynchrone, et optimiser l’utilisation de la mémoire et du processeur, le VirtualThread facilite cette configuration en l’intégrant directement dans le moteur java. Pour ce faire, l’intégralité du langage a été revu : une magnifique pull request de plus d’une centaine de milliers de lignes a été nécessaire pour ça, ce qui justifie pourquoi cette fonctionnalité a mis tant de temps à être disponible.
Si l’on tente de résumer en quelques phrases le message véhiculé par José Paumard, on pourrait dire qu’il faut oublier la programmation réactive et les lambdas en java 21, pour ne passer que par du code bloquant, et une écriture plus classique à ce qu’on peut faire. Cela facilite aussi la maintenance du code, la programmation impérative étant plus simple à comprendre que son homologue réactif. L’écriture de tests unitaires devient également possible.
Si vous souhaitez en apprendre davantage, je ne peux que vous rediriger vers ces quelques liens qui présentent l’intégralité du sujet :
SwiftUI vs Jetpack Compose par un Ingénieur Android
Dans cette conférence, Gérard Paligot, Staff Software Engineer au sein de Decathlon mais également GDE sur Android (donc Jetpack Compose) propose un duel sous forme de combat Street Fighter avec d’un côté : Jetpack Compose, le framework Kotlin développé par Google et Jetbrains qui permet de développer des applications multiplateformes, et de l’autre : SwiftUI, qui, comme son nom l’indique est un framework Swift et par conséquent dédié uniquement à l’environnement d’Apple.
Au fur et à mesure du combat les différents avantages de l’un ou de l’autre vont se faire face (en gardant toujours Jetpack Compose comme grand favori bien évidemment !). En passant par la syntaxe bien plus succincte sur SwiftUI et proposant une mise en forme automatique, qui par la même occasion montre que Jetpack Compose laisse bien plus de libertés sur le Layout, puis par les fonctionnalités de Preview du code, plus poussées au premier abord sur SwiftUI mais qui au final de par leurs paramètres plus variés et la possibilité de les écrire dans le code permettent une fois de plus à Jetpack Compose de garder l’avantage. Viens ensuite le plus gros duel : la personnalisation. Côté SwiftUI il n’est pas voulu que les applications sortent du cadre graphique mis en place par Apple alors que côté Jetpack Compose il est aisé de modifier chaque composant pour le parfaire à son usage, chose que Gérard Paligot appuie en se basant sur l’intégration de Vitamin le design system de Décathlon.
En conclusion de ce rude combat, Gérard Paligot propose l’ouverture suivante, pourquoi ne pas utiliser les avantages de l’un et de l’autre combiné dans une seule et même application en utilisant une couche logique partagée pour une application écrite sur les deux Framework à la fois ? Chose qu’il a effectué dans l’application du GDG Lille : conference4hall.
Conclusion
Comme d’habitude, le DevFest de Nantes nous a offert une opportunité enrichissante grâce à ses nombreuses conférences et codelabs, permettant ainsi une immersion directe dans les frameworks présentés.
L’organisation était, une fois de plus, à la hauteur, avec un thème bien choisi et reflété dans toute la décoration de la Cité des Congrès, centré sur le cinéma.
Nous attendons avec impatience de revenir l’année prochaine et pourquoi pas nous engager davantage !
Sources :
Github conference4hall : https://github.com/GerardPaligot/conferences4hall
Documentation SwiftUI : SwiftUI Overview – Xcode – Apple Developer
Documentation Jetpack Compose : Kit de développement d’applications Jetpack Compose – Développeurs Android
Slides de la conférence : https://speakerdeck.com/gerardpaligot/swiftui-vs-jetpack-compose-by-an-android-engineer?slide=10