Trolldi : pour ou contre les noms de fonctions drôles dans son code ?
Les développeurs du client mail Eudora semblent avoir été un peu farceurs

Le , par Stéphane le calme, Chroniqueur Actualités
Avez-vous utilisé dans votre code des noms de fonction pour amuser ?
Computer History Museum (CHM), l’une des plus grandes institutions au monde à explorer l'histoire de l'informatique et son impact sur l'expérience humaine, a annoncé le 22 mai 2018 la publication et la préservation à long terme du code source d'Eudora, l'un des premiers clients mails couronnés de succès. Une publication qui intervient après une négociation de cinq ans avec Qualcomm.

Il a fallu un peu plus d'un an à Steve Dorner pour créer la première version d'Eudora, qui comptait 50 000 lignes de code C et fonctionnait uniquement sur Macintosh. Comme de nombreux programmes produits par les universités, il était accessible à tous gratuitement.

En 1991, Qualcomm, qui était alors une société de communication de San Diego célèbre pour la technologie de communication cellulaire CDMA, a obtenu une licence Eudora de l'Université de l'Illinois. Dorner a finalement été embauché par l’entreprise pour continuer à le développer, travaillant à distance de sa maison dans l'Illinois.


Mais Qualcomm voyait d’un mauvais œil un produit cantonné sur Mac. Aussi, le responsable du projet Qualcomm, John Noerenberg, a confié à Jeff Beckley et Jeff Gehlhaar à San Diego la tâche de créer une version MS-DOS puis Windows du programme. « Le style de l'entreprise consistait à installer un ordinateur MS-DOS ou Macintosh sur le bureau de chaque employé, selon ce qui convenait le mieux à leurs besoins et à leurs préférences personnelles », a-t-il déclaré. « Nous avions besoin d'un logiciel de messagerie électronique qui soit intuitif sur Internet et indépendant de la plateforme. Il n'y avait rien de disponible sur le marché qui satisfaisait à l'un ou l'autre de ces objectifs, et encore moins aux deux ».

A l'origine, Eudora n'était utilisé qu'en interne chez Qualcomm et était plutôt bien accueilli. Noerenberg a entendu un responsable financier chez Qualcomm disant : « Je détestais le courrier électronique. Mais j'adore Eudora ». « C'est à ce moment que j'ai réalisé que nous étions sur quelque chose », a indiqué Noerenberg.

La société a déclaré plus tard : « En tant que leader du développement et de la communication numérique, Qualcomm a reconnu que le courrier électronique est un outil de communication important pour l'avenir ». C’est ainsi qu’elle l'a commercialisé en 1993. L'équipe Eudora de Qualcomm s'est rapidement développée : au départ il s'agissait d'un groupe de quatre personnes qui a progressivement gagné en importance. À son apogée, l’équipe était composée de plus de 50 personnes.

Eudora a gagné rapidement en popularité. Disponible à la fois pour IBM PC et pour Apple Macintosh, Eudora, à son apogée, comptait des dizaines de millions d'utilisateurs. Après 15 ans, en 2006, Qualcomm a décidé qu'Eudora ne correspondait plus à leurs autres grandes lignes de projet et a arrêté le développement.

Le petit mot de CHM

Len Shustek, président du conseil d'administration de CHM, y est allé de son commentaire :

« Le courrier électronique était l’une des “killer app” de l'informatique en réseau. La possibilité d'envoyer et de recevoir rapidement des messages sans avoir à être en ligne en même temps a créé une nouvelle forme de communication humaine. À ce jour, des milliards de personnes ont utilisé le courrier électronique.

« Le courrier électronique a une longue histoire, remontant au Compatible Time Sharing System (CTSS) du MIT et au AUTODIN du gouvernement américain au début des années 1960. Ces premiers systèmes, qui utilisaient souvent des réseaux et des protocoles de communication propriétaires, étaient généralement incompatibles entre eux; vous ne pouviez échanger des courriels qu’avec des personnes utilisant le même système.

« Le premier courriel sur l'ARPANET (le prédécesseur de l'Internet d'aujourd'hui) a été envoyé par Ray Tomlinson en 1971, et les formats de courrier sont devenus standardisés (RFC 524, RFC 561) peu de temps après. Dans les années 1980, le protocole TCP / IP codifie la communication entre les clients de messagerie (qui s'exécutent sur l'ordinateur de l'utilisateur) et le serveur de messagerie (où les messages sont reçus d'autres systèmes et stockés), de sorte qu'il peut y avoir des implémentations indépendantes. à la fois sur différents ordinateurs et systèmes d'exploitation.


Len Shustek, président du conseil d'administration de CHM

« Finalement, de nombreux clients de messagerie ont été écrits pour les ordinateurs personnels, mais peu ont eu autant de succès que Eudora. Disponible à la fois pour IBM PC et pour Apple Macintosh, Eudora, à son apogée, comptait des dizaines de millions d'utilisateurs satisfaits. Eudora était élégant, rapide, riche en fonctionnalités et pouvait faire face à des dépôts de courrier contenant des centaines de milliers de messages. À mon avis, c'était le meilleur client de courrier électronique jamais écrit, et il n'a pas encore été surpassé.

« Je l'utilise encore aujourd'hui, mais, hélas, la dernière version d'Eudora a été publiée en 2006. Grâce à Qualcomm, nous sommes heureux de publier le code source d'Eudora pour son intérêt historique, et avec le faible espoir qu'il pourrait être ressuscité ».

Mais qui a écrit les fonctions dans cette partie du code source ?

Le code source comprend un fichier anal.c, il s’agit probablement d'outils d'analyse, mais quelqu’un a du VRAIMENT s’amuser avec les noms des fonctions :

Code C : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
OSErr AnalInit(void)
void AnalScan(void)
short AnalScore(struct TAESessionState *pSession);
OSErr AnalDispose(void);    
Boolean AnalWarning(MessHandle messH)
OSErr AnalFindMine(void)
#define IsAnalHot(collection) ((collection)%2==0)
long LastAnalUse;
void AnalScanPete(PETEHandle pte,Boolean toCompletion,Boolean toSpeak)
void AnalScanPeteInner(PETEHandle pte, struct TAESessionState *pSession, long *pScanned,Boolean toSpeak);
 
void AnalIdle(void)
{
if (AnalCount>1) return;    // still active
if (!AnalCount) return; // dead already
 
// flush the anal stuff if we haven't used it in a long time
if (DiskSpunUp() && LastAnalUse-TickCount()>GetRLong(MAX_ANAL_IDLE))
    AnalDispose();
}

Télécharger le code source (Windows et Mac)

Source : Computer History Museum

Et vous ?

Que pensez-vous de cette initiative du CHM ?
Que pensez-vous vous du choix des noms de variables et des fonctions ? Utilisez-vous aussi dans votre code des noms de fonction pour amuser ceux qui font maintenir votre code ?
Avez-vous des anecdotes à partager sur des noms de fonctions ou autres portions de code qui vous ont marqué ?

Voir aussi :

Trolldi : des chercheurs préconisent de ne pas ouvrir de messages extraterrestres, ils pourraient contenir des maliciels pour détruire la Terre
Trolldi : une brève histoire totalement exacte des langages de programmation qui est complètement inspirée de faits
Trolldi : une blague de Richard Stallman sur l'avortement crée la polémique, 26 ans après avoir été écrite dans la documentation du projet glibc
Trolldi : une société propose de vous euthanasier pour conserver votre cerveau, dans l'espoir de pouvoir le sauvegarder plus tard dans le cloud
Trolldi : et si le rôle de la chance dans le succès était beaucoup plus important que nous ne le pensions ? C'est ce que suggère une étude


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 Fleur en plastique Fleur en plastique - Nouveau Candidat au Club https://www.developpez.com
le 25/05/2018 à 10:32
Qui utilise encore Eudora ? Personne. Retour de karma : les développeurs l'ont eu dans le cul.
Avatar de - https://www.developpez.com
le 25/05/2018 à 11:03
Non, mais on m'a parlé d'un dev alcoolique qui nommait ses méthodes tristesse, désespoir.
Par contre, il m'est arrivé d'échanger des amabilités avec un ami web designer dans le JS et le CSS de sites clients.
"Toto c'est pas un dev c'est un plombier numérique, je ne comprend rien à sa tuyauterie (son code)" => "Toto est fier que Tutu ait obtenu son bac coloriage option feutrines", etc...
Ça passait dans les commits (où les commentaires étaient aussi parfois du même acabit) puis en production.
Avatar de Ryu2000 Ryu2000 - Membre extrêmement actif https://www.developpez.com
le 25/05/2018 à 11:07
Citation Envoyé par Fleur en plastique Voir le message
Qui utilise encore Eudora ?
Le développement s'est arrêté en 2006, donc c'est un peu normal...

Citation Envoyé par Stéphane le calme Voir le message
Que pensez-vous de cette initiative du CHM ?
Ça peut presque faire sourire;
La variable "LastAnalUse", le commentaire "// flush the anal stuff if we haven't used it in a long time", les méthodes AnalInit(), AnalScan(), AnalScore(), peuvent être drôle selon comment on les interprètes.
Avatar de LSMetag LSMetag - Expert confirmé https://www.developpez.com
le 25/05/2018 à 11:13
Je suis évidemment pour. Le problème c'est qu'il y a une revue de code. Et quand on le remarque (tout le temps donc), on me demande d'y changer.
Avatar de Bono_BX Bono_BX - Membre confirmé https://www.developpez.com
le 25/05/2018 à 11:42
Petits hors sujets connexes :
- dans ma précédente mission (un gros du e-commerce), j'ai eu droit à un charlot qui m'a fait une classe avec des propriétés A, B, C et Yt ... à ce niveau là, j'aurai préféré des noms drôles ...
- toujours dans cette boîte, mon collègue est tombé sur des valeurs de tests genre "bâtard", "salope", "va te faire ...", etc. ... mon pote a vu rouge et était parti pour démonter le gus, qui lui a répondu que c'était normal car le projet en question était la détection de mots interdits dans les commentaires, donc d'injures
Avatar de Sunchaser Sunchaser - Membre expert https://www.developpez.com
le 25/05/2018 à 12:26
Citation Envoyé par Bono_BX Voir le message
...
- toujours dans cette boîte, mon collègue est tombé sur des valeurs de tests genre "bâtard", "salope", "va te faire ...", etc. ... mon pote a vu rouge et était parti pour démonter le gus, qui lui a répondu que c'était normal car le projet en question était la détection de mots interdits dans les commentaires, donc d'injures
Ca c'est vraiment énorme comme truc
Avatar de deltree deltree - Membre averti https://www.developpez.com
le 25/05/2018 à 14:08
Citation Envoyé par LSMetag Voir le message
Je suis évidemment pour. Le problème c'est qu'il y a une revue de code. Et quand on le remarque (tout le temps donc), on me demande d'y changer.
"D'y changer?"
Tu serais pas un peu Lyonnais sur les bord
Avatar de Drowan Drowan - Membre éclairé https://www.developpez.com
le 25/05/2018 à 14:10
Citation Envoyé par Stéphane le calme Voir le message
Pour ou contre les noms de fonctions drôles dans son code ?
Pour

Mais uniquement si ça ne nuit pas à la compréhension du code
Avatar de Pyramidev Pyramidev - Membre expert https://www.developpez.com
le 25/05/2018 à 14:12
Je ne suis pas fondamentalement contre un peu d'humour dans le code, mais à condition que cela ne détériore pas la lisibilité.

Un nom de fonction est généralement un très mauvais endroit pour insérer de l'humour, surtout si cette fonction est utilisée à de nombreux endroits.
En effet, d'un côté, une fonction devrait avoir un nom suffisamment descriptif pour que l'on connaisse son rôle. Mais, d'un autre côté, si une fonction a un nom trop long, cela oblige plus souvent son utilisateur à revenir à la ligne, ce qui entrave l'écriture d'un code concis. Un nom de fonction doit être à la fois descriptif et synthétique, donc il n'y a pas la place d'y mettre de l'humour.
Avatar de Drowan Drowan - Membre éclairé https://www.developpez.com
le 25/05/2018 à 14:18
Citation Envoyé par deltree Voir le message
"D'y changer?"
Tu serais pas un peu Lyonnais sur les bord
Aujourd'hui c'est surtout Grenoblois

Pour la curiosité ça vient de l'arpitan et est donc utilisé dans la bourgogne, le lyonnais, la Savoie, l'isère, l'ain, le genevois, etc...
wiki du Y
Contacter le responsable de la rubrique Accueil