International Essays

Des nouveautés partout : lancement de la version 14.3 de Wolfram Language et Mathematica

5 août 2025
Article original

C'est une version majeure

La version 14.2 a été lancée le 23 janvier 2025. ​Aujourd’hui, un peu plus de six mois plus tard, nous lançons la version 14.3. Et malgré sa désignation .x modeste, il s’agit d’une version majeure, avec de nombreuses nouvelles fonctionnalités importantes et mises à jour, en particulier dans les domaines essentiels du système.
Je suis particulièrement heureux de pouvoir annoncer que, dans cette version, nous proposons un nombre exceptionnellement élevé de fonctionnalités attendues depuis longtemps. Pourquoi ne sont-elles pas arrivées plus tôt ? Eh bien, elles étaient difficiles à réaliser, du moins selon nos normes. Mais désormais, elles sont là, prêtes à être utilisées par tout le monde.
Ceux qui ont suivi nos révisions de conception logicielle diffusées en direct (42 heures depuis la version 14.2) peuvent se faire une idée des efforts que nous investissons pour concevoir les choses correctement. En fait, nous fournissons régulièrement ce type d’effort depuis près de quatre décennies : depuis que nous avons commencé à développer la version 1.0. Et le résultat est, selon moi, quelque chose de totalement unique dans le monde du logiciel : un système cohérent et homogène de bout en bout, qui a maintenu sa compatibilité pendant 37 ans.
C’est un système très vaste maintenant, et même moi, il m’arrive parfois d’oublier certaines des choses extraordinaires qu’il peut faire. Mais ce qui m’aide désormais régulièrement à ce sujet, c’est notre Notebook Assistant, sorti à la fin de l’année dernière. Si j’essaie de comprendre comment faire quelque chose, il me suffit simplement de taper une description vague de ce que je veux dans le Notebook Assistant. Notebook Assistant est alors étonnamment efficace pour « clarifier » ma demande et produire des éléments pertinents de code Wolfram Language.
J’étais souvent trop vague pour que ce code soit exactement ce que je voulais. Mais il me met presque toujours sur la bonne voie et, avec de petites modifications, il finit par être exactement ce dont j'ai besoin.
C’est un flux de travail très efficace, rendu possible grâce à la combinaison de l’IA la plus récente avec les caractéristiques uniques de Wolfram Language. Je pose une question vague. Notebook Assistant me fournit un code précis. Mais l’élément crucial, c’est que ce code n’est pas un code de langage de programmation, c’est un code de langage computationnel en Wolfram Language. Un code spécifiquement conçu pour être lu par des humains et pour représenter le monde de manière computationnelle au niveau le plus élevé possible. L’IA va se comporter de la manière heuristique propre aux IA. Mais lorsque vous sélectionnez le code Wolfram Language qui vous convient, vous obtenez quelque chose de précis sur lequel vous pouvez vous appuyer et construire quelque chose.
Il est incroyable de constater à quel point la cohérence de la conception de Wolfram Language est importante à de nombreux égards. C’est ce qui permet aux différentes facettes du langage d’interagir de manière si fluide. C’est aussi ce qui facilite l’apprentissage de nouveaux domaines du langage. Et, de nos jours, c’est également ce qui permet aux IA d’utiliser efficacement le langage, en y faisant appel comme à un outil, tout comme le font les humains.
Le fait que Wolfram Language soit si cohérent dans sa conception, et qu’il intègre autant de fonctionnalités, a une autre conséquence : ça signifie qu’il est facile d’y ajouter des éléments. Et au cours des 6 dernières années, plus de 3 200 fonctions additionnelles impressionnantes ont été publiées dans Wolfram Function Repository. Et, oui, un certain nombre de ces fonctions pourraient finir par évoluer en véritables fonctions intégrées, parfois après une décennie ou plus. Mais ici et maintenant, Notebook Assistant les connaît sous leur forme actuelle, et peut automatiquement vous montrer où elles pourraient s’intégrer dans ce que vous êtes en train de faire.
D’accord, mais revenons à la version 14.3, où il y a beaucoup à dire…

Passage au sombre : l’arrivée du mode sombre

J’ai commencé à utiliser des ordinateurs avec des écrans en 1976. À cette époque, chaque écran était noir, et le texte affiché était blanc. En 1982, lorsque les ordinateurs de type « stations de travail » sont apparus, la tendance s’est inversée et j’ai commencé à utiliser des affichages qui ressemblaient davantage à des pages imprimées, avec du texte noir sur fond blanc. Et c’est ainsi que les choses ont fonctionné, pendant plusieurs décennies. Puis, il y a un peu plus de cinq ans, le « mode sombre » a commencé à devenir populaire, et on est revenu aux écrans typiques des années 1970, bien sûr maintenant en couleur, avec une résolution bien plus élevée, etc. Nous proposons des « styles mode sombre » dans les notebooks depuis longtemps. Mais désormais, avec la version 14.3, nous offrons une prise en charge complète du mode sombre. Et si vous configurez votre système en mode sombre, alors dans la version 14.3, tous les notebooks s’afficheront automatiquement en mode sombre par défaut :
Vous pourriez penser : n’est-ce pas plutôt trivial de configurer le mode sombre ? Il suffit simplement de changer le fond en noir et le texte en blanc, non ? Eh bien, en réalité, il y a bien, bien plus que cela. Et au final, c’est un défi pour l’interface utilisateur, et algorithmique, assez complexe, que nous avons maintenant résolu de manière très élégante dans la version 14.3, je pense.
Voici une question simple : que doit-il arriver à un tracé lorsque vous passez en mode sombre ? Vous souhaitez que les axes deviennent blancs, mais que les courbes conservent leurs couleurs (sinon, qu’arriverait-il au texte qui fait référence aux courbes selon leur couleur ?). Et c’est exactement ce qui se passe dans la version 14.3 :
In[]:=
Plot[{Sin[x],Cos[x],Tan[x]},{x,0,10}]
In[]:=
Plot[{Sin[x],Cos[x],Tan[x]},{x,0,10}]
Inutile de préciser qu’un point délicat est que les couleurs des courbes doivent être choisies de façon à être agréables à la fois en mode clair et en mode sombre. Et en fait, dans la version 14.2, lorsque nous avons « rafraîchi » nos couleurs par défaut pour les tracés, nous l’avons fait en partie précisément en prévision du mode sombre.
Dans la version 14.3 (comme nous en discuterons ci-dessous), nous avons continué d’améliorer les couleurs des graphiques, en couvrant de nombreux cas complexes, et en veillant toujours à prendre en compte le mode sombre ainsi que le mode clair :
In[]:=
ArrayPlot3D[Total[CellularAutomaton[<|"Dimension"3,"GrowthCases"{1,2,3}|>,{{{{1}}},0},15]]]
In[]:=
ArrayPlot3D[Total[CellularAutomaton[<|"Dimension"3,"GrowthCases"{1,2,3}|>,{{{{1}}},0},15]]]
Mais les graphiques générés par le calcul ne sont pas le seul type d’élément affecté par le mode sombre. Il y a aussi, par exemple, une multitude d’éléments d’interface utilisateur qui doivent tous être adaptés pour bien apparaître en mode sombre. Au total, des milliers de couleurs sont concernées, devant toutes être traitées de façon cohérente et esthétique. Et pour cela, nous avons finalement inventé toute une gamme de méthodes et d’algorithmes (que nous rendrons à terme disponibles à l’extérieur sous forme de paquet).
Et le résultat, par exemple, est que quelque chose comme le notebook peut essentiellement être configuré automatiquement pour fonctionner en mode sombre :
Mais que se passe-t-il en coulisses ? Inutile de préciser qu’il existe une représentation symbolique impliquée. En général, vous spécifiez une couleur, par exemple avec
RGBColor
[1,0,0]
. Mais dans la version 14.3, vous pouvez utiliser une représentation symbolique à la place telle que :
In[]:=
LightDarkSwitched[Red,LightBlue]
En mode clair, ça s’affichera en rouge ; en mode sombre, en rose :
In[]:=
Style["Text",25,LightDarkSwitched[Red,Pink]]
Et oui, il bascule en mode sombre :

Comment cela se rapporte-t-il à l’IA ? Connexion avec le monde agentique

Faites simplement un ajustement là-dessus !

Les cartes deviennent plus belles

Tout a un mode sombre :

Un rouge amélioré : présentation des nouvelles couleurs nommées

Encore plus d’améliorations pour les graphiques

Algèbre non commutative

Dessinez sur cette surface : l’annotation visuelle des régions

Calcul et visualisation de la courbure

Géodésiques et planification de trajectoire

Géométrie à partir de la subdivision

Ou en 3D :

Réparez ce maillage !

Coloriez cette molécule, et bien plus encore

Et voici une version 3D :

Les protéines se replient, localement

On voit maintenant les structures ensemble :

Est-ce que ce système d’ingénierie va-t-il réellement fonctionner ?

Fluidification de nos flux de travail de systèmes de contrôle

Disposition hyperbolique dans la mise en page des graphes

Les dernières avancées en calcul infinitésimal : transformées de Hilbert, fonctions de Lommel

Davantage d’options dans le monde des matrices

With[ ] passe à plusieurs arguments

Cyclic[ ] et les listes Cyclic

Nouveauté dans Tabular

Mise en forme du tabulaire

Classement sémantique, extraction de caractéristiques textuelles et tout le reste

Fonctions compilées pouvant être mises en pause et reprises

Calcul externe encapsulé plus rapide et plus fluide

Des notebooks pour les présentations : le défi du format d’aspect pour les images résolu

Encore plus de peaufinage pour l’interface utilisateur

Markdown !

Nouveau dans la documentation web : barre latérale de navigation

Et encore plus…