La mécatronique : un domaine indispensable de l’industrie connectée

Posté le 23 mars 2021 par

Discipline omniprésente dans notre environnement, mais pourtant méconnue du grand public, la mécatronique s’appuie sur une alliance de compétences utilisée pour mettre de « l’intelligence » dans un produit mécanique afin de surveiller un système, d’envoyer des informations, ou de donner des alertes. Ce secteur est particulièrement porteur, puisque les besoins techniques et R&D en matière d’industrie connectée s’appuient sur cette discipline, encore trop peu représentée dans les formations d’ingénieurs en France. Ce serait même un grand nombre d’écoles d’ingénieurs qui auraient réorienté leurs spécialités de mécanique vers de la mécatronique pour répondre à ces besoins croissants.

Qu’est-ce que la mécatronique ?

La mécatronique est une technique industrielle consistant à utiliser simultanément et en symbiose la mécanique, l’électronique, l’informatique et l’automatisme, pour la conception et la fabrication de produits nouveaux, en vue d’augmenter et d’optimiser l’utilisation des fonctionnalités de nouveaux produits. C’est un mariage interdisciplinaire et une mise en commun de compétences et de fonctionnalités venant de différentes techniques.

La mécatronique permet d’accéder à des métiers très divers, aussi bien dans la technique, dans la production, dans la R&D, ou dans la vente. On retrouve ce domaine dans un très grand nombreux de segments industriels : l’automobile, l’agroalimentaire, l’industrie électronique, la robotique, etc. Elle se trouve partout là où il faut associer différents composants entre eux pour obtenir des fonctions complètes dans l’industrie connectée. Sans la mécatronique, l’industrie connectée et les systèmes intelligents n’existeraient tout simplement pas.

Un essor dans l’automobile et l’horlogerie

La mécatronique serait apparue initialement dans les années 70 au Japon, là où les premières industries à base d’automatisme, d’informatique et de mécanique auraient émergé. Il faudra attendre l’essor de l’automobile en Europe à la fin des années 90 et le début des années 2000 pour que la mécatronique s’accélère réellement. L’automobile aurait été en effet le principal moteur de l’essor de la mécatronique. Toutefois, d’autres secteurs tels que l’horlogerie auraient participé à ce développement.

En effet, la montre reste un excellent exemple de ce qu’est la mécatronique à la base. On y trouve une partie mécanique avec le système permettant de la porter, une partie électronique avec par exemple le système à quartz, et une partie informatique qui gère l’ensemble. De ce fait, on peut facilement constater que la mécatronique, ou la microtechnique, ou les systèmes embarqués, comme certaines régions préfèrent les appeler, restent globalement la même chose : la convergence et la symbiose multi-technologique propre à différents domaines tels que l’informatique, l’électronique, l’automatisme et la mécanique.

mécatronique-montre-quartz
Un système de montre à quartz

La mécatronique au coeur de multiples objets

Outre l’horlogerie, on retrouve la mécatronique dans de nombreuses situations diverses et multiples. En automobile, la mécatronique a permis la mise au point des correcteurs de trajectoires, d’aides et d’assistance au freinage et de nombreux systèmes purement mécatronique où l’on retrouve des intelligences apportées par le système. Ce type d’avancées technologiques améliore grandement la sécurité routière et contribue à réduire les accidents grâce aux systèmes intelligents. Le plus étonnant reste finalement que la mécatronique est une technologie qui se fait oublier du grand public, et qui est pratiquement invisible puisque personne ne sait réellement qu’elle est omniprésente et qu’elle est au coeur même de ces progrès technologiques.

La mécatronique apporte également son lot d’avancées et de progrès dans d’autres domaines, tels que la robotique de service, la cobotique (collaboration entre la robotique et l’Homme), les appareils connectés dans l’habitat, la domotique, les systèmes d’assitance à la personne etc. Les grandes éoliennes peuvent par exemple assurer une maintenance préventive grâce à la mécatronique. Certaines personnes utilisent des systèmes d’exosquelettes ou de cobots, pour soulager les tâches les plus fastidieuses pendant leur journée de travail.

exosquelette-mécatronique
Un système japonais d’exosquelette, dépourvu de moteur et de batterie, fonctionnant avec un gel et une pompe à air placée sous le talon

Créatrice de nouvelles sous-disciplines

La force de la mécatronique réside finalement dans son adaptabilité à jongler à la fois sur des applications relativement petites et des applications beaucoup plus grandes. Elle reste finalement proche des sciences telles que la physique et de la chime dans la mesure où c’est une maitrise de plusieurs technologies que l’on essaie d’assembler ensemble pour apporter de nouvelles fonctionnalités à des produits qui indépendamment, ne pourrait fonctionner.

Avec la mécatronique, on apporte de la valeur ajoutée ou de nouveaux services à des objets. Elle a de nombreux axes de développements dans plusieurs domaines et permet à de nouveaux secteurs d’émerger à chaque instant. La biomécatronique par exemple, repose sur le mimétisme ou le biomimétisme de la vie avec des outils mécatronique. Les araignées robotique en sont une utilisation possible. Ce sont des robots qui se faufilent dans des endroits très complexes.

L’utilisation de matériaux intelligents capables de réagir eux-mêmes à une sollicitation électronique permet de concevoir un mouvement similaire à un mouvement musculaire. Dans le médical, la prothèse intelligente se développe également et repose principalement sur des systèmes purement mécatronique.

mécatronique-prothese-main-intelligente
Un exemple de projet de prothèse main intelligente

Les enjeux et défis pour l’industrie 4.0

La mécatronique est en croissance exponentielle, mais il reste de nombreux défis à relever pour que ce domaine soit entièrement porteur de révolutions. Il faut savoir que faire converger les systèmes de conception assistés par ordinateur (CAO) en mécanique, en électricité de puissance, et en électronique n’est pas toujours simple. Très souvent, cette convergence est très difficile à maîtriser et à appréhender dans certains projets.

L’enjeu est aussi de parvenir à développer des capteurs autonomes communicants, qui sont indépendants et qui peuvent prendre leur énergie dans le milieu ambiant, et réussir à envoyer l’information traitée vers un actionneur qui se trouve dans le système mécatronique. Enfin, il est nécessaire que l’intégration et la capacité d’intégration des produits se réalisent dans des produits plus compacts sans pour autant que les éléments n’interfèrent entre eux.

Dans le contexte de l’industrie 4.0, l’enjeu principal pour la mécatronique est de mieux analyser les processus de fabrication, et donc d’améliorer la rentabilité dans le cadre d’une production. Cela permet alors à l’industrie de dégager des moyens financiers pour continuer à investir dans la transformation progressive de l’usine en usine du futur, entièrement intelligente et connectée. Cette analyse fine et cette recherche de rentabilité sont très souvent confiées aux ingénieurs R&D, mais également aux ingénieurs mécatronique.

Quels métiers sont liés à la mécatronique ?

Il existe beaucoup de métiers liés à la mécatronique et certains sont même créés au fur et mesure que l’industrie 4.0 se développe. En associant de nouvelles technologies entre elles, la mécatronique génère de nouveaux enjeux créant ainsi des métiers spécifiques. Il existe un besoin constant de mécatronicien sur le marché du travail et plus précisément d’ingénieurs mécatronique spécialisés dans les domaines suivants :

  • la R&D
  • la production
  • le développement
  • l’industrialisation des composants
  • les ventes
  • le marketing

Les postes recherchés sont multiples et concentrent généralement les :

  • dessinateurs et constructures industriels
  • ingénieur mécatronique
  • laborants en physique
  • ingénieur R&D
  • polymécaniciens
  • autmaticiens
  • ingénieur en bureau d’études
  • électroniciens
  • polymécaniciens
  • ingénieur d’applications
  • mécaniciens de production
  • etc

L’accès au métier d’Ingénieur Mécatronique

Le métier de mécatronicien n’est pas toujours employé, tant les appellations de métiers liés à la discipline sont multiples. En tout cas, il est nécessaire pour prétendre à des postes d’ingénieur en bureaux d’études ou ingénieur en R&D, de réaliser des études d’ingénieurs ou des études de longue durée issue d’un cursus de 3 à 5 ans après le Bac. Le plus souvent, la mécatronique est une spécialité proposée par les écoles d’ingénieurs ou une dominante du cursus choisie. Des métiers de chefs de projets sont par exemple accessibles après une licence.

Un exemple de projet étudiant mécatronique d’un robot hexapode à l’école YNOV Bordeaux

En termes de qualités, l’ingénieur doit avoir une grande ouverture d’esprit pour mobiliser des équipes issues de discipline diverse et les fédérer autour d’un projet commun. Il convient bien entendu de maîtriser de solides compétences en mécanique, en électronique, en informatique et en automatisme. Bien entendu, l’ingénieur mécatronique a forcément un domaine qu’il affectionne plus qu’un autre, mais c’est surtout la capacité à joindre toutes ses disciplines qui fait la différence. Une maitrise des logiciels de CAO/DAO est attendue, au même titre qu’un anglais technique.

Un nombre croissant de jeunes s’intéressent à la mécatronique, même si la discipline reste encore relativement discrète auprès du grand public. Elle est encore une discipline jeune, souvent qualifiée comme étant une évolution de la mécanique traditionnelle qui souffre parfois d’une image un peu négative. Elle est encore trop souvent associée à la métallurgie ou à la mécanique automobile, même si l’électronique et l’intelligence des systèmes tendent progressivement à faire changer les choses.

Les favicons : une menace possible pour la vie privée des utilisateurs

Posté le 16 mars 2021 par

Des chercheurs de l’Université de l’Illinois à Chicago ont récemment présenté leur étude sur la découverte d’un tout nouveau système de tracking qui fonctionne même si vous videz votre cache ou passez en mode incognito sur votre navigateur web. Ce serait même au moins quatre des principaux navigateurs web qui seraient touchés par ce système de tracking. Cette technique s’appuie sur l’utilisation des favicons, ces petites icônes que les sites Web affichent dans les onglets du navigateur et les listes de signets des utilisateurs.

Les favicons, petites images pas vraiment anodines pour la vie privée

favicons-imgDepuis quelques années, beaucoup de sujets ont fait surface sur la vie privée des utilisateurs sur le Web, et un nombre croissant de solutions open source ont vu le jour pour que chaque utilisateur puisse se protéger contre le tracking et les autres menaces du Web. Il existe notamment de nombreuses extensions anti-pistage de navigateurs comme uBlock ou Privacy Badger par exemple. Chaque utilisateur peut également activer une session de navigation privée ou effacer ses cookies.

Pourtant, il existe aujourd’hui une méthode des plus originales pour que les sites web déjouent ces mesures. En apparence tout à fait anodine, l’étude indique que la plupart des navigateurs mettent les images en cache dans un emplacement distinct de ceux utilisés pour stocker les données du site, l’historique de navigation et les cookies. Les sites web peuvent abuser de cet arrangement en chargeant une série de favicons sur les navigateurs des visiteurs qui les identifient de manière unique sur une longue période.

« Dans l’ensemble, alors que les favicons ont longtemps été considérés comme une simple ressource décorative prise en charge par les navigateurs pour faciliter l’image de marque des sites Web, notre recherche démontre qu’ils introduisent un puissant vecteur de suivi qui représente une menace importante pour la vie privée des utilisateurs », écrivent les chercheurs.

« Le flux d’attaque peut être facilement mis en œuvre par n’importe quel site Web, sans qu’il soit nécessaire d’obtenir l’interaction ou le consentement de l’utilisateur, et fonctionne même lorsque des extensions anti-pistage populaires sont déployées. Pour aggraver les choses, le comportement de mise en cache idiosyncrasique des navigateurs modernes, prête une propriété particulièrement flagrante à notre attaque car les ressources dans le cache du favicon sont utilisées même lors de la navigation en mode incognito en raison de pratiques d’isolation incorrectes dans tous les principaux navigateurs. »

Les sites web cherchent à identifier les navigateurs des visiteurs et plus encore

Ce tracking via les favicons fonctionnerait sous Chrome, Safari, Edge. Le navigateur Brave aurait développé une contre-mesure efficace après avoir reçu un rapport privé des chercheurs. Firefox serait également sensible à cette technique, mais un bug empêche l’attaque de fonctionner pour le moment.

Pour aller plus en détail, les favicons fournissent aux utilisateurs une petite icône qui peut être unique pour chaque domaine ou sous-domaine sur Internet. Les sites web les utilisent pour aider les utilisateurs à identifier plus facilement les pages qui sont actuellement ouvertes dans les onglets du navigateur ou qui sont stockées dans des listes de signets.

Les navigateurs enregistrent les icônes dans un cache afin de ne pas avoir à les demander sans cesse. Ce cache n’est pas vidé lorsque les utilisateurs effacent le cache ou les cookies de leur navigateur, ou lorsqu’ils passent en mode de navigation privée. Un site web peut exploiter ce comportement en stockant une combinaison spécifique de favicons lorsque les utilisateurs le visitent pour la première fois, puis en vérifiant ces images lorsque les utilisateurs revisitent le site, ce qui permet au site web d’identifier le navigateur même lorsque les utilisateurs ont pris des mesures actives pour empêcher le suivi.

Le suivi des navigateurs est une préoccupation depuis l’avènement d’internet dans les années 1990. Dès qu’il est devenu facile pour les utilisateurs d’effacer les cookies de leur navigateur, les sites web ont imaginé d’autres moyens d’identifier les navigateurs des visiteurs.

L’une de ces méthodes est connue sous le nom de « device fingerprinting », un processus qui collecte la taille de l’écran, la liste des polices disponibles, les versions des logiciels et d’autres propriétés de l’ordinateur du visiteur pour créer un profil souvent unique à cette machine. Une étude de 2013 a révélé que 1,5 % des sites les plus populaires au monde utilisaient cette technique.

Les favicons font passer discrètement les visiteurs par une série de sous-domaine

Les sites Web peuvent exploiter ce nouveau canal des favicons en faisant passer les visiteurs par une série de sous-domaines, chacun ayant sa propre favicon, avant de les amener à la page demandée. Le nombre de redirections nécessaires varie en fonction du nombre de visiteurs uniques d’un site. Pour pouvoir suivre 4,5 milliards de navigateurs uniques, un site Web aurait besoin de 32 redirections. Cela ajouterait environ 2 secondes au temps nécessaire au chargement de la page finale. Avec des ajustements, les sites Web peuvent réduire ce délai.

L’article l’explique de la manière suivante :

« En exploitant toutes ces propriétés, nous démontrons un nouveau mécanisme de suivi persistant qui permet aux sites Web de réidentifier les utilisateurs au fil des visites, même s’ils sont en mode incognito ou ont effacé les données du navigateur côté client.

Plus précisément, les sites web peuvent créer et stocker un identifiant de navigateur unique par le biais d’une combinaison unique d’entrées dans le cache du favicon. Pour être plus précis, ce suivi peut être facilement effectué par tout site web en redirigeant l’utilisateur en conséquence à travers une série de sous-domaines. Ces sous-domaines servent des favicons différents et, par conséquent, créent leurs propres entrées dans le Favicon-Cache.

Par conséquent, un ensemble de N-sous-domaines peut être utilisé pour créer un identifiant de N bits, qui est unique pour chaque navigateur. Comme l’attaquant contrôle le site web, il peut forcer le navigateur à visiter des sous-domaines sans aucune interaction avec l’utilisateur. »

Les chercheurs à l’origine de ces résultats sont : Konstantinos Solomos, John Kristoff, Chris Kanich et Jason Polakis, tous de l’Université de l’Illinois à Chicago. Ils ont présenté leurs recherches le 22 février 2021 au symposium du SNSD sous le titre « Tales of Favicons and Caches: Persistent Tracking in Modern Browsers« 

Un porte-parole de Google a déclaré que la société était au courant de ces recherches et qu’elle travaillait sur un correctif. Un représentant d’Apple, quant à lui, a déclaré que l’entreprise examinait les résultats. Jusqu’à ce que des correctifs soient disponibles, les personnes qui souhaitent se protéger doivent chercher comment désactiver l’utilisation des favicons sur leur navigateur préféré.

Source (traduction) : Arstechnica.com

La cobotique : quand les humains et les robots collaborent

Posté le 16 mars 2021 par

La cobotique se traduit par l’ensemble des techniques relatives aux robots collaboratifs, également appelés les cobots. Créés et vendus pour la première fois en 2008 par la société Universal Robots, ils prennent le plus souvent la forme de bras robotisés petits, légers, et extrêmement flexibles. Ils sont capables de réaliser une multitude de tâches afin d’aider les opérateurs dans leurs travaux les plus fastidieux et pénibles. Les robots collaboratifs n’ont pas vocation à remplacer le travail d’un opérateur, mais plutôt de l’accompagner dans ses travaux les plus laborieux.

Ils excellent en combinant le savoir-faire et le pouvoir décisionnel de l’humain avec la force, l’endurance et la précision du robot. Aujourd’hui, le marché de la cobotique se développe très bien. Les enjeux stratégiques de ces petits robots sont étroitement liés aux technologies de l’industrie connectée, comme le deep learning, l’IA ou encore le machine learning. Estimé à 292 millions de dollars en 2017, ce marché porteur représentera les 3,26 milliards de dollars en 2022 et affiche un taux de croissance annuel dépassant les 50% depuis des années.

Quelles sont les différences entre la robotique et la cobotique ?

La robotique collaborative (ou la cobotique) regroupe plusieurs domaines différents et concentre toutes les technologies qui aident à mieux travailler. On retrouve par exemple les exosquelettes (permettant d’assister les efforts pour prévenir l’apparition de troubles musculo-squelettiques), des systèmes d’assistance à la manutention (par exemple les systèmes de bras mécanique pour remplacer les pare-brise), et les robots collaboratifs.

Le robot industriel est une technologie relativement vieille, qui a plus de 40 ans d’existence. Ce type de robot permet de porter des charges très lourdes, à de très grandes vitesses, et nécessite une mise en oeuvre très complexe. Il est souvent nécessaire de les protéger par une enceinte de sécurité et va occuper relativement beaucoup de place sur l’espace de travail. Il faut les programmer par des experts et de nombreux coûts additionnels et accessoires périphériques sont à prévoir.

La cobotique et précisement le robot collaboratif dispose lui de caractéristiques relativement opposées. Sa mise en service est beaucoup plus simple et rapide. La programmation est beaucoup plus abordable et les robots sont habituellement beaucoup plus légers. Ils dépassent rarement les 30kg ce qui va permettre un déploiement ou un redéploiement très flexible. Le cobot est également accompagné de nombreux capteurs de sécurité et ne nécessitent que très peu d’espace, ce qui va lui permettre de travailler côte à côte avec l’Homme. Ces robots collaboratifs sont relativement bon marché et leur retour sur investissement est plus rapide.

exoquelettes-cobotique
Un système d’exosquelette, exemple d’utilisation de la cobotique

Une nouvelle forme de robotique qui simplifie la relation homme – machine

On retrouve en cobotique deux grands types d’application : le travail coopératif et le travail collaboratif. Dans le travail coopératif,  l’humain délègue des tâches au cobot. Alors que le travail collaboratif lui, permet au cobot et à l’humain d’interagir ensemble sur le même élément et en même temps. La cobotique agit donc en parallèle de la robotique usuelle et industrielle qui a plutôt recours à de gros robots. Elle déploie des robots plus petits, qui portent des charges plus faibles et travaillent en activité complémentaire avec l’humain. C’est une nouvelle forme de robotique qui permet de considérablement repenser la relation homme-machine. Il s’agit en fait de simplifier la relation entre l’automatisation des systèmes et l’homme.

cobotique-travail-coopératif-collaboratif
À gauche, un exemple de travail collaboratif. À droite, un exemple de travail coopératif.

Toutefois, dans tout projet initial de cobotique, il conviendra de réaliser une analyse de risque complète, notamment l’identification des dangers, la fréquence d’exposition et les conséquences, etc. Le but d’un cobot n’est pas de remplacer le travail humain par un système ultra-rapide, mais de favoriser l’interaction avec l’utilisateur grâce à la maitrise de sa force, de sa vitesse et de son environnement. Son poids très léger par rapport aux robots traditionnels, lui permet d’être plus sécurisant et peu intrusif. Le robot collaboratif est donc avant tout sécurisé, mais aussi connecté. Il permet une multitude de tâches pour soulager un opérateur d’une tâche laborieuse. Le champ d’action de la cobotique va alors permettre aux travailleurs de rester plus longtemps opérationnels sur le terrain en les maintenant en bonne santé tout en assurant une continuité en termes de compétences avec les robots collaboratifs.

cobot-exemple-travail-collaboratif
Collaboration entre un cobot et une opératrice

Une démarche dans la lignée de l’industrie 4.0

La cobotique doit encore atteindre sa maturité pour se développer pleinement en France. Elle fait l’objet du plan de relance soutenant les technologies de l’industrie 4.0. Selon les experts, elle sera bien développée d’ici à 5 ans si les donneurs d’ordre de l’environnement industriel s’emparent encore plus du sujet. La cobotique se développe dans la même lignée que les interfaces cognitives reposant sur des outils d‘intelligence artificielle, de deep learning, ou d’apprentissage renforcé.

L’enjeu est de permettre au système d’apprendre par lui même à demander des solutions à l’opérateur lorsqu’il ne comprend pas un concept. Des travaux de développement en ce sens sont encore à réaliser. Si toutes les industries ne sont pas au même niveau de maturité concernant l’usage de la cobotique, à terme, celui-ci devrait s’étendre à l’ensemble d’entre elles. Les usages y sont nombreux, notamment dans le transport et la manipulation de charges lourdes par les cobots.

cobotique-industrie
Les robots collaboratifs type « bras 6 axes »

Les domaines multiples de la cobotique

La cobotique oeuvre dans de nombreux domaines d’applications. Les secteurs de l’automobile et de l’aéronautique en France sont les plus porteurs des robots collaboratifs, même si le transport naval et l’agroalimentaire suivent de près cette dynamique. Ces secteurs sont les plus porteurs actuellement. Il existe de plus, un essor de l’utilisation des cobots dans les activités du packaging et de la parfumerie. Il faut comprendre que le principal défaut des robots collaboratifs reste leur vitesse de déplacement.

La norme actuelle impose une vitesse maximale de 250 millimètres par seconde. À titre de comparaison, les robots classiques peuvent eux se déplacer à 1 mètre par seconde. Ce gap de réglementation engendre donc une incompatibilité avec certains cycles de chaînes de montage, ou les contraintes de temps sont élevées, comme dans le secteur automobile par exemple. La construction automobile ne consacre qu’un temps très court à chaque opération, ce qui explique que les robots collaboratifs ne sont pour le moment uniquement utilisé pour du « pick and place » relativement facile à programmer. Les applications ne s’arrêtent toutefois pas à l’industrie, il y en a dans la grande distribution, dans l’hôtellerie… Il y a un marché immense pour la cobotique.

utilisation-des-cobots-en-laboratoire-automatisation-laboratoire
Utilisation des cobots dans le cadre de projet d’automatisation en laboratoire

La formation et l’emploi dans la cobotique

La formation est un enjeu majeur du développement de la cobotique. Les études montrent que les pays les plus robotisés n’ont pas un taux de chômage important. Dans l’industrie, on constate que la robotisation et l’automatisation des chaînes de production ne réduisent pas le nombre d’emplois. Au contraire, elles favorisent le maintien des usines sur le territoire. Pour attirer les jeunes, il faut faire la promotion de la technologie au sein des usines.

Trois régions qui concentrent l’ensemble des emplois en France

Le nombre d’offres d’emploi dans le domaine de la cobotique a été multiplié par 2,1 entre 2016 et 2017. Ce chiffre tend à suivre une dynamique toujours plus soutenue année après année. Près de quatre offres sur dix concernent le secteur de l’ingénierie R&D. Le reste des offres étant proposés par des entreprises du secteur industriel. Trois régions concentrent l’ensemble des offres d’emploi de ce domaine. L’Île-de-France concentre 20 % des émetteurs d’offres, alors que la région Auvergne Rhône-Alpes en rassemble 19 %. Cette distribution s’explique par l’implantation dans ces régions d’importants pôles de compétitivité développant des activités dans le domaine. Les entreprises des Pays de la Loire sont également à l’origine de 19 % des offres.

La convergence de la mécatronique et de la cobotique

Si les formations se développent de plus en plus en France pour soutenir les jeunes à réaliser leurs études sur des projets de cobotique, les entreprises de leur côté semblent continuer à rechercher des profils confirmés. Ce serait même 72% des offres d’emploi qui viseraient ces profils avancés sur ce domaine, selon les chiffres 2016-2017 de l’Apec. La cobotique reste étroitement liée à d’autres domaines, comme par exemple la mécatronique, qui est le combinaison synergique et systémique de la mécanique, de l’électronique, de l’automatique et de l’informatique en temps réel. Les entreprises recherchent donc le plus souvent des profils d’ingénieurs mécatronique, même si chaque projet nécessite des compétences précises et diverses.

Sources : Techniques-ingenieur.fr (entretien de Olivier Gibaru, enseignant-chercheur au campus Arts & Métiers de Lille) / Apec / Universal Robots

Julia, le langage de programmation qui accélère la recherche scientifique

Posté le 17 novembre 2020 par

Julia est un langage de programmation créée par les chercheurs du MIT en 2009 et qui fera son arrivée au grand public en 2012. C’est un langage de programmation de haut niveau, performant, dynamique, et conçu pour le calcul scientifique avec une syntaxe similaire à Python, Matlab, Ruby ou encore R. Son efficacité est telle qu’aujourd’hui, le langage Julia bouleverse véritablement la coopération scientifique et permet une accélération des idées de chacun en s’affranchissant des frontières bloquantes des langages traditionnels. Chaque scientifique peut ainsi piocher dans les travaux d’autres chercheurs et les intégrer facilement et efficacement dans son propre projet. En cause, Julia permettrait la réunification de tous les autres langages en un seul. Voilà près de 10 ans que le langage Julia évolue et s’enrichit avec une communauté de plus en plus importante, comme l’atteste Lee Phillips, un physicien qu’il a vu naître.

Quelles entreprises utilisent le langage Julia ?

Plusieurs entreprises très connues utilisent le langage Julia depuis quelques années. On peut citer notamment le groupe d’assurances multinational Aviva qui utilise Julia pour le calcul des risques. Une autre multinationale de gestion d’actif, BlackRock, dont la réforme des retraites a fait parler d’elle en ce début d’année, utilise également Julia pour les calculs de séries chronologiques pour les investissements (Time Series calculations for investments). La Federal Reseve Bank of New York (l’une des banques américaines les plus connues) se sert aussi du langage Julia pour la modélisation économique. Bien d’autres entreprises évoluant dans l’univers du Big Data ont également recours à ce langage très utile (visualization, data science, machine learning, parallel computing, etc.)

Quels domaines d’actions pour les avancées de la science ?

Outre ces actions dans les domaines des sciences socio-économiques, c’est également sur une approche globale des sciences que le langage Julia intervient. En se basant sur les témoignages de chercheurs utilisant Julia, on peut dresser une liste de domaines où le langage a déjà fait ses preuves (une liste bien entendu non exhaustive) :

  • Modélisation moléculaire
  • Épaisseur des glaciers
  • Dynamique des vecteurs de maladies
  • Simulations spatiales
  • Recherche sur le cancer
  • Dynamique tumorale
  • Dynamique cérébrale de vertébrés
  • Analyse de la performance musicale
  • etc.

En effet, beaucoup de témoignages de scientifiques viennent confirmer l’intérêt et l’efficacité de Julia pour la recherche, comme l’atteste par exemple Petr Krysl et ses travaux sur les équations différentielles partielles : « C’est vraiment bien d’avoir un langage rapide qui peut être utilisé pour tout écrire. […] mais ce qui m’impressionne vraiment ces jours-ci, c’est autre chose: Julia est en quelque sorte capable d’augmenter ma productivité […]. Julia facilite la réflexion au bon niveau d’abstraction. »

L’origine de Julia

1) Des langages aux longévités différentes

Le physicien et journaliste Lee Phillips a assisté ces dix dernières années à l’émergence de Julia. Au travers d’un récent article, il explique comment ce langage a vu le jour et comment il est parvenu à faire l’unanimité aujourd’hui dans les milieux scientifiques. Il explique ainsi que tous les langages n’ont pas la même longévité et que certains sont plus appréciés que d’autres en fonction des objectifs et des priorités à réaliser au sein d’un projet.

La force de chaque langage ne se base pas toujours sur les mêmes aspects. Certains langages fonctionnent plus vite que d’autres, alors que certains sont plus rapides ou plus faciles à développer. Certains langages ont un écosystème plus vaste et permettent d’emprunter du code d’une autre bibliothèque et de les incorporer sans trop se compliquer la tâche. Des langages peuvent être bien adaptés à des types de problèmes particuliers ou alors être adaptés à un usage général.

2) Un milieu scientifique historiquement dominé par Fortran

Les scientifiques réalisent régulièrement des calculs poussés. De ce fait, ils accordent une importance particulière aux langages, à la qualité des compilateurs et des bibliothèques, mais aussi aux machines sur lesquelles ils fonctionnent. Depuis les années 50, c’est le langage Fortran qui a été l’outil traditionnel de choix pour un certain nombre d’opérations scientifiques de haut niveau, tel que la simulation atmosphérique ou la conception d’armes nucléaires. Il est cependant encore relativement utilisé aujourd’hui au sein de grands supercalculateurs et reste donc un très bon symbole de longévité en matière de langage informatique. Cependant, et bien qu’il ait longtemps dominé le marché de la recherche scientifique, il est aujourd’hui en concurrence avec d’autres langages plus jeunes, notamment Python, dont la popularité ne cesse de croître.

IBM704_Electronic_Data_Processing_Machine-Fortran
Les langages de programmation Fortran et LISP ont été initialement développés pour l’IBM 704 (premier ordinateur de série doté de capacité d’arithmétique vers 1954)
3) Un nouveau souffle avec Python

La popularité de Python s’explique par la dynamique de son écosystème, et son cycle de développement rapide. Avec Python, vous pouvez résoudre un problème scientifique en profitant de sa syntaxte simple et de son interactivité. Votre programme fonctionne très bien pour une version test du problème, mais lorsque vous essayez de le mettre à l’échelle pour obtenir quelque chose de plus réaliste, il est trop lent.

4) Des problèmes de lenteur à grande échelle

Autrement dit, écrire un programme en Python ne pose aucun problème pour certains types d’applications, mais dès lors qu’il s’agit d’une simulation à très grande échelle, le langage Python peut s’avérer intrinsèquement lent selon Lee Phillips. Il existe diverses techniques pour réaliser des gains modestes sur la lenteur de Python, dont une réécriture en C des parties les plus longues du calcul pour être plus rapide. Le problème reste cependant le maintien du code dans les deux langages, ce qui s’avère chronophage pour la science. Dans le milieu scientifique, la solution du langage Julia a attiré bon nombre de scientifiques puisqu’il résout les problèmes de Fortran / Python et des autres langages expressifs et interprétés.

Julia-vs-Python5) L’arrivée de Julia

Les concepteurs de Julia, Jeff Bezanson, Stefan Karpinski, Viral Shah, et Alan Edelman, souhaitaient un langage open source avec une licence libre, renfermant de nombreux avantages, surtout pour la communauté scientifique :

« Nous voulons un langage open source, avec une licence libre. Nous voulons un langage qui associe la rapidité de C et le dynamise de Ruby. En fait, nous voulons un langage homoiconic, avec de vraies macros comme Lisp et avec une notation mathématique évidente et familière comme Matlab. Nous voulons quelque chose d’aussi utilisable pour la programmation générale que Python, aussi facile pour les statistiques que R, aussi naturel pour la gestion de chaîne de caractères que Perl, aussi puissant pour l’algèbre linéaire que Matlab et aussi bien pour lier des programmes que le Shell. Nous voulons qu’il soit à la fois interactif et compilé. »

Pour résumer, Julia est donc très extensible puisqu’il existe plus de 4 000 packages pour sa communauté. Sa force réside principalement dans le fait que l’on peut l’utiliser avec d’autres librairies (Python, C, Fortan , C++, Java, ou encore R). Grâce à ce langage simple, efficace et ouvert, la recherche scientifique s’accélère.

Julia-Con2020
Bannière officielle de la JuliaCon 2020

Un bouleversement de la coopération scientifique

Aujourd’hui, la communauté s’agrandit autour de Julia. Chaque année a lieu la JuliaCon, la convention annuelle de Julia où se déroule une multitude de sujets informatiques (programmes, algorithmes, compilateurs, optimisation, etc.) mais également des sujets scientifiques (la dynamique des fluides ou encore l’imagerie cérébrale en passant par le traitement du langage).

Le domaine scientifique semble alors réellement se mettre au mouvement de l’open source et aux partages des travaux scientifiques, ce qui est un bouleversement en soi. En cause, l’histoire indique que l’organisation de la recherche était différente à l’époque. Auparavant, un code ne quittait rarement un laboratoire. Aujourd’hui et grâce à un langage tel que Julia, un algorithme scientifique peut par exemple se transmettre d’un chercheur à un autre de la même manière qu’un développeur accède à un code d’un autre développeur sur Github.

Julia-coopération-scientifique

La recherche scientifique s’ouvre aujorud’hui à tous et pour le progrès commun. Bon nombre de scientifiques semblent s’accorder sur la facilité dont Julia permet les collaborations scientifiques et la réutilisation du code. Ces scientifiques ont tous découvert que Julia multiplie les possibilités de collaboration et facilite plus que jamais l’intégration du travail des uns et des autres et leur permet d’écrire un code pouvant être utilisé de manière imprévue. De par son interopérabilité et son ouverture, Julia permet de piocher dans les idées d’autres scientifiques et de les adapter à ses propres recherches. Il est alors beaucoup plus facile de collaborer sur des problématiques spécifiques et donc de développer le progrès scientifique général.

Comment le langage Julia accélère-t-il les idées et les partages scientifiques ?

Le problème de l’expression

julia-accélération-idées-scientifiques

Les pouvoirs de Julia se trouvent dans la solution apportée par le langage à une vieille énigme bien connue de la science informatique : le problème de l’expression (expression problem). En faisant une analogie de l’informatique avec la création de recettes de cuisine, Lee Phillips illustre très bien l’origine du problème. Il explique qu’il existe deux façons d’organiser un livre de recettes.

Un livre de recettes peut être organisé autour de procédures à suivre pour réaliser des plats, mais il peut également également être axé autour des ingrédients à utiliser pour réaliser ces plats. Par analogie, il fait directement référence aux deux types de langages informatiques qui divisent le monde de la programmation informatique. Les livres de recettes organisés autour des procédures sont ceux écrits dans un langage fonctionnel, tandis que ceux organisés autour des ingrédients sont écrits dans un langage orienté objet.

Langage fonctionnel vs langage orienté objet

Dans un cas, vous ne pouvez pas ajouter de nouveaux ingrédients sans réécrire les procédures existantes, tandis que dans un autre cas, vous ne pouvez pas ajouter de nouvelles procédures sans réécrire votre travail existant : c’est le problème de l’expression. En revoyant la terminologie de la conception du langage informatique : dans un langage fonctionnel, vous pouvez ajouter de nouvelles fonctions sans toucher à celles qui existent déjà, mais ajouter de nouveaux types de données signifie réécrire les fonctions existantes. Dans un langage orienté objet, vous pouvez ajouter de nouveaux types de données à volonté, mais si vous voulez ajouter de nouvelles fonctions, vous devez reconcevoir les objets existants.

La programmation orientée objet ou fonctionnelle ne permet donc pas d’ajouter de nouvelles fonctions ou de nouveaux types de données sans obliger les scientifiques à réécrire le code antérieur. Un frein conséquent pour la recherche et sa bonne circulation. C’est ici toute la base du problème dont Julia parvient à s’affranchir.

Grâce à la technique du « multple disptach »,  le langage Julia a le pouvoir de rendre simple ce qui aurait été compliqué dans la plupart des autres langages comme l’affirme Lee Phillips : «le mélange direct et libre de codes permettant de faire des choses que ceux qui les ont écrits n’avaient initialement pas imaginées.» et «d’étendre l’univers des choses qui peuvent être accomplies pendant un temps humain fini, […] d’imaginer des choses qui ne pourraient être imaginées sans lui».

Source : The unreasonable effectiveness of the Julia programming language (arstechnica.com)

Popularité des métiers et des technologies de développement sur l’emploi tech (Octobre 2020)

Posté le 5 novembre 2020 par

Quels sont les métiers et technologies à plus forte popularité sur le marché de l’emploi en Octobre 2020 ?

Contexte de l’étude

Chaque année les recrutements de cadres sont propulsés par les activités de l’ingénierie et de l’informatique. Ce secteur informatique, particulièrement porteur, connaît une progression importante depuis quelques années et concentre la majorité des besoins en recrutements. Pourtant le marché du recrutement informatique est souvent déséquilibré, avec une offre qui dépasse largement la demande. Ce serait près de 70% des projets déposés qui éprouveraient des difficultés à être comblés. Ce qui explique pourquoi les recruteurs sollicitent souvent les ingénieurs et développeurs dont le profil correspond parfaitement avec les besoins du marché.

Pourtant, en ces temps de confinement et de pandémie, il peut être difficile pour certaines de se projeter dans un nouvel emploi. Pas toujours facile d’assurer une veille technologique régulière et d’être à jour sur les différents besoins du marché en matière de technologies informatiques. C’est pourquoi Silkhom souhaite guider les professionnels de l’informatique en recherche, en donnant un état mensuel du marché. Comment savoir sur quelle technologie se spécialiser en Octobre 2020 ?

Méthodologie de l’étude

Chaque mois, ce sont des milliers d’offres d’emploi qui paraissent dans les différents sites d’annonces d’emploi. Pas facile de s’y retrouver tant les jobboards sont vastes et les outils, technologies, frameworks nombreux. Dans cette étude, nous avons cherché à quantifier la fréquence à laquelle chaque technologie de développement ressort dans les offres d’emploi du marché tech. Nous avons basé l’étude sur 6 sites d’emploi (ou agrégateurs d’annonces d’emploi) pour tenter de réflèter au mieux l’ensemble du marché informatique. L’étude se porte donc sur : LinkedIn (réseau social pro, mais aussi jobboard très dense),  Indeed (agrégateur d’annonces n°1),  Apec (une référence pour le recrutement de cadres),  Les Jeudis (spécialisé en Informatique-Digital), et Monster (très connu également), et notre site internet Silkhom.com.

La méthode consiste à crawler ces jobboards pour en extraire les informations de plusieurs milliers de fiches de postes. À partir de parsers customs, nous arrivons à déterminer les informations d’un grand nombre de fiches de postes. Pour chaque terme étudié (technologie, framework, base de données, etc.) nous avons déterminé une fréquence à laquelle ce terme apparaissait dans la totalité des offres d’emploi en CDI présente sur chaque jobboard pour le mois. Après avoir recueilli la fréquence de chaque terme pour chaque site internet, une moyenne des fréquences a été realisée sur les 6 jobboards pour obtenir la fréquence finale du terme, reflétant ainsi une estimation précise de la popularité du terme au niveau global du marché de l’emploi.

La liste des termes étudiés est bien entendu non exhaustive. Si vous souhaitez que Silkhom suive une technologie, un framework absent de cette liste, faites-le-nous savoir en commentaire. Chaque terme étudié est donc associé à une fréquence (en %) par rapport à l’ensemble des offres d’emploi informatiques recensées en octobre, ce que nous appelons « popularité dans les offres d’emploi ». Les variations sont exprimées en pourcentage par rapport au mois précèdent, c’est-à-dire septembre 2020. Les variations des postes populaires du mois (en bas d’article) sont exprimées en rang (ex : +2 veut dire que le poste a gagné deux rangs supplémentaires par rapport à Septembre en termes de volume de demande).

SQL, Java, Javascript : top langages de programmation du mois

top-langages-programmation-octobre2020
« Programming, Scripting, and Markup Languages »

Pour octobre, on retrouve évidemment le langage SQL, omniprésent dans les offres d’emploi (20,38%), ainsi que Java (17,20%) et JavaScript (13,20%) sur le podium, et également largement majoritaire en termes de popularité sur les offres d’emploi. Javascript, très répandu du côté front comme du côté back, est suivi de près par le langage Python, toujours autant en vogue sur le marché tech et les classiques HTML/CSS, totalement indispensables à tout poste de développeurs. On remarque que ces deux fondamentaux du code ne sont pas toujours mentionnés dans les descriptifs de postes de développeur, étant donné qu’il est logique de les maîtriser nativement.

PHP (9,11%), de son côté, reste un indispensable à maîtriser si vous désirez trouver facilement un poste de développeur malgré son très léger recul ce mois-ci (-0,30%). La plus grande augmentation de popularité revient au langage SQL, toujours aussi primordial pour exploiter les bases de données. Le langage C connaît le plus grand déclin du mois (-6,79%), souvent mentionné dans les offres d’emploi avec C++ qui connait lui aussi une légère baisse de l’ordre de -0,38%.

Angular, Spring, Symfony : top frameworks du mois

top-frameworks-web-octobre2020
« Frameworks web »

Le nombre de résultats retournés en octobre sur les jobboards pour les frameworks web est relativement moins important que pour les langages de programmation d’où des pourcentages de popularité plus bas. Toutefois on remarque que les frameworks Angular (7,94%), Spring (5,85%) et Symfony (4,32%) occupent la tête du classement. On retrouve les frameworks célèbres JavaScript : React.js (3,21%) & Angular.js (3,17%) dont l’utilisation dans un projet technologique dépendra des objectifs à accomplir et du cahier des charges. Ils sont suivis de près par la célèbre bilbliothèque jQuery (2,93%) et un troisième framework JS particulièrement en vogue également : Vue.js (2,41%). On notera que les variations de popularité des frameworks pour octobre sont très minimes par rapport au mois dernier. La plus grande diminution revient à React.js (-2,48%), toujours dans le haut du classement néanmoins. Spring, framework pour les applications Java, connaît la plus grande augmentation de popularité avec +0,95%.

.Net, Ansible, Node.js : top autres frameworks, libraires, tools du mois

Top-Autres-Frameworks-Librairies-Tools-octobre2020
« Autres Frameworks / Librairies / Tools »

Pour les frameworks restants, les libraires, et les outils, on retrouve largement devant le .Net de Microsoft avec 8,72% suivi de Ansible avec 4,30%. Le framework Javascript côté serveur Node.js se place en troisième position avec une popularité de 4,30%. Il connait également la diminution la plus importante de cette rubrique avec -0,62% ce mois-ci. Plus loin, on retrouve le framework Hadoop facilitant le stockage de données (1,82%) et Teraform (1,66%). La plus grande progression en popularité revient au .Net avec +1,21%. On notera que le volume général d’offres d’emploi mentionnant ces frameworks restent relativement stable, puisque les variations oscillent entre -0,62% et 1,21%.

Oracle, MySQL, VMware : top base de données du mois

top-base-de-données-octobre2020On retrouve dans cette catégorie « Base de données » un classement très régulier dans la mesure où l’on perd l’ordre de 1% à chaque fois que l’on descend d’un rang dans le classement. Le podium revient ici au système de gestion de base de données Oracle avec une popularité de 7,29%, suivi par MySQL (6,77%) et VMware (6,13%). La quatrième et la cinquième position sont issues de l’écosystème SQL avec un 5,88% pour SQLServer et 4,40% pour PostegreSQL. ElasticSearch qui est utilisé avec NoSQL s’offre une popularité de 3,09% ce mois-ci et connaît la plus grande augmentation (+0,44%) avec le leader Oracle (+1,19%). Ici aussi, les volumes d’offres d’emploi mentionnant ces bases de données sont relativement stable (de septembre à octobre) avec une variation oscillant entre -0,62% et 1,19%.

Windows, Linux, Docker : top plateformes du mois

top-plateformes-octobre2020
« Plateformes »

En ce qui concerne les plateformes, on retrouve évidemment les plus célèbres : Windows avec 16,71% de popularité, Linux avec 15,78%, et Docker avec 7,72%. La plateforme AWS d’Amazon arrive en quatrième position avec une popularité de 5,91%, suivi par la plateforme de gestion de containers Kubernetes avec 4,13%. On remarquera que le CMS WordPress, mondialement connu et largement déployé, ne connaît pas forcément la plus grande popularité en termes de volume d’annonces d’emploi ce mois-ci. Ce dernier arrive en neuvième position avec 1,52%. Là encore, les variations mensuelles sont minimes. Elles oscillent entre -1,39% pour Microsoft Azure et +1,13% pour l’OS d’Apple.

DevOps, Lead Devoper, Développeur Front-End : métiers les plus recherchés en Octobre

métiers-tech-les-plus-recherchés-octobre2020

En analysant les intitulés de poste sur les différents jobboards, on retrouve une disposition intéressante qui varie quelque peu d’un mois à l’autre. Ce mois-ci, c’est le métier de DevOps qui est particulièrement recherché par les entreprises. Bien que DevOps soit avant tout une culture d’entreprise et une façon bien pensée de réaliser un projet, la double compétence développement et maintien opérationnel restent une valeur sûre sur le marché de l’emploi. Le mois dernier, le poste de DevOps était en deuxième position.

Les compétence de gestion des équipes de développeurs sont également de grands atouts sur le marché de l’emploi comme l’atteste la deuxième position du métier de Lead Developer – CTO – Responsable Technique. De plus, la demande sur le marché reste forte en termes de développement front alors que le développement back recule légèrement de quelques positions ce mois-ci. Les plus grands changements de la demande en métiers informatiques reviennent ce mois-ci aux postes d’Administrateur Système (+4 places) et Data Analyst et Ingénieur QA (-3 places tous les deux).

Source de l’étude : Silkhom.com / Idée brillante de Damien Duhamel

Générer une attestation de déplacement à la vitesse de la lumière

Posté le 4 novembre 2020 par

Première semaine de ce second confinement et c’est évidemment le retour de la fameuse attestation du gouvernement pour pouvoir justifier nos déplacements selon les différents motifs proposés. Pas toujours facile de générer son attestation de déplacement rapidement sur son smartphone. Pour ceux ou celles qui doivent sortir régulièrement, cela peut même s’avérer quelque peu chronophage. Après tout, neuf champs de formulaires à remplir sur son smartphone, ce n’est pas la mer à boire, seulement voilà : soyons intelligemment feignants !

Il existe donc un tip bien sympa qui va vous faciliter la vie. Développé par Maxime Princelle, un étudiant en informatique et par le site web iphonesoft.fr, l’astuce repose sur un script de complétion automatique. Après avoir testé sur iPhone, nous partageons aujourd’hui ce tutoriel sur iOS, mais cela reste faisable sur les autres systèmes (à priori), notamment via un script similaire développé par Nicolas Chambrier (@naholyr sur Twitter). En couplant cette petite ruse avec la fonctionnalité « Touchez le dos de mon appareil », la manipulation devient si facile que cela relève du génie.

Tutoriel pour générer son attestation de déplacement en quelques secondes sur votre smartphone

L’astuce se base sur l’application Raccourcis d’Apple. Vous pouvez dès lors l’utiliser sur votre iPhone, iPad, Apple Watch, ou Mac. Aucune information n’est collectée ni conservée via cette astuce. Tout se déroule sur votre iPhone et nécessite pour le moment iOS 12 à minima.

Le tutoriel :

  • Si vous n’avez jamais utilisé l’application Raccourcis, il faudra peut-être la télécharger puis activer l’option « Autoriser les raccourcis non fiables » dans Réglages > Raccourcis. Cette option permet au raccourci de s’activer étant donné qu’il n’est pas directement développé par Apple. Si cette option n’est pas directement activable, c’est que vous n’avez pas encore utiliser de raccourcis. Il faudra donc en utiliser un depuis l’application « Raccourcis » pour débloquer l’option.
    tuto-generation-attestation1
  • Rendez-vous sur cette page pour télécharger le raccourci depuis votre iPhone. Il est conseillé d’ouvrir le lien avec Safari.
  • Après avoir tapé sur « Obtenir le raccourci », votre application « Raccourcis » doit s’ouvrir. Descendez tout en bas pour appuyer sur le bouton rouge « Ajouter un raccourci non fiable ». Encore une fois, l’indication « non fiable » fait référence au fait que le raccourci ne soit pas directement proposé par Apple, qui n’examine pas les raccourcis en dehors de ceux proposés dans l’application.
    tuto-generation-attestation2
  • Il vous reste ensuite à configurer le raccourci. Remplissez directement vos informations (nom, prénom, adresse, etc.) dans la partie droite du tableau. Évitez les accents et pensez à bien respecter le format de date JJ/MM/AAAA.
    raccourci-attestation-déplacement-smartphone
  • Tapez sur « OK » et le tour est joué.

Utilisation du raccourci « Attestion Covid-19 »

  1. Rendez-vous sur votre application Raccourcis et allez sur « Attestation Covid-19 ». Vous pouvez également tapez attestation dans la recherche Spotlight ou utilisez Siri en demandant « Attestation Covid-19 »
  2. Sélectionnez ensuite votre motif de sortie parmi ceux proposés
  3. Vous obtenez automatiquement votre attestation de sortie avec QR Code pour faciliter la lecture des autorités en cas de contrôle

Encore plus pratique avec la fonction « Toucher le dos de l’appareil »

Pour aller encore plus loin dans la rapidité, la fonction « Toucher le dos de l’appareil » disponible sur iOS 14 vous permettra de générer une attestation de déplacement encore plus facilement. Cette fonctionnalité permet d’assigner des actions et raccourcis dès que vous toucherez le dos de votre téléphone. Pour se faire, installez le raccourci via le tutoriel ci-dessus et allez dans les réglages de votre iPhone, ensuite « Accessibilité », puis « Toucher le dos de l’appareil », et enfin sélectionner le raccourci « Attestation Covid-19 ». Magique !

Voici une démonstration :

Vous avez aimé cet article ? N’hésitez pas à consulter également notre précèdent article sur les 10 outils pratiques et solidiaires pour faciliter votre confinement.

Source : iphonesoft.fr

L’ordinateur le plus puissant du monde n’est plus américain, mais japonais

Posté le 25 juin 2020 par

L’ordinateur le plus puissant du monde est désormais japonais. En effet, le supercalculateur Fugaku s’est installé en tête de différents classements relatifs aux puissances de calcul. C’est la première fois qu’une tel ordinateur prend simultanément la première place de ces quatre principaux classements (Graph500, HPCG, HPL-AI, Top500).

Pour rappel, les superordinateurs sont utilisés pour toutes les tâches qui nécessitent une très forte puissance de calcul, par exemple les prévisions météorologiques, l’étude du climat, la modélisation d’objets chimiques, les simulations physiques, la cryptanalyse, ou les simulations en finance et en assurance. Les supercalculateurs sont un élément essentiel de la recherche dans des domaines aussi variés que l’intelligence artificielle ou l’informatique quantique, du fait de leur formidable puissance de calcul.

Fugaku écrase la concurrence, dont le Summit d’IBM

L’ordinateur le plus rapide du monde est japonais et son nom fait directement référence au mont Fuji. Il a été développé par l’institut public de recherche Riken et Fujitsu. Le supercalculateur Fugaku est jusqu’à 2,8 fois plus puissant que le supercalculateur américain Summit d’IBM. Après près de 4 ans en tête du classement Top 500, Summit s’incline devant son nouveau rival qui peut atteindre une vitesse permettant de calculer 415 millions de milliards d’opérations à la seconde, rien que ça. Plus précisément, la puissance de Fugaku est de 415,53 pétaflops contre 148,6 pétaflops pour Summit. Un pétaflop étant l’équivalant d’un million de milliards d’opérations à la seconde.

Supercalculateur-FugakuDéjà actif dans la recherche contre le Covid-19

Le supercalculateur Fugaku devrait être mis en service à 100% qu’à partir de 2021. Pourtant, il est déjà sollicité dans le cadre des recherches de vaccin contre le Covid-19. En effet, sa gigantesque puissance de calcul permet de trouver et de modéliser des séquences probables permettant l’élaboration de nouveaux médicaments ou de nouvelles solutions contre le coronavirus.

Ce n’est pas la première fois que des superordinateurs sont mis à disposition de la recherche contre le Covid-19. Mais sur le long terme, il devrait également permettre de déceler de nouvelles solutions énergétiques et industrielles, ou encore de simuler des catastrophes naturelles.

La course à l’IA et à la suprématie quantique mondiale

Actuellement, les États-Unis et la Chine possèdent à eux deux 70% des supercalculateurs présents dans le classement Top500. La course à la suprématie quantique semblait se dessiner entre ces deux acteurs. Pourtant, le japonais Fugaku entre dans la course à son tour puisqu‘il prend la tête de ce fameux classement en distançant l’américain Summit. Cependant, beaucoup ne voit pas Fugaku tenir sa position de leader très longtemps. En effet, trois supercalculateurs américains auraient pour objectif d’atteindre une puissance de calcul en exaflops soit plusieurs milliards de milliards d’opérations à la seconde, d’ici les prochaines années. L’avenir nous dira donc si Fugaku sera l’ordinateur le plus puissant du monde sur le long terme.

Source : riken.jp / Zdnet

Langages préférés ou détestés, choix entre deux postes ou facteurs de changement : le profil 2020 des développeurs

Posté le 17 juin 2020 par

Comme chaque année, le site Stack Overflow réalise une étude très complète sur le profil des développeurs dans le monde entier. Ce sont près de 65 000 développeurs qui ont pris le temps de répondre aux différentes questions liées à leur environnement de travail et à leurs préférences technologiques. Quels sont les langages préférés des développeurs ? L’année dernière déjà, nous avions résumé l’étude 2019 via un précèdent article. Voyons aujourd’hui les différentes évolutions et tendances qui ressortent de cette nouvelle étude.

65 000 répondants dans le monde entier

L’étude a été bouclée en février, avant que le Covid ne soit déclaré par l’OMS. Ce sont près de 65 000 développeurs qui ont accepté de répondre aux diverses questions. Les répondants ne sont pas forcément des utilisateurs de Stack Overflow afin de gagner en précision. En effet, le site indique que l’étude et ses répondants sont beaucoup plus globalisés que l’année dernière. Ainsi, tous les pays sont représentés dans l’étude au même titre que tous les développeurs (ceux utilisant Stack Overflow et ceux ne l’utilisant pas).

Bonne nouvelle également à l’heure où la place des femmes dans la tech n’est pas encore assez représentée, le site indique avoir constaté une légère augmentation des femmes dans la profession par rapport à 2019. Étant donné que l’étude a été réalisée avant la crise sanitaire, Stack Overflow précise bien qu’il faut garder à l’esprit le calendrier de l’enquête lorsque vous examinez des informations telles que les données relatives aux emplois et aux salaires.

Localisation des répondants

Des développeurs à part entière

Environ 55 % des personnes interrogées s’identifient comme des développeurs à part entière, et environ 20 % se considèrent comme des développeurs mobiles. Le nombre médian de catégories de développeur par répondant cette année est de trois, et les combinaisons les plus courantes comprennent les développeurs back-end, front-end et full-stack. Les paires qui présentent une forte corrélation sont les suivantes : Administrateur de base de données et Administrateur système, spécialiste DevOps et Site Reliability Engineer, chercheur et scientifique, et designer et développeur frontend.

Métiers exercés par les répondants

Tous les niveaux d’expériences sont représentés

L’expérience des répondants est très variée, allant de développeurs chevronnés qui ont appris à coder il y a plus de 30 ans (environ 15 %), à un pourcentage non négligeable de développeurs (17 %) qui ont appris à coder il y a moins de cinq ans. Parmi les développeurs professionnels qui visitent Stack Overflow, environ 40 % ont appris à coder il y a moins de 10 ans.

Niveau d’expérience des répondants

JavaScript, HTML/CSS, SQL : langages les plus utilisés

Pour la huitième année consécutive, JavaScript a conservé son statut de langage de programmation le plus utilisé. Plus loin dans la liste, nous constatons également des gains modérés pour TypeScript, qui dépasse le C en termes de popularité. En outre, Ruby, qui figurait dans le top 10 de cette liste en 2017, a décliné, étant dépassé par des technologies plus récentes et plus tendance comme Go et Kotlin.

Les langages populaires

jQuery, React.js, Angular : frameworks web les plus utilisés

En se concentrant uniquement sur les frameworks web, on constate que jQuery est toujours roi, mais qu’il perd lentement du terrain au profit de React.js et Angular d’année en année. Nous constatons une certaine consolidation, car plus de 35 % des répondants utilisent jQuery, React, une version d’Angular ou ASP.NET

Frameworks populaires

Node.js .Net .Net Core, les autres frameworks les plus utilisés

Pour la deuxième année consécutive, Node.js occupe la première place, car il est utilisé par la moitié des personnes interrogées. Nous constatons également une croissance générale de la popularité des technologies d’analyse de données et de machine learning telles que Pandas, TensorFlow et Torch/PyTorch.

Les autres frameworks populaires

MySQL, PostgreSQL et Microsoft SQL Server : databases les plus utilisés

En ce qui concerne les technologies des bases de données, les résultats sont similaires à l’année dernière. MySQL a conservé la première place, suivi de PostgreSQL et de Microsoft SQL Server. Cependant, on observe une légère croissance de la popularité de Firebase, qui a dépassé Elasticsearch cette année.

Databases populaires

Linux, Windows, Docker : plateformes les plus utilisées

Linux et Windows conservent les premières places pour la plupart des plates-formes populaires : plus de la moitié des personnes interrogées déclarant avoir effectué des travaux de développement avec ces systèmes cette année. Nous constatons également une certaine croissance d’année en année dans la popularité des technologies de conteneurs telles que Docker et Kubernetes.

Plateformes populaires

Rust, TypeScript, Python : langages préférés des développeurs

Pour la 5eme année consécutive, Rust est le langage le plus apprécié des répondants. Il est suivi par TypeScript, et Python. Kotlin et Go arrivent en 4e et 5e position. On remarque que le langage Go est passé de la 10e place l’année dernière à la 5e position.

langages-préférés-développeur-2020
Langages les plus appréciés

VBA, Objective C et Perl : langages les plus redoutés

VBA, Objective C et Perl occupent les premières places pour les langages les plus redoutés – des langages qui avaient un pourcentage élevé de développeurs qui les utilisent actuellement, mais qui n’ont aucun intérêt à continuer à le faire.

Langages les plus redoutés

Python, JavaScript, Go : langages les plus recherchés

Si l’on considère les technologies que les développeurs déclarent ne pas utiliser, mais qu’ils veulent apprendre, Python prend la première place pour la quatrième année consécutive. Nous constatons également une légère augmentation de l’intérêt pour l’apprentissage de Rust.

Langages les plus recherchés

ASP.NET Core, React.js, Vue.js : frameworks web préférés des développeurs

ASP.NET Core est le framework web le plus apprécié, battant React.js. Gatsby, un nouveau venu dans l’enquête, occupe déjà la 5e place, étant aimé par 60 % des répondants. Bien qu’il soit l’un des frameworks les plus populaires, Angular.js est également considéré comme le plus redouté.

Les frameworks appréciés

.NET Core, Torch/PyTorch, Flutter : les autres frameworks préférés des développeurs

NET Core et Torch/PyTorch restent les plus appréciés parmi les autres frameworks, et bibliothèques. Les outils DevOps Chef et Puppet font partie des technologies les plus redoutées.

Les autres frameworks appréciés

Redis, PostgreSQL, ElasticSearch : databases les plus appréciées

Si l’on examine les technologies de base de données, Redis reste la plus appréciée, suivie de PostgreSQL et Elasticsearch. IBM DB2 a été classé comme la base de données la plus redoutée et MongoDB reste la technologie de base de données que les développeurs veulent le plus apprendre.

Databases les plus appréciées

Linux, Docker, Kubernetes : plateformes les plus appréciées

Linux reste la plateforme la plus appréciée. Les technologies de conteneurs Docker et Kubernetes arrivent en seconde et troisième position. Ils font également partie des plateformes que les développeurs veulent le plus apprendre avec AWS, ce qui montre à quel point ils sont aimés. WordPress est toujours le plus redouté, mais Slack Apps et les intégrations, nouvellement ajoutés à la liste cette année, occupent la quatrième place.

Perl, Scala, Go, Rust : les langages associés aux plus hauts salaires

Globalement, les répondants qui utilisent Perl, Scala et Go ont tendance à avoir les salaires les plus élevés, avec un salaire médian d’environ 75 000 $. Il est intéressant de noter que Perl est l’un des langages les plus redoutés, il est donc possible que ce salaire élevé soit destiné à compenser le manque de développeurs qui veulent utiliser cette technologie. Aux États-Unis, les développeurs Scala, Go et Objective-C ont tendance à avoir les salaires les plus élevés.

Les langages associés aux plus hauts salaires

Comment les technologies sont connectées ?

Les technologies peuvent se regrouper dans des clusters qui ont tendance à être utilisés par les mêmes développeurs. Ce graphique montre donc quelles sont les différentes corrélations qui peuvent exister entre les technologies. On remarque un grand groupe de technologies de développement web connecté via SQL à un groupe de technologies Microsoft, ainsi qu’un groupe de technologies d’exploitation connecté au réseau de l’écosystème Python via Linux.

Les différents clusters technologiques

Des développeurs ouverts aux nouvelles opportunités

Près de 57% des personnes interrogées ont déclaré ne pas chercher activement mais être ouvert aux nouvelles opportunités. 17% sont en recherche active. Globalement, les développeurs sont heureux et satisfaits au travail. Si l’on considère plusieurs pays à forte population de développeurs, la satisfaction au travail est généralement constante. Aux États-Unis, en Inde, au Royaume-Uni, en Allemagne et au Canada, plus de 80 % des développeurs ne recherchent pas activement un emploi, mais au moins plus de la moitié sont ouverts à de nouvelles opportunités.

Statut-Emploi-Développeurs-langages-préférés
Statut relatif à l’emploi

Le salaire, travailler sur de nouvelles technos : principaux facteurs de recherche d’emploi

Quelles sont les motivations des développeurs à vouloir change de poste ? L’amélioration de la rémunération est de loin le facteur le plus commun pour les répondants, 70% d’entre eux notant qu’il est important d’augmenter les salaires. Le fait de vouloir travailler avec les nouvelles technologies est le deuxième facteur le plus populaire.

facteurs-nouvel-emploi-langages-préférés-développeurs
Facteurs de recherche d’un nouvel emploi

Choisir entre deux postes : ce qui fait la différence

Dans l’ensemble, les langages et les technologies de l’entreprise restent le premier choix, suivi par l’environnement de travail ou la culture d’entreprise et la flexibilité des horaires. Il est intéressant de noter que les facteurs les moins importants étaient les performances financières de l’organisation (11,4 %), l’équipe spécifique (11,2 %) et la diversité de l’organisation (6,6 %).

Cependant, chez les femmes les résultats sont différents. Parmi les femmes interrogées, 48% ont choisi la culture d’entreprise comme l’un des facteurs les plus importants et 18% ont indiqué que la diversité était également de la plus haute importance.

changement-poste-langages-préférés-développeurs
Choisir entre deux postes : ce qui fait la différence

Source : Stack Overflow Annual Survey (2020)

Indice Tiobe : Rust entre dans le top 20 pour la première fois

Posté le 16 juin 2020 par

Du mouvement du côté de l’indice Tiobe de juin : le langage de programmation Rust entre pour la première fois dans le top 20 du classement. Le langage C quant à lui, reprend la tête du classement après 5 ans sans avoir été leader. Java garde sa seconde place.

Pour rappel, l’indice TIOBE est un classement mesurant chaque mois la popularité de chaque langage de programmation en fonctionnant sur la base du nombre de pages web retournées par un moteur de recherche, lorsqu’on lui soumet le nom du langage. Un langage dont on parle beaucoup sera donc “populaire” pour TIOBE.

L’indice peut être utilisé pour vérifier si vos compétences en programmation sont toujours à jour ou pour prendre une décision stratégique sur le langage de programmation à adopter lorsque vous allez commencer le développement d’un nouveau système logiciel.

Dans ce contexte, cela ne signifie donc pas que plus gens utilisent Rust, mais cela témoigne plutôt qu’un nombre croissant de développeurs recherchent des informations sur le langage.

rust-tiobe-indice-huin-2020Rust entre dans le top 20 de l’indice Tiobe

Paul Jansen, PDG de TIOBE Software a déclaré : « Près de 10 ans après sa naissance, le langage de programmation Rust entre pour la première fois dans le top 20 de l’indice TIOBE. Est-ce surprenant? Rust a été élu « le langage de programmation le plus apprécié » par les utilisateurs de Stackoverflow au cours des 5 dernières années. Successivement ! La raison principale en est que Rust est un langage de programmation système bien fait. Toute la programmation verbeuse des autres langages est résolue par Rust tout en étant fortement typée statiquement. Son système de type empêche les exceptions de pointeur nul au moment de l’exécution et la gestion de la mémoire est calculée au moment de la compilation. Donc pas de récupération de mémoire qui se déclenche soudainement. Nous avons D, Lua et Julia qui essayent de battre C et C ++ mais Rust semble être le premier à s’en rapprocher vraiment. Voyons voir s’il peut conserver cette place dans le top 20 dans les années à venir. »

Pour la première fois, Rust accède au top 20 des langages les plus populaires selon le classement Tiobe. Le langage de Mozilla Research a pu gagner de précieuses places en passant de la 38e place l’an dernier à la 20e place aujourd’hui. Le site Développez.com présente l’explication suivante : Rust puise son intérêt dans plusieurs choses : écrire du code pour des systèmes d’entrée / sortie de base (BIOS), des chargeurs d’amorce, des systèmes d’exploitation… Il y’a ainsi un intérêt croissant pour l’utilisation de Rust dans la programmation système afin de construire des plateformes majeures. Microsoft explore Rust pour Windows et Azure dans le but d’éliminer les bogues de mémoire dans le code écrit en C et C++. De plus, Amazon Web Services utilise également Rust pour les composants sensibles aux performances dans Lambda, EC2 et S3.

Rust, un langage qui fait rêver

Rust a récemment été élu pour la 5e fois consécutive langage de programmation préféré des développeurs dans l’enquête 2020 de StackOverFlow. 86% des développeurs ont déclaré qu’ils souhaitaient utiliser Rust, mais seulement 5% l’utilisent réellement pour la programmation. Dans la même enquête, Rust se positionne à la 4e position des langages les plus rémunérateurs sur le marché.

La popularité croissante de Rust dans l’indice TIOBE tend à monter que le langage a beaucoup d’avenir dans la programmation système. Beaucoup parient que Rust performera au détriment du langage C. Developpez.com précise qu’il sera bientôt possible pour les développeurs d’écrire plus facilement des applications Windows multiplateformes et des pilotes en Rust grâce à la à la Public Preview de la bibliothèque Rust pour Windows Runtime (WinRT).

Scratch entre également dans le top 20

Des évolutions similaires peuvent être observées avec le retour de Scratch dans le top 20 depuis le mois d’avril 2020. Ce langage de programmation est un langage graphique manipulable et exécutable par le logiciel du même nom. Sa vocation est éducative.

Scratch est à la fois un environnement de développement et un moteur d’exécution du langage Scratch, mais aussi un site web. Il occupait l’année dernière la 26e place et sa plus haute position remonte à la 14e place en octobre 2017. Scratch a pu gagner quelques places et se classe désormais en 18e position.

L’explication de Paul Jansen, PDG de Tiobe : « À première vue, cela peut sembler un peu étrange pour un langage de programmation conçu pour apprendre aux enfants à programmer. Mais si vous prenez en compte qu’il y a au total plus de 50 millions de projets « écrits » dans Scratch et que chaque mois 1 million de nouveaux projets Scratch sont ajoutés, on ne peut plus nier que Scratch est populaire. Étant donné que les ordinateurs font de plus en plus partie intégrante de la vie, il est en fait tout à fait logique que les langages pour enseigner la programmation aux enfants deviennent populaires. Il y a quelques années, il y avait une concurrence entre Scratch et Alice pour savoir quel langage allait devenir le nouveau langage de programmation « Logo » des temps modernes. Alice est maintenant à la 90e position de l’indice TIOBE, le vainqueur semble donc évident. Cela est peut-être dû au fait que Scratch est plus facile à apprendre (un facteur de réussite critique dans ce domaine) et que Scratch est parrainé par des sociétés telles que Google et Intel. »

R explose, TypeScript symbole du changement de direction de Microsoft

Que s’est-il passé ailleurs ? Le langage de programmation statistique R est passé de la 22e à la 9e place, atteignant presque son meilleur classement (8e place en 2018). Le très plébiscité Typescript de Microsoft lui n’est classé que 44e sur l’indice Tiobe alors que d’autres classement comme notamment celui de RedMonk, qui fonctionne sur les données recueillies sur GitHub et StackOverFlow, place TypeScript à la 9e place dans son dernier classement.TypeScript se place ainsi devant Python, Kotlin et Go.

Pour Ben Popper, directeur du contenu de Stack Overflow, la montée en popularité de TypeScript met en évidence le changement de direction de Microsoft et l’adoption du mouvement open source.

L’utilisation de TypeScript est influencée par l’énorme quantité de code JavaScript existant. Il est également très recherché en termes de compétences comme l’indique la dernière étude de Développez.com sur l’employabilité des développeurs en France.

C reprend la tête du classement

Durant le mois de mai, le langage C a repris la tête du classement avec une progression de +3,89%. La dernière fois que C était premier, c’était en 2015. Ce regain de popularité peut s’expliquer par la recherche de vaccin contre le Covid. Les langages Python et R sont propulsés par le domaine des sciences des données. Les langages propres aux logiciels embarqués tels que C et C++ sont particulièrement utilisés dans les logiciels des dispositifs médicaux.

Sources : Developpez.com / TIOBE Index June 2020

Deno : la prochaine alternative à Node.js ?

Posté le 10 juin 2020 par

Prenez l’anagramme de Node et vous obtiendrez Deno

Avez-vous entendu parler de Deno ? Beaucoup de bruits ont fait surface sur le sujet ces derniers mois. Ce nouveau runtime sécurisé pour JavaScript et TypeScript a été construit avec V8, Rust, et Tokio. À l’origine le 2 juin 2018, Ryan Dahl, le créateur de NodeJS, déclare lors de la JSConf qu’il ne supporte plus NodeJS par le biais d’une réflexion poussée et très critique envers sur son précèdent travail. Au travers des « 10 choses que je regrette à propos de NodeJS », Ryan Dahl annonce l’arrivée de Deno.

L’objectif de Deno est alors de corriger les erreurs de conception de NodeJS et offrir un nouvel environnement de développement moderne. « Essayer de réimaginer NodeJS à la lumière des progrès réalisés en JavaScript depuis 2009, y compris pour le compilateur TypeScript. Comme NodeJS, Deno est essentiellement un shell autour du moteur JavaScript de Google V8. Mais contrairement à NodeJS, il inclut le compilateur TypeScript dans son image exécutable. »

Les limites de NodeJS

Il est difficile de parler de réel problème pour NodeJS tant son utilisation est performante et sa communauté opérationnelle. Il convient alors dans ce cas précis de parler de manques ou de limites plutôt que de problèmes. Vous l’aurez compris, Deno puise son intérêt dans les limites de conception de Node. On retrouve ainsi trois éléments majeurs :

  • un système de modules mal conçu, avec une distribution centralisée
  • un grand nombre d’API héritées qui doivent être prises en charge
  • un manque de sécurité

Selon son fondateur, Deno résout ces trois problèmes.

Qu’est-ce que Deno ?

Deno est un runtime JavaScript / TypeScript avec des valeurs par défaut sécurisées qui offre une excellente expérience de développement. Comme mentionné plus haut, il est construit sur V8, Rust et Tokio là ou NodeJS est écrit en C++ et utilise libuv.

Il regroupe bon nombre des meilleures technologies open source et offre une solution complète dans un petit fichier exécutable. Le fait d’être écrit en TypeScript signifie qu’il bénéficie des nombreux avantages de ce langage, et ce, même si vous choisissez d’écrire votre code en JavaScript simple. L’exécution de code TypeScript avec Deno ne nécessite pas d’étape de compilation, car il le fait automatiquement pour vous. De plus, les modules Deno peuvent être hébergés n’importe où. La sécurité est intégrée.

deno-imgLes autres différences avec NodeJS

Le projet open source Deno peut vous aider si vous désirer un environnement runtime pour JavaScript plus sécurisé que Node.js ou si vous n’aimez pas le gestionnaire de paquets npm de Node. Cependant, si vous utilisez NodeJS en production, il est encore trop tôt étant donné que le projet est encore en phase de développement. Il faut bien comprendre qu’à l’heure actuelle, Deno est un projet laboratoire renforçant essentiellement NodeJS. Les choses pourraient changer par la suite : Deno V1 est d’ailleurs sorti début mai 2020.

Quoi qu’il en soit, Deno et Node ont globalement les mêmes vocations, mais fonctionnent avec des mécanismes différents pour y parvenir. En effet, Deno utilise les modules ES comme système de modules par défaut, là où NodeJS utilise CommonJS. On observe ainsi une différence notable dans la façon dont sont importés les modules. Deno en construit en Rust afin d’être rapide et comprend une API de plugin. Beaucoup ont directement apprécié la prise en charge native de TypeScript étant donné la montée fulgurante du langage sur le marché. Sa facilité de maintenance et de débogage, ainsi que son adoption par les développeurs front Angular et React en sont pour beaucoup également.

evolution-langages-confidentiels-2019La future alternative à NodeJS ?

La plupart des personnes qui parlent du sujet évoquent très souvent la question suivante : Deno peut-il réellement remplacer NodeJS ? Bien évidemment, il est trop tôt pour donner une réponse. Node se porte très bien, et même si le petit nouveau permet de faire la même chose que NodeJS de manière plus efficace, il est difficile d’imaginer Node disparaître. Aussi, la V1 de Deno semble avoir été publiée avec des failles de sécurité publique alors que la sécurité semblait occuper une place prépondérante au sein du projet Deno. Vous pouvez d’ailleurs retrouver le témoignage très intéressant de Vladimir, expert NodeJS sur jesuisundev.com.

Sources : Le Monde Informatique / Programmez.com / JeSuisUnDev <3 / freecodecamp.org