Moravia, entreprise tchèque qui a
racheté la branche
HP calculatrices pour la rentrée 2021, nous offre enfin aujourd'hui avec un semestre de retard la mise à jour
HP Prime qu'elle nous avait
promise pour l'automne 2022.
Rappelons que la
HP Prime est un outil mathématique d'un intérêt pédagogique exceptionnel. Ses 3 touches physiques dédiées
Symb
,
Plot
et
Num
permettent à tout moment de basculer l'affichage entre des vues algébriques, graphiques et numériques, et ainsi avancer dans un problème sous diverses représentations. De façon similaire ses touches
⌂
et
CAS
permettent de basculer entre le moteur de calcul flottant et le moteur de calcul
CAS pour des résultats en écriture exacte ou même littérale.
Précisons que les développeurs de
HP calculatrices avec parfois leurs décennies d'expérience dédiée à ces produits s'en sont quasiment tous allés. À notre connaissance il ne reste plus que 2 développeurs à être passés chez
Moravia :
- Bernard Parisse pour le moteur de calcul formel (CAS) et les applications qui y sont fortement liées (Géométrie)
- Jeff Tupper alias jte, développeur de l'application de Graphiques avancés, et ayant donc désormais la charge de tout le reste
Précisons que la mise à jour ne concerne qu'une partie de l'écosystème
HP Prime :
- le firmware pour calculatrices HP Prime G1 et G2
- la calculatrice HP Prime virtuelle (mais uniquement pour Windows, pas de mise à jour des éditions Mac, Linux, Android ou iOS)
- le logiciel de connectivité HP Prime (mais uniquement pour Windows, pas de mise à jour de l'édition Mac)
Précisément, nous passons donc de la version
2.1.14603 compilée le
2 décembre 2021 à la version
2.1.14730 compilée le
13 avril 2023, et clairement indiquée dans les logiciels comme n'étant plus développée par
HP :
Quasiment 15 mois d'attente donc pour seulement 127
commits entre temps, cela peut certes paraître très peu
(2 commits par semaine en moyenne). Mais le nombre de
commits peut varier d'un développeur à un autre en fonction de ses propres habitudes de travail, et les commits n'ont pas tous la même valeur en fonction de leur taille et de si ils apportent des correctifs, nouveautés mineures ou nouveautés majeures. Donc avant de juger, commençons par regarder plus en détails les nouveautés.
Sommaire :Commençons par l'application
Fonction. Dans certains cas, la recherche graphique de points d'intersections entre deux graphes de fonctions fournissait des résultats surprenants.
Prenons par exemple les 2 fonctions d'expressions suivantes :
Si l'on fait appel au moteur
CAS, nous découvrons que nous avons ici 1 point d'intersection, d'abscisse approximative 0,31.
Par contre, si l'on fait appel à la recherche de poins d'intersection depuis la vue graphique
(touche Plot
), nous pouvons en trouver deux, le deuxième d'abscisse approximative 266,63.
Ce dernier point d'intersection est donc faux mais là n'était pas problème. La vue graphique fait en effet appel non pas au moteur
CAS mais au moteur de calcul numérique qui code les nombre sur un nombre fini de bits, précisément 38 bits permettant jusqu'à 12 chiffres significatifs en écriture décimale. Il est normal qu'il y ait des erreurs de ce genre dans ce contexte, lorsque ce codage ne permet plus de distinguer des valeurs trop proches, et c'est valable pour tous les modèles de calculatrices graphiques peu importe leur marque.
Non le problème était que normalement, on s'attend à ce que cet outil commence par rechercher un point d'intersection au voisinage de l'abscisse courante. Or ici, à peine le curseur était-il positionné un peu après x=0,31 que la calculatrice retournait systématiquement le point d'intersection faux pourtant beaucoup plus éloigné.
Jeff Tupper vient de corriger le problème avec la dernière mise à jour. Le code de recherche d'un point d'intersection a été revu et trouve maintenant correctement le bon point d'intersection lorsque l'on est dans son voisinage, aussi bien à gauche qu'à droite.
Passons maintenant à la remarquable application
Graphique 3D de la
HP Prime.
Par exemple prenons la fonction d'expression
$mathjax$FZ1(X,Y)=\frac{COS\left(x^2+Y^2\right)}{\sqrt{X^2+Y^2}}$mathjax$
.
À partir de sa vue graphique
(touche Plot
), il t'était possible de zoomer ou dézoomer à l'aide des touches
+
ou
-
.
Sauf que les nouvelles bornes de la fenêtre graphique obtenue suite à ces manipulations n'étaient pas sauvegardées, comme tu pouvais le constater en les consultant via
Shift
Plot
. C'est-à-dire que dès que tu changeais de vue, le zoom que tu avais peut-être soigneusement effectué était perdu.
Jeff Tupper a ici encore corrigé le problème, les nouvelles bornes de fenêtre 3D obtenues suite à des manipulations effectuées sur la vue graphique sont maintenant correctement sauvegardées.
Nous passons maintenant à l'application de géométrie dynamique, soit au travail concernant plus précisément
Bernard Parisse.
Lorsque l'on y créait des paraboles, leur branches étaient tronquées sur la représentation graphique de la vue
Plot
, n'étant pas prolongées jusqu'aux bords de l'écran contrairement aux représentations d'autres objets.
C'est maintenant corrigé !
Le résultat de certains appels pouvait être différent selon qu'il était affiché sur la vue numérique
(touche Num
) ou la vue graphique
(touche Plot
).
Créons par exemple un quadrilatère ABCD qui ici sera un rectangle.
Lorsque appelée depuis la vue numérique, la fonction
is_parallelogram() retournait 3, indiquant que le quadrilatère étant non seulement un parallélogramme mais également un rectangle.
Mais sur la vue graphique le résultat du même appel était tout autre, proche de 0...
C'est ici aussi corrigé sur la dernière version.
Toujours dans l'application
Géométrie, lorsque l'on créait des fonctions à partir d'une équation cartésienne et que l'on en demandait ensuite l'équation, parfois la réponse n'était pas trouvée, pouvant être vide ou encore contenir un message d'erreur :
C'est maintenant corrigé !
De façon similaire lorsque l'on créait des fonctions implicites et que l'on en demandait ensuite l'équation, le résultat n'était pas toujours sous la forme à laquelle on aurait pu s'attendre :
C'est maintenant corrigé également !
Retournons au travail de
Jeff avec cette fois-ci l'application
Stat 1Var.
Rappelons que la
HP Prime permet de configurer très librement le format d'affichage numérique, offrant même à l'utilisateur la possibilité de choisir parmi 2 séparateurs décimaux et même 4 séparateurs de milliers.
Mais le format choisi par l'utilisateur n'était pas systématiquement respecté partout. Par exemple pour l'application
Stats 1Var justement, si l'on définissait une transformation de série statistique dans la vue
Symb
, cette même définition n'était pas affichée sous le même format sur la vue
Plot
, le choix du séparateur décimal étant certes respecté mais celui du séparateur de milliers ignoré :
C'est bon désormais,
Jeff a corrigé.
Restons sur les transformations de séries statistiques. Une saisie trop longue pouvait faire planter la calculatrice lorsqu'affichée sur la vue graphique
Plot
.
C'est maintenant corrigé.
Voici maintenant l'application
Inférence.
Choisissons le test d'adéquation du χ².
Aussi bien dans la table de saisie que dans la table des résultats, le degré de liberté était mis par défaut au nombre d'observations
N.
De façon plus pertinente, le degré de liberté est maintenant mis par défaut à
N-1.
Passons à l'application de résolution numérique d'équations,
Résoudre.
Lorsque l'on y saisit une équation à plusieurs variables, par défaut toutes sont considérer comme des inconnues à résoudre. Mais la vue numérique
Num
liste les variables et te permet :
- de décocher les variables qui ne sont pas des inconnues et ne sont donc pas à résoudre
- d'en préciser les valeurs
Problème, il y avait un vilain bug qui se déclenchait lorsque le nombre de variables prenait plus d'une page-écran.
Si l'on décochait/cochait des variables sur la 2
è page l'affichage avait a priori l'air normal...
Sauf qu'il suffisait de sortir et revenir sur la vue en question pour se rendre compte que ça n'allait pas du tout, les coches ayant en fait été appliquées aux seules variables occupant la même position sur la 1
ère page !
C'est corrigé sur la dernière version.
Reprenons la configuration de l'écriture décimale, mais cette fois-ci dans le cadre de l'application
Explorateur.
Optons donc pour une écriture utilisant la virgule comme sépérateur décimal. Dans ce cas la virgule ne peut plus être utilisée comme séparateur lors de l'appel de fonctions à plusieurs paramètres, au profit du point virgule.
Par exemple dans ce contexte pour obtenir
$mathjax$\binom{2}{6}$mathjax$
on ne saisira plus
COMB(6,2)
mais
COMB(6;2)
.
Les appels automatiques de fonctions effectués depuis les diverses interfaces en tiennent normalement compte... sauf exception.
Et justement, dans ce contexte, il y avait un problème avec l'interface d'exploration de fonctions affines et fonctions polynomiales du 3
è degré, l'ordonnée à l'origine étant remplacée par un message d'erreur.
C'est corrigé sur cette dernière version.
Le système
HP Prime est d'une richesse tellement exceptionnelle, que nous avons déjà vu plusieurs fois des utilisateurs regretter que l'ensemble de ses possibilités n'étaient pas entièrement documentées dans le manuel. Mais crois-le ou pas, l'inverse existe également...
Regardons du côté de l'application
Suite. Selon le manuel, une variable système
SeqPlot est censée nous permettre de configurer la vue graphique
Plot
, une valeur de 1 indiquant par exemple une représentation en toile
(dite également en escalier ou escargot).
Sauf que problème,
SeqPlot n'était pas listée dans les variables système de l'application
Suite. C'est même pire que cela,
SeqPlot n'existait même pas, toute saisie manuelle y faisant appel déclenchant une erreur.
Avec cette mise à jour, la variable
SeqPlot a enfin été ajoutée avec le comportement documenté.
Un gros défaut de la
HP Prime c'est son clavier, nombre de manipulations élémentaires nécessitant de taper 2, 3 ou parfois même 4 touches.
Par exemple pour terminer la saisie d'une ligne de programme en langage
HPPPL, il faut saisir un point virgule puis aller à la ligne, et donc taper
ALPHA
+
Enter
. C'est beaucoup quand c'est à faire quasiment pour chaque ligne d'un programme.
On peut également citer l'affectation de variables, nécessitant au choix la saisie de l'opérateur
►
avec
Shift
EEX
, ou bien encore pire de l'opérateur
:=
avec
ALPHA
-
Shift
.
.
Justement le moteur
CAS souffrait également du défaut dans une moindre mesure, puisque nécessitant souvent la saisie de l'opérateur égal avec
Shift
.
, non seulement pour les affectations mais également pour les équations.
Et bien après bientôt 10 ans on commence enfin à s'attaquer à ce lourd problème.
Jeff vient en effet de rajouter l'opérateur égal dans les onglets tactiles de bas d'écran de l'historique de calcul
CAS, te permettant désormais sa saisie d'un unique mouvement de doigt.
Le
changelog officiel annonçait également une amélioration de la résolution d'inéquations polynomiales du 3
è degré.
En effet plusieurs exemples très problématiques avaient été communiqués :
Sauf que, nuance, ces problèmes ne concernent que l'ancien modèle
HP Prime G1.
Les développeurs ont dû confondre et tester sur
HP Prime G2, constater qu'il n'y avait aucun problème, et déduit qu'ils avaient corrigé le problème sans le faire exprès en touchant à autre chose.
Sauf que non, le problème n'est malheureusement pas résolu, même après mise à jour la
HP Prime G1 continue à boucler indéfiniment ou planter sur ces exemples.
La touche boîte à outils permet entre autres d'accéder à un catalogue de toutes les fonctions de la calculatrice. Une info-bulle avec des statistiques de la liste est également consultable en touchant le
i dans le coin supérieur droit de la liste.
Les événements tactiles ne semblaient toutefois pas bien gérés dans ce cas. Dans certaines conditions, l'info-bulle, affichée justement par-dessus la liste, était difficile à garder ouverte
(se refermant aussitôt), et parfois difficile à garder fermée
(se rouvrant de façon intempestive).[/warning]
Jeff s'est occupé du problème et en a profité pour apporter des améliorations visuelles :
- déplacement de l'info-bulle afin qu'elle ne masque plus la liste
- alignement de son contenu
De plus nouveauté, le contenu de l'info-bulle peut désormais être copié avec
Shift
View
puis collé avec
Shift
Menu
.
La
HP Prime dispose d'une formidable table de caractères accessible via
Shift
Vars
, avec des alphabets de tout le tour de la planète.
Sur la seule calculatrice virtuelle, lorsque l'on tapait la moindre touche du clavier de l'ordinateur alors que cette fenêtre était ouverte, le drapeau occupait s'activait et le logiciel plantait.
C'est corrigé.
Justement, taper une touche dans ce contexte lance la de saisie
pinyin, méthode de saisie phonétique des caractères chinois en utilisant l'alphabet latin.
Sauf qu'il y avait ici un vilain problème d'interface. Tapons par exemple
A pour aller aux premières syllabes
pinyin correspondantes. Les syllabes
pinyin étaient bizarrement toutes suffixées du chiffre 1. Et justement pour la syllabe
a, il y avait un problème avec les onglets tactiles de bas d'écran, le choix 1 en étant absent et le choix 2 y figurant en double.
La combinaison indiquée
A2 affichait ainsi ce qui correspondait à
A1, et les deux combinaisons
A2 n'affichaient pas la même chose :
Un problème généralisé,tous les autres choix de syllabes
pinyin souffrant de bizarreries similaires dans leurs onglets tactiles de bas d'écran.
Et bien bonne nouvelle,
Jeff a corrigé tout ça.
Nous n'en avons pas terminé avec la saisie
pinyin.
Tapons
Q pour démarrer une saisie
pinyin, puis changeons d'avis en tapant
B.
Dans ce dernier cas, le défilement arrière était incorrect, ne remontant pas assez loin pour montrer la syllabe sélectionnée.
C'est ici encore corrigé, merci
Jeff.
Les noms de variables sur
HP Prime doivent répondent à diverses règles.
Certains caractères sont interdits en première position, mais permis dans le reste du nom. C'est par exemple le cas des chiffres :
Parlons d'autres caractères :
- les opérateurs non-ASCII (signe moins, exposant 2, etc.)
- les codes de contrôle C1 (Unicode U+0080 à U+009F)
Ces caractères étaient interdits au sein des noms de variables, mais pouvaient dans certaines situations y être acceptés en première position.
Créer de tels noms de variables était impossible sur l'historique de calcul, mais était par exemple possible sur les noms de colonne, par exemple dans les applications de statistiques.
Leur utilisation ensuite dans d'autres applications ou sur l'historique de calcul pouvait se révéler problématique, ne retournant pas les bonnes valeurs ou même les remplaçant par un message d'erreur.
Les règles de nommage ont été corrigés, ces caractères interdit au sein des noms de variables le sont maintenant également en première position.
Le langage
HPPPL (HP Prime Programming Language) dispose de toutes les fonctions nécessaires à la manipulation de chaînes de caractères. Nous pouvons citer par exemple
MID(chaîne,position,longueur)
qui permet d'extraire d'une chaîne de caractères une sous-chaîne :
- démarrant à une position donnée (la première position étant ici numérotée 1)
- et de longueur donnée, paramètre optionnel faisant aller par défaut jusqu'à la fin de la chaîne
Anomalie dont les programmes
HPPPL devaient jusqu'à présent tenir compte, si l'on faisait démarrer la position au-delà de la fin de la chaîne de caractères, la fonction
MID() arrivait à en extraire une chaîne de longueur 1 alors qu'elle aurait dû retourner une chaîne vide.
C'est enfin corrigé, tu n'auras plus besoin de t'embêter à contourner cette anomalie lors de la programmation de tes fonctions de chaînes de caractères.
Gros avantage du langage de programmation
HPPPL, la possibilité de manipuler très facilement des fichiers.
Par exemple :
AFilesB(nom)
permet par simple opération d'affectation, d'écrire des données dans un fichier binaire de nom fourniAFilesB(nom,position,taille)
permet d'en lire les données à partir de la position fournie et pour la taille indiquée
Si cela marchait très bien sur calculatrice physique, il y avait plusieurs problèmes sur ordinateur avec la calculatrice virtuelle. Des crash se produisaient dans les cas suivants :
- lecture démarrant au-delà de la fin du fichier (résultat vide attendu)
- lecture d'un fichier auquel le système refuse les droits d'accès (résultat vide ou message d'erreur attendu)
C'est bon maintenant.
Formidable ajout de l'ultime mise à jour par
HP calculatrices en 2021, les programmes prennent la forme de véritables projets car pouvant intégrer eux-mêmes divers fichiers :
- des fichiers de code pouvant être écrits dans les différents langages de la calculatrice (HPPPL, CAS ou Python) et même interagir entre eux
- des fichiers de données (image JPG ou PNG, données binaires)
Problème ainsi introduit dans le logiciel de connectivité, si l'on supprimait tous les fichiers d'un projet, le menu contextuel continuait malgré tout à proposer la possibilité de renommer, dont le choix plantait alors le logiciel.
C'est corrigé, le choix non pertinent a été supprimé.
Autre problème avec les programmes
HP Prime, lorsque l'on collait du code provenant d'une source externe dans la calculatrice virtuelle ou dans le logiciel de connectivité.
Rappelons que les fichiers de projet
.hpprgm ne sont pas des fichiers texte mais des fichiers binaires.
Or selon la source sur laquelle le code avait été copié, ce dernier pouvait intégrer des caractères spéciaux et notamment des espaces insécables. Les fichiers
.hpprgm ainsi générés étaient inutilisables sur la calculatrice virtuelle ou si transférés sur une calculatrice physique, générant des erreurs de syntaxe qui étaient fort difficiles à comprendre et donc corriger, puisque l'affichage du code ne montrait rien d'anormal.
C'est corrigé, la
HP Prime traite maintenant l'espace insécable ainsi que tous les autres caractères d'espacement comme un espace normal.
La
HP Prime te permet non seulement de coder des programmes, mais également des applications. Les langages utilisés sont les mêmes
(HPPPL, CAS ou Python), c'est juste la forme qui change, les applications ayant droit à une icône de lancement sur l'écran d'accueil, pouvant s'intégrer à l'environnement
HP Prime avec les 3 vues
Symb
,
Plot
et
Num
, prenant alors la forme non pas d'un unique programme occupant la machine mais de plusieurs fonctions ou sous programmes.
Problème avec la calculatrice virtuelle sur ordinateur, si une application lors de son lancement invoquait le terminal, par exemple en y écrivant une ligne avec la fonction
PRINT(), le logiciel plantait.
C'est maintenant corrigé.
Que dire ?
Certainement du travail conséquent de la part de
Jeff Tupper, qui n'avait développé qu'une application
HP Prime isolée et a dû s'auto-former sur le système
HP Prime, clairement le système le plus complexe tous modèles graphiques confondus avec ses très hautes possibilités d'intégration et interactions.
Mais d'un autre côté n'apportant rien de nouveau et ne faisant que corriger des bugs bien mineurs, tout ceci après 15 mois d'attente depuis la mise à jour
Moravia précédente qui était complètement sans le moindre intérêt, ou 2 ans d'attente depuis l'ultime mise à jour
HP calculatrices. C'est très insuffisant, une mise à jour extrêmement décevante.
Pour rendre cet avis plus objectif, prenons en référence le nombre de
commits annuels réalisés sur le projet
HP Prime.
Comme on pouvait s'y attendre on constate bien que
HP a quasiment mis le développement à l'arrêt à compter de 2019, avec le nombre de commits chutant brutalement de plusieurs milliers à :
- 160 en 2019
- 92 en 2020
- 170 en 2021
Avec 127
commits en 2023 nous ne sommes même pas encore au niveau de ce développement
"à l'arrêt", surtout qu'en prime ce nombre de
commits est à diviser par deux car correspondant au travail de 2 années, puisqu'aucune mise à jour n'est sortie en 2022.
La mise à l'arrêt du développement
HP Prime en 2019 en pleine réforme du lycée en France fut une erreur gravissime de la part de
HP (erreur dont HP est hélas coutumier), ayant conduit la
HP Prime à être la dernière machine toute concurrence confondue à obtenir l'application
Python nécessaire, in extremis grâce au travail acharné de
Cyrille de Brébisson juste avant la cession à
Moravia. Cela dégradait déjà grandement l'image du projet.
Moravia a hélas fait le choix d'investir encore moins que
HP dans le développement
HP Prime. Sauf qu'en 2021 nous ne récupérions qu'une application
Python insuffisante dans le contexte scolaire français
(contrairement à l'ensemble de la concurrence pas de bibliothèque matplotlib pour les représentations dans un repère notamment en Physique-Chimie, pas de bibliothèque de tracé à la tortue turtle pour les Secondes...). Et depuis 2021, rappelons que la concurrence ne s'est absolument pas mise en pause. Bref, le retard sur la concurrence que la
HP Prime avait commencé à rattraper en 2021 suite aux efforts surhumains de
Cyrille,
Moravia s'est empressé de le refaire perdre à nouveau, et peut-être cette fois-ci de façon fatale.
Rappelons de plus que contrairement à toute la concurrence, l'application
Python introduite en 2021 est instable, générant nombre de crash de la calculatrice, et que ce problème ne semble pas avoir été adressé avec cette dernière mise à jour.
Rappelons que l'incurie de
Moravia a déjà réussi à faire perdre aux calculatrices graphiques
HP le
marché portugais (2021) ainsi que le
marché australien (2022). Et quand un marché est perdu, il est extrêmement difficile voir impossible de le récupérer, la confiance des utilisateurs et institutions étant durablement entâchée.
À moins que le projet de
Moravia ne se résume à continuer à vendre de plus en plus cher à une niche de fans/collectionneurs/nostalgiques/pigeons comme
SwissMicro,
Moravia doit
immédiatement réagir et
décupler son investissement de développement du projet
HP Prime, afin que
Jeff puisse consacrer davantage de temps et d'énergie au projet, voir même être accompagné d'autres développeurs aux compétences également exceptionnelles. Parce qu'en l'état après 2 ans d'attente, c'est littéralement se moquer du monde.
Il s'agit probablement de notre dernier avertissement sincère, partagé en toute bienveillance même si l'entité en question ne semble en avoir rien à faire, vu le plus grand mépris qu'elle oppose fort incorrectement à la moindre tentative de contact depuis 2018. Il sera bientôt définitivement trop tard pour espérer pouvoir revenir sur le marché français, nous ne pourrons alors plus être que spectateurs et entonner
"c'est la chute finale".
- mise à jour 2.1.14730 pour calcularices HP Prime G1 G2
- logiciel de connectivité HP Prime :
- logiciel d'émulation HP Prime pour ordinateurs :
- appli d'émulation HP Prime pour plateformes mobiles :