Non, Microsoft n'a pas abandonné C++, C#, etc. pour réécrire ses outils et logiciels en JavaScript :
Un développeur de la firme fait des précisions

Le , par Patrick Ruiz, Chroniqueur Actualités
Un développeur de Microsoft a, il y a quelques jours, fait une apparition sur Twitter pour passer le message selon lequel Microsoft est en train de réécrire ses outils et logiciels en JavaScript. Le tweet n’a pas manqué de générer de nombreux questionnements sur les objectifs poursuivis par l’entreprise. Il y a en effet que les écarts en matière de performances entre des langages de programmation comme le C++ et JavaScript sont importants pour ne pas appeler à une telle posture. Mais 280 caractères peuvent s’avérer très insuffisants pour traduire le fond d’une pensée. Sean Thomas Larkin a fait une nouvelle sortie pour apporter des précisions.

L’entreprise n’est pas en train de laisser tomber tous les autres langages pour JavaScript comme le laissait penser le précédent message de Larkin : « je n'ai jamais été capable de le dire jusqu'à maintenant. Eh bien, en fait, tout Office 365 est en train d'être complètement réécrit (et c'est presque terminé) dans ce petit langage de script appelé #JavaScript. Et Skype, et Microsoft Teams, et Visual Studio Code, et tout le protocole de débogage de Microsoft Edge (au lieu de C ++). »

« Nous ne sommes pas en train de laisser tomber C++, C# ou tout autre langage, API et outils dont nous faisons usage au sein de Microsoft », écrit-il. À la réalité, JavaScript est beaucoup plus utilisé par les équipes de développement de Microsoft pour monter des interfaces utilisateur. À propos de la suite bureautique Office 365 par exemple, Larkin indique que Microsoft s’appuie sur le framework React Native (Windows) pour l’UI, mais pas dans son entièreté. « Les API et services continuent d’être développés en C++, C# ou tout autre langage jugé le plus approprié », précise-t-il. Même son de cloche pour le moteur de rendu EdgeHTML que Larkin dit être développé en C++ dans sa quasi-totalité. Là encore, JavaScript revient pour certains éléments d’interface utilisateur en s’appuyant sur React ou webpack.


Pourquoi le choix de JavaScript pour le développement d’interfaces utilisateur ?

Parce que cette approche permet de mettre le pied dans pratiquement toutes les maisons (entendez ici plateformes). Il y a en effet que le langage JavaScript est vu comme le langage de demain parce qu’il bénéficie d’un vaste écosystème. Sur un PC ou sur un ordinateur monocarte comme le Raspberry Pi on peut lancer un navigateur web. Or, JavaScript est « la star » sur ces derniers, ce qui veut dire qu’avec des compétences en développement web ces plateformes constituent des bastions qu’on peut conquérir. Ajoutez des composants comme les WebView à la sauce et il est possible de mettre sur pied une application pour Android et iOS sans compétence extrêmement pointues en déveleppement pour ces systèmes d'exploitation. Maintenant, quand on connaît les possibilités d’interfaçage de JavaScript avec des langages comme C++ on ne peut qu’en profiter comme Microsoft.

Source : Twitter

Et vous ?

Que pensez-vous de l’approche adoptée par Microsoft ?

Quels pourraient être les bénéfices pour toutes les parties prenantes de l’univers du logiciel Microsoft ?

Voir aussi :

Quel est l'intérêt d'écrire ou réécrire un logiciel en JavaScript ? Partagez votre expérience

Excel : Microsoft ajoute la possibilité d'écrire des fonctions personnalisées en JavaScript, mais également des fonctions d'apprentissage automatique

Hyperapp, une bibliothèque JavaScript de 1 ko pour la création d'applications Web front-end, en quoi diffère-t-elle des bibliothèques existantes ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de ijk-ref ijk-ref - Membre averti https://www.developpez.com
le 15/06/2018 à 5:34
Citation Envoyé par Marco46 Voir le message
Tu peux mais c'est de l'overkill. Tu as seulement besoin d'une fonction de validation.
Pour moi l'overkill c'est surtout s'amuser à perdre inutilement plus de 20% de puissance pour des vérifications de types à l'exécution et se rajouter de potentiels ambiguïtés et bugs facilement évitables avec des vérifications de type à la compilation.
Avatar de Cxx-waves Cxx-waves - Nouveau membre du Club https://www.developpez.com
le 15/06/2018 à 8:51
s'amuser à perdre inutilement plus de 20% de puissance pour des vérifications de types à l'exécution et se rajouter de potentiels ambiguïtés et bugs facilement évitables avec des vérifications de type à la compilation
Passons outre ce petit troll du dredi matin.

Réécrire Office en javascript permet :
  1. de proposer le soft via le web
  2. de proposer la même version en soft (electron, etc)
  3. de décrire l'interface en html/CSS

On en dira ce qu'on veut, mais aujourd'hui pour faire des interfaces simplement, ce sont les moteurs de rendu web qui sont les plus pertinents : interface avec un design sur mesure, possibilité de dyamiser le tout, nombre de personnes connaissant le js, ...
Donc développer des softs en JS pour bureau ne me paraît pas étonnant.

Après, le JS reste un langage assez ignoble (mon humble avis), avec ses nombreux défauts. Les langages bas niveau (relativement) tels que C, C++, C# et autres Java vont rester majoritaires, notamment parce qu'ils permettent de créer des exécutables assez légers (avec Electron on se trimballe un moteur de rendu par logiciel), qui prennent beaucoup moins de place en mémoire (bon ça dépend, mais si mon éditeur de text pesait aussi lourd que Chrome pour éditer un fichier, je serais assez énervé) et sont plus rapides/réactifs.

Mais bon, parfois un programme écrit en JS peut être beaucoup plus rapide qu'un petit soft écrit en C-- (C avec des classes).
Avatar de Sodium Sodium - Membre éprouvé https://www.developpez.com
le 15/06/2018 à 8:51
C'est beaucoup, beaucoup, beaucoup trop long. Le simple fait d'exposer tes méthodes te prend la moitié de l'écran. Une classe c'est un moule à objet, c'est pas une lib.
Laisse moi devenir, tu fais partie de ces codeurs qui se prennent pour des cadors parce qu'ils travaillent sous VIM ?
Avatar de crodilus crodilus - Membre régulier https://www.developpez.com
le 15/06/2018 à 9:20
Citation Envoyé par Sodium Voir le message
Un code court ça ne se compte pas en nombre de lignes brutes mais en nombre de lignes par fonctions / méthodes.
Un code court c'est des classes de maximum 10 méthodes qui exécutent 1 à grand maximum 10 instructions.

Je serais ravi de voir des exemples de gros programmes procéduraux propres et maintenables.
En PHP il y a WordPress qui est très peu orienté objet et c'est un incroyable foutras avec des classes qui font des milliers de lignes, totalement illisibles.

Un code bien écrit est un code qui nécessite très peu de documentation, c'est à dire un code factorisé en petites classes qui font une chose et dont on comprend immédiatement ce qu'elle fait en lisant son nom.
Un code constitué de blocs qui font 2-3 lignes a rarement besoin d'être commenté.

Je n'ai jamais vu un Troll pareil dans un forum informatique. Tu sors de quelle planète franchement ? Tu fais du cobol objet ? Du html 1.0 avec du ColdFusion ?

Tu peux faire des choses dégueulasses avec n'importe quel langage ! Que ça soit du JS du C++ du C# ... C'est quoi cette idée que c'est impossible de faire du propre en procédurale ? Tu es un POO Fanboy ? Du moins si tu l'étais tu ne cracherais pas sur javascript, tu es un Fanboy des classes !

Tu peux être rassuré M$ n'abandonne pas C# et C++ ils vont continuer à utiliser le paradigme des CLASSES !

Open your mind my friend and the world will be beautifull
Avatar de LapinGarou LapinGarou - Membre confirmé https://www.developpez.com
le 15/06/2018 à 9:27
s'amuser à perdre inutilement plus de 20% de puissance pour des vérifications de types à l'exécution et se rajouter de potentiels ambiguïtés et bugs facilement évitables avec des vérifications de type à la compilation
Je suis tout à fait d'accord avec ça, dans les langages non typés c'est incontournable pour éviter des erreurs et ne pas mettre des try catch partout... Non ??!! Les humains ne codent pas tout sans jamais aucune erreur que je sache... même parmis une même entreprise, voire team.
Donc vérifications, donc plus de code, donc moins vite.
Mais bon Microsoft est une entreprise, et le but d'une entreprise en économie est de faire de l'argent, donc c'est normal. Tant qu'on ne voit pas la différence entre un clic droit en C++ à 0.02sec et un clic droit en js en 0.03sec...
Avatar de Bono_BX Bono_BX - Membre confirmé https://www.developpez.com
le 15/06/2018 à 9:41
@Cxx-waves: ta réponse est assez subjective, à mon avis. Je me permets de te donner un point de vue légèrement différent
Citation Envoyé par Cxx-waves Voir le message
de proposer le soft via le web
C'est déjà le cas, avec Office 365 ; mais je t'accorde que quitte à faire du web, c'est mieux d'être en full web.
de proposer la même version en soft (electron, etc)
Là par contre, je ne suis pas d'accord, quitte à faire du desktop, autant ne pas faire du web et utiliser une techno plus adaptée. Voulais-tu plutôt parler du cross-platform ?
de décrire l'interface en html/CSS
Ca, c'est un fait, pas un argument.

On en dira ce qu'on veut, mais aujourd'hui pour faire des interfaces simplement, ce sont les moteurs de rendu web qui sont les plus pertinents : interface avec un design sur mesure, possibilité de dyamiser le tout, nombre de personnes connaissant le js, ...
Donc développer des softs en JS pour bureau ne me paraît pas étonnant.
Bon, là, je ne vais pas discuter, c'est très subjectif et ça dépend beaucoup des compétences de chacun. Mais je connais pas mal de "vieux" développeurs qui regrettent le ... WinForms ! En effet, pour eux, c'est ce qu'il y a de plus simple et fiable pour développer des interfaces graphiques. Et honnêtement, suivant le niveau d'exigence que tu te fixes, ce n'est pas forcément faux.

Mais bon, parfois un programme écrit en JS peut être beaucoup plus rapide qu'un petit soft écrit en C-- (C avec des classes).
L'OBJET VAINCRA !!!!! (dixit un type qui fait aussi de la programmation fonctionnelle )
Avatar de Bono_BX Bono_BX - Membre confirmé https://www.developpez.com
le 15/06/2018 à 9:45
Citation Envoyé par LapinGarou Voir le message
Je suis tout à fait d'accord avec ça, dans les langages non typés c'est incontournable pour éviter des erreurs et ne pas mettre des try catch partout... Non ??!! Les humains ne codent pas tout sans jamais aucune erreur que je sache... même parmis une même entreprise, voire team.
Donc vérifications, donc plus de code, donc moins vite.
Ce n'est pas qu'une question de robustesse du code, tu as aussi une question d'allocation mémoire, qui est bien plus efficace dans les langages typés.
Avatar de Sodium Sodium - Membre éprouvé https://www.developpez.com
le 15/06/2018 à 9:59
Je n'ai jamais vu un Troll pareil dans un forum informatique. Tu sors de quelle planète franchement ? Tu fais du cobol objet ? Du html 1.0 avec du ColdFusion ?
Du PHP sous Symfony et de l'Angular 6 (en TypeScript) principalement.

Tu peux faire des choses dégueulasses avec n'importe quel langage !
Et tu peux te tuer en voiture même en mettant la ceinture ... ce n'est pas un argument valable pour ne pas la mettre.

C'est quoi cette idée que c'est impossible de faire du propre en procédurale ?
Ce n'est pas impossible ... tant que l'application est très simple.
Avatar de SimonDecoline SimonDecoline - Membre éprouvé https://www.developpez.com
le 15/06/2018 à 10:55
Citation Envoyé par Patrick Ruiz Voir le message
Maintenant, quand on connaît les possibilités d’interfaçage de JavaScript avec des langages comme C++ on ne peut qu’en profiter comme Microsoft.
Justement, j'aimerais bien savoir comment on peut interfacer JS/C++. Parce que les C++ Addons ou la N-API de node, c'est franchement de la préhistoire par rapport aux outils d'interfaçage Python/C++ comme boost python ou pybind11.
Avatar de grunk grunk - Modérateur https://www.developpez.com
le 15/06/2018 à 11:05
Que pensez-vous de l’approche adoptée par Microsoft ?
Peros j'ai déjà eu à écrire des UI en :
- HTML/CSS/JS
- QT
- MFC
- Swing
- JavaFx
- Android

et très clairement le combo html/css est le plus facile à mettre en oeuvre dès qu'on à besoin de personnaliser son UI. On peut aller très loin sans difficulté particulière , là ou d'autre demanderais des surcharge de classe et autre joyeuseté.

Pas étonnant donc que l'accent soit mit sur cette techno quand c'est possible pour réaliser des UI.
Contacter le responsable de la rubrique Accueil