PopChar : 30 ans dans le rétroviseur d'une application Mac

Stéphane Moussie |

30 ans, c’est l’âge remarquable atteint cette année par PopChar, une application Mac facilitant la saisie de caractères spéciaux. Un anniversaire qui est l’occasion pour son créateur, Günther Blaschek, de revenir sur son évolution au long cours.

La version actuelle de PopChar. Cliquer pour agrandir

Tout commence en 1987, quand le docteur en informatique autrichien a besoin de trouver des caractères spéciaux dans la police Symbol :

L’utilitaire Key Caps d’Apple [remplacé par le Visualiseur de clavier dans Mac OS X Panther, ndr] n’était pas très efficace parce que je devais essayer toutes sortes de combinaisons au clavier pour voir quels caractères étaient disponibles.

Étant développeur, j’ai décidé d’écrire un petit utilitaire me permettant de sélectionner des caractères plus facilement. J’ai réalisé cet utilitaire en Turbo Pascal sur un Mac Plus avec 2,5 Mo de mémoire.

La quantité de mémoire étant très limitée, il n’est pas possible de faire tourner plusieurs applications en même temps, à l’exception des « Accessoires de Bureau », de petits programmes pouvant s’afficher par-dessus l’application principale : « J’ai donc créé un Accessoire de Bureau baptisé “Character Map” qui affichait tous les symboles pour une police donnée et permettait de les copier-coller dans un document texte. »

Une des premières versions de PopChar, sur un Mac Plus.

Günther Blaschek fait ensuite évoluer son programme en une extension du système (INIT) afin de pouvoir le laisser constamment à l’écran et insérer directement un caractère. Le nom définitif de l’application jaillit dans son esprit comme les caractères à l’écran (« CHARacters POPped up ») : PopChar — qu’il prononce « pop car », étant germanophone.

En même temps que l’informaticien met à jour son application pour prendre en charge les moniteurs couleurs, passer à Think Pascal ou bien encore résoudre des problèmes liés à Microsoft Word, il la distribue gratuitement au gré du bouche-à-oreille. Il demande uniquement en échange aux utilisateurs de lui envoyer des cartes postales et des timbres. « Je ne peux pas dire combien j’en ai reçu au cours de toutes ces années », se souvient-il.

En 1995, il se rend compte qu’il consacre trop de son temps libre à PopChar, et décide que le moment est venu de tirer un peu d’argent de cette activité. Il change d’environnement de développement (il passe à CodeWarrior) et réécrit entièrement PopChar. Un an plus tard sort PopChar Pro, une toute nouvelle version apportant le réglage de la taille des polices, la sélection manuelle des polices, une fenêtre flottante, un éditeur de mise en page et la gestion de plusieurs langues. C'est aussi à cette période que le logiciel est traduit en français par l'universitaire Hervé Bismuth.

Menu de PopChar Pro.

Le lancement de Mac OS X en 2001 marque un nouveau tournant : « C’était un changement majeur qui rendait obsolètes la plupart des technologies utilisées dans PopChar Pro. » Le développeur réécrit alors l’application en C++ et se sert du framework Carbon comme base. En mai 2001, Ergonis Software, l’entreprise fondée par son associé Christoph Reichenberger, ouvre son site web et y distribue PopChar X.

PopChar X. Cliquer pour agrandir

Quatre ans plus tard, nouveau bouleversement, Apple annonce la transition vers les processeurs Intel. « PopChar a été encore refait de fond en comble, cette fois en Objective-C avec Xcode. Le résultat a été PopChar 3. Comme PopChar 3 était désormais basé sur Cocoa, il pouvait exploiter de nouvelles technologies et disposer d’une interface utilisateur moderne. Mais le plus important était qu’il s’agissait d’un “binaire universel” qui tournait nativement sur les Mac PowerPC et Intel », raconte Günther Blaschek.

Depuis, pas de refonte aussi profonde, mais des mises à jour régulières pour suivre l’évolution d'OS X et d’Unicode, ainsi que pour retirer les éléments devenus superflus et ajouter de nouvelles fonctionnalités. En 2014, par exemple, PopChar 7 introduit un outil de recherche graphique pour trouver un caractère en le dessinant.

Recherche graphique introduite dans PopChar 7.

En 30 ans, PopChar sera passé d’un écran noir et blanc de 512 x 342 pixels à un écran Retina 5K, d’un processeur Motorola 68000 cadencé à quelques MHz à un processeur Intel multicœur à plusieurs GHz, du System 4.2 à macOS Sierra, et il aura aussi survécu à bon nombre de logiciels.

« Pour survivre à tous ces changements, PopChar a été réécrit complètement à plusieurs reprises. Ces efforts ont été nécessaires pour assurer une évolution régulière de PopChar et un support continu pour nos clients fidèles », conclut l’infatigable développeur… qui est en train de finaliser une nouvelle version majeure.

MacGeneration : Lorsque vous avez créé Character Map, aviez-vous imaginé que vous travailleriez toujours dessus 30 ans plus tard ?

Günther Blaschek : Absolument pas ! Je crée souvent de petits programmes pour mes besoins personnels. Character Map aurait pu disparaître après quelques utilisations, mais il s’est révélé être utile, alors je l’ai conservé et mis à disposition pour des collègues. Et à partir du moment où j’ai reçu des commentaires positifs, je l’ai fait perdurer et j’ai continué de l’améliorer.

Günther Blaschek

Est-ce que ce n’est pas lassant de travailler sur la même application pendant 30 ans ?

Pas du tout. C’est en fait assez stimulant et même parfois excitant de faire avancer PopChar, de l’adapter aux changements technologiques, pour le rendre encore meilleur. Et je dois dire que j’utilise toujours PopChar régulièrement et que je ne pourrais pas vivre sans lui.

Quelle a été la plus grande étape à franchir pour PopChar ? La transition vers Mac OS X, les processeurs Intel ?

La transition vers Mac OS X a été difficile, mais ça n’a pas été une si grande étape. J’ai pu utiliser les mêmes technologies et j’ai seulement eu à convertir les parties principales du Pascal au C++.

Le plus gros changement a été la transition de C++ (avec Carbon) vers Objective-C (avec Cocoa). Il a fallu tout reprendre de zéro ; pas seulement l’interface utilisateur, mais toutes les technologies fondamentales de polices. Au bout du compte, j’ai été surpris de voir que le résultat était bien plus propre et cohérent. C’est toujours le code de base de la version actuelle de PopChar.

Si vous pouviez changer quelque chose dans le parcours de PopChar, qu’est-ce que ce serait ?

Il n’y a rien que je voudrais changer, je pense que nous nous en sommes bien sortis. Mais parfois j’aimerais simplifier les choses en supprimant les fonctionnalités les moins importantes. Mais c’est très difficile parce que les utilisateurs s’y habituent et s’attendent donc à les retrouver dans les nouvelles versions.

Quels sont vos conseils pour faire durer une application dans le temps ?

Mon conseil pour faire durer une application : écouter les utilisateurs. Notez leurs commentaires, faites une liste des nouveautés potentielles, mais ne les implémentez pas immédiatement. Passez en revue et classez les éléments de cette liste encore et encore, et essayez de trouver des solutions propres. Plus d’une fois, il s’est avéré qu’un petit changement a pu améliorer de nombreuses choses à la fois. Mais ces « petits changements » ne sont pas souvent faciles à trouver.

Je conseillerais également vivement aux développeurs d’utiliser leurs propres produits. Pas seulement de temps en temps, mais quotidiennement. Cela aide à comprendre les besoins et les difficultés des utilisateurs.

Que pensez-vous de l’évolution des outils de programmation d’Apple ? Est-il devenu plus facile de créer des applications aujourd’hui ?

Oui et non. La technologie, dont des outils comme Xcode, est devenue plus puissante, mais aussi plus complexe. Certains aspects, comme la création d’interfaces, sont devenus beaucoup plus faciles, mais on se retrouve aussi à devoir gérer de plus en plus de tâches administratives comme la prise en charge de certificats, la signature des images disques, etc.

Naturellement, PopChar gère les emojis. Cliquer pour agrandir

Est-ce que vous prévoyez de passer à Swift à moyen terme ?

Non. J’utiliserai probablement Swift pour de nouveaux projets, mais nos logiciels sont toujours compatibles jusqu’à Snow Leopard (10.6). Je vais donc continuer à utiliser Objective-C pendant un moment [les logiciels écrits en Swift demandent au moins OS X 10.9, ndr].

Avez-vous envisagé de vendre PopChar dans le Mac App Store ?

Cela ne fonctionnerait pas. La fonction principale de PopChar est d’insérer des caractères dans l’application en cours d’un simple clic. Les règles strictes de sandboxing pour les applications du Mac App Store interdisent l’utilisation des techniques requises pour cette fonction.

Et une version iOS de PopChar, vous y avez pensé ?

Le public le plus important de PopChar est constitué de gens qui travaillent régulièrement avec du texte et des graphiques. Si vous voulez rédiger un rapport élaboré, réaliser une excellente présentation ou créer un graphique sophistiqué, vous allez le faire sur un ordinateur, pas sur un iPhone ou un iPad.

Phil Schiller a récemment déclaré que plutôt que des mises à jour payantes (que des développeurs réclament dans l’App Store iOS), « le modèle de l’abonnement est une meilleure manière de procéder pour de nombreux développeurs ». Êtes-vous d’accord avec cela ? Avez-vous envisagé mettre en place un paiement par abonnement ?

Quand Ergonis a été fondé, nous avions en fait une politique de licence assez similaire à celle d’un abonnement : les utilisateurs achetaient une licence et avaient droit aux mises à jour pendant deux ans. Après quoi, ils pouvaient renouveler leur licence pour deux années supplémentaires.

Nous avons reçu beaucoup de commentaires négatifs à ce propos, donc nous avons changé la politique de la manière suivante : tous ceux qui ont acheté une licence de PopChar 7.0 en 2014 ont reçu toutes les mises à jour 7.x gratuitement. Et si vous achetez une licence aujourd’hui, vous bénéficierez gratuitement la version 8.0 (qui sera bientôt disponible) et de toutes les mises à jour 8.x.

C’est simple à expliquer, et les utilisateurs savent ce qu’ils paient. Et quand quelqu’un ne veut pas renouveler sa licence, il peut continuer d’utiliser la dernière version couverte par sa licence. En bref, non, je ne crois pas que nous ou nos clients gagnons quelque chose avec le modèle de l’abonnement.

Dans la « mission » d’Ergonis, vous écrivez que « la plupart des systèmes d’exploitation actuels sont trop compliqués pour les besoins des utilisateurs. » Vous pensez que macOS a fait des progrès en la matière au fil des ans ? Qu’est-ce qu’Apple pourrait faire pour simplifier ses systèmes ?

C’est une question difficile. Nous nous demandons aussi ce que nous pouvons faire pour simplifier PopChar. Simplement retirer des fonctionnalités ne marche pas. Au contraire, les utilisateurs demandent typiquement de plus en plus de fonctionnalités. D’après mon expérience, il est souvent utile de réorganiser l’interface afin que les mêmes choses (ou parfois plus de choses) puissent être réalisées de manière plus simple. Mais il faut que ce soit fait très prudemment, de sorte que les anciens utilisateurs n’aient pas besoin de réapprendre le logiciel.

Selon moi, la clé de la simplicité est de maintenir l’illusion de la simplicité : même si la technologie est complexe, le logiciel doit avoir un modèle cohérent et permettre aux utilisateurs de faire les tâches les plus fréquentes avec des étapes simples. C’est pourquoi PopChar fonctionne toujours de la même manière qu’au début : cliquez sur « P » pour ouvrir PopChar, puis cliquez sur un caractère pour l’insérer.

En ce qui concerne Apple et macOS, la question devient encore plus difficile pour un système d’exploitation qui a de nombreux utilisateurs qui n’ont ni le même bagage ni les mêmes demandes. Je ne pense pas qu’il y ait de réponse simple.

Pour fêter les 30 ans de PopChar ainsi que son 15e anniversaire, l’éditeur Ergonis Software fait une remise de 45 % sur ses logiciels jusqu’au 23 mai. Il faut utiliser le code « PopChar30 » lors de l’achat de PopChar, Typinator ou KeyCue.

avatar Wolf | 

Ça aurait été intéressant de savoir si il gagne sa vie avec PopChar ou pas

avatar DG33 | 

Mon Dieu ça ne me rajeunit pas !
Installé sur mon Mac SE.
🎉

avatar Giloup92 | 

Excellent article que ceux qui trouvent les logiciels (ou les applications) toujours trop chers devraient lire. Je conserve cette citation : " la clé de la simplicité est de maintenir l’illusion de la simplicité".

avatar BeePotato | 

Deux petites remarques sur l’article :

« PopChar — qu’il prononce « pop car », étant germanophone. »

C’est sans doute surtout, tout simplement, parce que c’est un nom en anglais et que ça se prononce de cette façon en anglais. ;-)

« En 30 ans, PopChar sera passé […] d’un processeur Motorola 68030 cadencé à quelques dizaines de MHz à un processeur Intel multicœur à plusieurs GHz »

L’écart est encore un peu plus grand que ça : sur le Mac Plus, c’était un 68000 à 8 MHz.

À part ça, merci pour cet article qui réveille plein de souvenirs qui ne nous rajeunissent pas. Ah, Turbo Pascal sur un Mac Plus… :-)

avatar Stéphane Moussie | 

Pour la prononciation, voici ce qu'il dit lui-même : « I live and work in Austria, so I used to pronounce it like "pop car" (we pronounce the German word "Charakter" with a "K"). Most English-speaking people pronounce the second syllable like "charcoal" or "charming". »

C'est rectifié pour les MHz du Mac Plus.

avatar HoulaHup | 

Pourtant, les anglais prononcent bien "car" et pas "char".
https://translate.google.com/#fr/en/caract%C3%A8re

Rien à voir avec la prononciation de Charming :
https://translate.google.com/#en/fr/charming

avatar BeePotato | 

@ Stéphane Moussie : « Pour la prononciation, voici ce qu'il dit lui-même : “I live and work in Austria, so I used to pronounce it like "pop car" (we pronounce the German word "Charakter" with a "K"). Most English-speaking people pronounce the second syllable like "charcoal" or "charming ».” »

Ah ? Ok.
C’est surprenant. Je pensais que les Anglo-Saxons le prononceraient avec le son [k], vu que le « char » vient de manière évidente du mot « character » (qui se prononce bien avec le son [k] au début).
Mais finalement, ce lien n’est peut-être pas si évident que je l’imaginais pour tous les utilisateurs. :-)
Bizarre, tout de même…

avatar YAZombie | 

@BeePotato: je suis surpris comme toi, mais finalement et en y réfléchissant seulement à moitié. Dans mon discours intérieur j'ai tendance à le prononcer "ʃ" alors qu'à haute voix plutôt "k"! In fine je pense que les Anglo-saxons se fondent dans le cas présent plus sur l'euphonie ("p"+"k" pouvant facilement tourner au pataquès) que sur la logique linguistique.

avatar Ios_What a joke | 

"C’est sans doute surtout, tout simplement, parce que c’est un nom en anglais et que ça se prononce de cette façon en anglais. ;-)"
Ou pas. Des cours de bases en anglais s'imposent d'urgence!

avatar HoulaHup | 

Ou pas :
https://translate.google.com/#fr/en/caract%C3%A8re
et clique sur le petit haut-parleur.

avatar YAZombie | 

"et clique sur le petit haut-parleur": je ne sais pas ce que tu as fait comme réglages, mais si ça dit autre chose que "ˈkarəktə" ils sont foireux… car c'est bien ainsi qu'il convient de le prononcer en anglais, quelle que soit la localisation (pour le "k" initial s'entend)…

avatar HoulaHup | 

Oui, on est bien d'accord, c'est exactement ce que je dis.

avatar YAZombie | 

Ah ok, tu avais répondu à la mauvaise personne alors! hahaha

avatar HoulaHup | 

Non, ma réponse est bien destinée à Ios_What a joke. Whatever!

avatar YAZombie | 

Mmm, tu as raison, et je ne sais même plus comment présenter mes excuses. Je ne sais pas ce que c'est mais il faut manifestement que j'arrête un truc là 🤔

avatar BeePotato | 

@ Ios_What a joke : « Ou pas. »

Si, si, bel et bien. :-)

« Des cours de bases en anglais s'imposent d’urgence! »

Non, merci, je n’en aurai pas besoin. Je me permettrai en revanche de te retourner le conseil. ;-)

avatar YAZombie | 

@Ios_What a joke: si tu penses que ça se prononce ˈʃarəktə alors c'est clairement toi qui as besoin de prendre des cours de base d'urgence. Mais alors d'extrême urgence…

avatar perrudja | 

Yes turbo pascal le langage qu'on nous enseignait en première année de fac de science dans les années 80 !
Bel article !

avatar gwen | 

Utilisateur depuis près de 20 ans du logiciel, il fait partie de la trousse à outils indispensable sur mon Mac. Je ne pensais pas qu'il existait depuis si longtemps. Je croyais avoir été un utilisateur de la première heure, ne connaissant personne d'autre qui l'utilisait à l'époque. Ça fait du bien de relativiser du coup :)

avatar Vivid | 

Lightspeed C, Think C, Code Warrior.... et bien sur les enseignants irrémédiablement toujours a côté de la plaque avec le pascal ;-)

avatar oomu | 

le but n'était pas de vous enseigner un langage d'un constructeur ou de production en industrie, tel le C, Visual Basic ou Python, mais l'algorithmie : découper une tâche en sous-tâche, organiser une résolution de problème, etc.

Le Pascal convenait très bien à cela, il fut d'ailleurs écrit pour être une transcription des cours d'algorithmie. Donc on vous enseignait des principes d'algorithmes usuels, et vous les transposiez par la suite dans n'importe quel langage du jour.

En IA idem: on vous forme à UN lisp et autre prolog, mais avec le bagage théorique pour que vous adaptiez tout cela à n'importe quelle grammaire ou nouvelle évolution.

Bon bien sur de nos jours c'est ringard et naze : tout ce qu'on demande c'est de former sans recul ni compréhension à un truc cool que demandent les entreprises pour être un salarie rentable immédiatement. Le temps que vous ayez du recul sur SWIFT pour faire du code intéressant, vous serez remplacé.

Le point est: les enseignants sont pas que des abrutis.

avatar byte_order | 

Ce n'est pas de l'académisme forcené mais simplement parce que MacOS Classic ayant été programmé en Pascal, son interface de programmation native était Pascal.

Cela a d'ailleurs posé de nombreux problèmes quand une partie de l'API de MacOS a petit à petit évolué et intégré des nouvelles fonctionnalités écrites ensuite en C, voir C++.
Avec, par exemple, certaines API attendant des chaines de texte au format Pascal (premier octet = longueur de la chaine, chaine de 255 caractères max donc) ou au format C (pas de taille limite, commence dès le premier octet, se termine par un octet nul).

Ou le format d'appel des fonctions - en particulier les callbacks appelées depuis une vieille API encore en Pascal, formats différents entre le C et Pascal.

Mais je parle d'une époque que les moins de 30 ans ne peuvent pas avoir connu...

Bref. programmer en Pascal au tout début du Mac c'était tout aussi logique que programmer en Objective C au début de MacOS X, pas une posture académique : c'était le langage pour qui l'API était native, point.

Dans les 2 cas l'histoire a prouvé ensuite que le choix de langage natif n'était pas si perenne ni universel que cela. Sur ce plan, la langage C est clairement loin devant, par exemple.

avatar BeePotato | 

@ byte_order : « Bref. programmer en Pascal au tout début du Mac c'était tout aussi logique que programmer en Objective C au début de MacOS X, pas une posture académique : c'était le langage pour qui l'API était native, point. »

En effet.
Et dans les deux cas, ce n’était pas désagréable du tout. :-)

« Dans les 2 cas l'histoire a prouvé ensuite que le choix de langage natif n'était pas si perenne ni universel que cela. »

Ben pour Objective C, c’était tout de même bien pérenne, puisque c’est toujours d’actualité, 16 ans après la première version de Mac OS X.

« Sur ce plan, la langage C est clairement loin devant, par exemple. »

Oui et non : les OS qui ont toutes leurs API attaquables directement en C, on en trouve encore beaucoup ?
D’autre part, l’Objective C profite pleinement de son socle C sur ce point.

avatar byte_order | 

> Ben pour Objective C, c’était tout de même bien pérenne, puisque c’est toujours d’actualité,
> 16 ans après la première version de Mac OS X.

Y'a quand même une volonté chez Apple, tout comme chez Microsoft avec C# d'ailleurs, d'inciter à investir dans un langage plus multiplateforme qu'Objective C, Swift, mais surtout un une plateforme logicielle qui transcende les frontières des plateformes dites "natives" seulement.

Une incitation qui répond d'ailleurs à un besoin des développeurs qui sont de plus en plus multiplateformes eux aussi, marché oblige.

> Oui et non : les OS qui ont toutes leurs API attaquables directement en C,
> on en trouve encore beaucoup ?

En PDM, oui : Windows et Linux offrent toujours une API C.

Dans les faits, ceci dit, ce n'est plus le langage favori des développeurs désormais car ils gagnent nettement plus de temps en utilisant des surcouches en C++, .NET, Qt, Java ou que sais-je encore et la transformation du paysage applicatif avec le web et les mobiles ont largement contribué à bousculer cette situation.

Mais vu que le C date de 1972, et qu'on peut considérer comme établi à partir de 1978, sa durée de vie et sa versatilité reste un record à ce jour. C'est ce que je voulais dire, sans pour autant prétendre qu'il va continuer à augmenter encore longtemps...
Nul doute qu'un beau jour ce record sera dépassé, car clairement il n'est plus dans la course désormais, les plateformes logicielles récentes ne l'utilisant plus nativement, c'est inévitable.

C'était aussi pour souligner que les besoins académiques et industriels sont différents, et que croire que les seconds peuvent s’accommoder des choix des premiers est illusoire.

Cependant, y'a une pénurie de développeurs en C/C++ actuellement, donc l'annonce de la mort du C est largement exagéré ^^

avatar BeePotato | 

@ byte_order : « Y'a quand même une volonté chez Apple, tout comme chez Microsoft avec C# d'ailleurs, d'inciter à investir dans un langage plus multiplateforme qu'Objective C, Swift »

Je ne pense pas que ce soit principalement l'aspect multi-plateformes qui intéresse Apple dans cette histoire. Cet aspect est un plus car il permet d'amener plus de développeurs à utiliser ce langage et d'avoir plus rapidement une grosse base de code source partagé, mais la motivation principale était bien de passer à un langage plus moderne (le côté multi-plateformes n'est arrivé que plus tard, d'ailleurs).

Cela dit, c'est très récent cette histoire et avant ça, Objective C tenait très bien – et il continue de tenir pas mal, puisqu'on ne l'a pas encore remplacé par Swift.
C'est juste ce que je voulais faire remarquer : pas prétendre que l'usage de ce langage pour le développement sur Mac sera éternel, juste qu'il aura été utilisé sur une période plutôt longue.

« mais surtout un une plateforme logicielle qui transcende les frontières des plateformes dites "natives" seulement. »

?
Là, j'avoue que je ne vois pas bien à quoi ça fait référence.

« En PDM, oui : Windows et Linux offrent toujours une API C. »

J'ai bien précisé : toutes leurs API. Je ne suis pas sûr qu'on puisse accéder à toutes les dernières nouveautés en C sous Windows (mais je peux me tromper, ne développant que peu pour cet OS).

« Mais vu que le C date de 1972, et qu'on peut considérer comme établi à partir de 1978, sa durée de vie et sa versatilité reste un record à ce jour. »

Là, tout à fait d'accord.
J'apporte d'ailleurs régulièrement ma modeste contribution à cette durée de vie. :-)

« C'était aussi pour souligner que les besoins académiques et industriels sont différents, et que croire que les seconds peuvent s’accommoder des choix des premiers est illusoire. »

En effet.

« Cependant, y'a une pénurie de développeurs en C/C++ actuellement, donc l'annonce de la mort du C est largement exagéré »

En effet aussi.

Pages

CONNEXION UTILISATEUR