par Glycogène » 22 oct. 2024, 12:11
Simplement beaucoup moins d'utilisateurs.
Ces logiciels sont spécialisés, il y a juste qq dizaines de milliers d'utilisateurs dans le monde.
Il y a des quasi monopole. Il y a que 3 concurrents, qui essaient de verrouiller leur clients avec des suites logiciels qui sont moins performantes voire inutilisables si on panache les différents logiciels entre ces 3 concurrents.
De plus, la philosophie des boites qui utilisent ces logiciels sont d'être bien fermées (Intel ou Nvidia ne développent pas leurs puces en opensource), ce qui vaut aussi pour tout ce qui pourrait améliorer les logiciels.
Il n'y a pas d'écosystème où des dizaines d'outils ou méthodes sont mis en open source comme on peut le voir dans le développement web, outils devenant progressivement des standards, qui sont rapidement supportés par tout le monde, amenant une augmentation énorme de l'ergonomie et de la productivité (en automatisant/factorisant tout ce qui est rébarbatif et déterministe).
Du coup chaque boite crée ses propres outils (chacun réinvente l'eau chaude (plutôt tiède) dans son coin) pour pallier à l'absence d'évolution de l'ergonomie des logiciels, avec des formats propriétaires, ne permettant pas d'échanger entre boites autre chose que des infos élémentaires que chacun doit traduire dans son propre format... C'est une perte de temps et une grosse source d'erreur.
Il y a bien des standards pour certains types de données, mais ça n'a quasiment pas évolué depuis 20 à 40 ans selon les formats, ça reste toujours au même niveau, pas de nouveauté permettant une description plus haut niveau.
Exemple de ce qui s'est fait dans le web avec le html.
- Au début, la description de l'apparence d'une page web était décrite par du code contenu dans le même code qui décrit le contenu.
- Puis en 2000 a été publié un standard CSS (élaboré par groupe de travail international et ouvert), permettant de découpler la description du contenu de la description de la mise en forme.
Super, on peut alors générer le code du contenu 1 fois, puis faire varier la mise en forme en changeant juste la description de la mise en forme (qui peut être séparé en plusieurs fichier ou non).
On a gagné 1 niveau de factorisation.
- Progressivement, on s'est retrouvé à gérer pas mal de types de mise en forme (pour ordi, mobile, tablette, écran très large, écran de portable, etc). Mais 95% du code était identique. Ca devenait lourd, car on devait générer plusieurs fois du code presque identique en utilisant un autre langage.
Il est donc apparu des outils/langage qui sont devenus standards, permettant de gérer facilement tous ces types avec le même langage (qui est en fait juste une variante du CSS, mais l'outil génère de vrai CSS à la fin).
On est passé à un 2e niveau de factorisation.
- Ok, on peut décrire la mise en forme et ses différents types avec un seul langage. Mais le nb de types devenait de plus en plus important, parce qu'il fallait aussi s'adapter aux navigateurs, et à leurs différentes versions, qui ne supportent pas toutes les instructions définis dans les standards html et CSS.
Il est donc apparu des outils qui permettent de décrire 1 fois la mise en forme en utilisant les instructions les plus évoluées du CSS, et l'outil génère tout seul les différents types pour les différents navigateurs, en ayant auparavant choisit la liste des navigateurs et versions supportés.
On est passé à un 3e niveau de factorisation.
- C'est cool, mais si on veut supporter tous les navigateurs, ça finit par grossir pas mal le code, ce qui ralentit le chargement d'une page et prend de la mémoire dans le terminal (ordi, et surtout mobile).
Or on peut se permettre de ne pas supporter tous les navigateurs, si un vieux navigateur n'est utilisé que par 0,1% des utilisateurs.
On pourrait mettre à jour régulièrement la liste des navigateurs supportés selon c qu'on estime utile, mais c'est lourd, il y a souvent de nouvelles versions de navigateurs, il ne faut pas se tromper, etc.
Comme on a des stats régulièrement mise à jour sur quel terminal, navigateur et version sont utilisés, il est donc apparu une évolution des outils précédents, permettant de juste indiquer le % d'utilisateurs qui pourront afficher la page web correctement, et en face on a une estimation de la taille du code généré.
On est passé à un 4e niveau de factorisation, il y a déjà 8 ou 10 ans.
Ca a encore surement encore évolué depuis.
Et bien dans les logiciels de microélec, on en est juste au 1er niveau de factorisation depuis 25 ans.
Simplement beaucoup moins d'utilisateurs.
Ces logiciels sont spécialisés, il y a juste qq dizaines de milliers d'utilisateurs dans le monde.
Il y a des quasi monopole. Il y a que 3 concurrents, qui essaient de verrouiller leur clients avec des suites logiciels qui sont moins performantes voire inutilisables si on panache les différents logiciels entre ces 3 concurrents.
De plus, la philosophie des boites qui utilisent ces logiciels sont d'être bien fermées (Intel ou Nvidia ne développent pas leurs puces en opensource), ce qui vaut aussi pour tout ce qui pourrait améliorer les logiciels.
Il n'y a pas d'écosystème où des dizaines d'outils ou méthodes sont mis en open source comme on peut le voir dans le développement web, outils devenant progressivement des standards, qui sont rapidement supportés par tout le monde, amenant une augmentation énorme de l'ergonomie et de la productivité (en automatisant/factorisant tout ce qui est rébarbatif et déterministe).
Du coup chaque boite crée ses propres outils (chacun réinvente l'eau chaude (plutôt tiède) dans son coin) pour pallier à l'absence d'évolution de l'ergonomie des logiciels, avec des formats propriétaires, ne permettant pas d'échanger entre boites autre chose que des infos élémentaires que chacun doit traduire dans son propre format... C'est une perte de temps et une grosse source d'erreur.
Il y a bien des standards pour certains types de données, mais ça n'a quasiment pas évolué depuis 20 à 40 ans selon les formats, ça reste toujours au même niveau, pas de nouveauté permettant une description plus haut niveau.
Exemple de ce qui s'est fait dans le web avec le html.
- Au début, la description de l'apparence d'une page web était décrite par du code contenu dans le même code qui décrit le contenu.
- Puis en 2000 a été publié un standard CSS (élaboré par groupe de travail international et ouvert), permettant de découpler la description du contenu de la description de la mise en forme.
Super, on peut alors générer le code du contenu 1 fois, puis faire varier la mise en forme en changeant juste la description de la mise en forme (qui peut être séparé en plusieurs fichier ou non).
On a gagné 1 niveau de factorisation.
- Progressivement, on s'est retrouvé à gérer pas mal de types de mise en forme (pour ordi, mobile, tablette, écran très large, écran de portable, etc). Mais 95% du code était identique. Ca devenait lourd, car on devait générer plusieurs fois du code presque identique en utilisant un autre langage.
Il est donc apparu des outils/langage qui sont devenus standards, permettant de gérer facilement tous ces types avec le même langage (qui est en fait juste une variante du CSS, mais l'outil génère de vrai CSS à la fin).
On est passé à un 2e niveau de factorisation.
- Ok, on peut décrire la mise en forme et ses différents types avec un seul langage. Mais le nb de types devenait de plus en plus important, parce qu'il fallait aussi s'adapter aux navigateurs, et à leurs différentes versions, qui ne supportent pas toutes les instructions définis dans les standards html et CSS.
Il est donc apparu des outils qui permettent de décrire 1 fois la mise en forme en utilisant les instructions les plus évoluées du CSS, et l'outil génère tout seul les différents types pour les différents navigateurs, en ayant auparavant choisit la liste des navigateurs et versions supportés.
On est passé à un 3e niveau de factorisation.
- C'est cool, mais si on veut supporter tous les navigateurs, ça finit par grossir pas mal le code, ce qui ralentit le chargement d'une page et prend de la mémoire dans le terminal (ordi, et surtout mobile).
Or on peut se permettre de ne pas supporter tous les navigateurs, si un vieux navigateur n'est utilisé que par 0,1% des utilisateurs.
On pourrait mettre à jour régulièrement la liste des navigateurs supportés selon c qu'on estime utile, mais c'est lourd, il y a souvent de nouvelles versions de navigateurs, il ne faut pas se tromper, etc.
Comme on a des stats régulièrement mise à jour sur quel terminal, navigateur et version sont utilisés, il est donc apparu une évolution des outils précédents, permettant de juste indiquer le % d'utilisateurs qui pourront afficher la page web correctement, et en face on a une estimation de la taille du code généré.
On est passé à un 4e niveau de factorisation, il y a déjà 8 ou 10 ans.
Ca a encore surement encore évolué depuis.
Et bien dans les logiciels de microélec, on en est juste au 1er niveau de factorisation depuis 25 ans.