Catégorie : Technique

  • Offshore & star­tup

    Je recherche des star­tups Europe/US dont une partie de l’équipe tech­nique a été basée hors Europe/US pour des raisons de coûts.

    • Est-ce que ça existe ? Vous avez des noms ?
    • Si vous l’avez vécu (quel que soit le côté), quelles en ont été les enjeux, les diffi­cul­tés et les résul­tats ?
    • Si vous avez choisi de ne pas le faire, pourquoi ?

    Note : Je ne parle pas de régie offshore mais bien de gens internes à la star­tup.


    I am looking for Euro­pean/US star­tups in which part of the team has been loca­ted outside Europe/US to lower the costs.

    • Did you heard about such expe­riences ? Do you have names ?
    • If you lived it  (whate­ver the side), what where the stakes, the diffi­cul­ties and the results ?
    • If you choose not to go this way: why ?

    Note: I am not talking about offshore contrac­ting but about people who are direct employees of the star­tup

  • Lien vers du Javas­cript

    Problé­ma­tique du jour : Inter­cep­ter l’ap­pel à des liens via Javas­cript.

    Mon cas d’usage : J’ai des conte­nus (images, vidéos, audio, polices de carac­tères) stockés côté client (indexedDB, webSQL ou DOMS­to­rage) que je souhaite insé­rer dans mes pages.

    (billet mis à jour au fur et à mesure des réponses)

    Quelques solu­tions :

    Data:URI

    Je récu­père ma donnée, je la trans­forme en base64, et je remplace le lien stan­dard par un lien en data:uri.

    Deux défauts : Je stocke N fois la donnée dans le DOM où N est le nombre d’ap­pa­ri­tion de l’image ou de la ressource dans mes pages HTML/CSS. Pour ne rien gâcher, on stocke en base64 donc avec 30% de poids en plus. De plus, même si je n’ai pas de test à montrer, on s’est déjà pris les pieds dans le tapis à cause de très mauvaises perfor­mances de pages avec beau­coup de data:uri, spécia­le­ment sur Fire­fox (proba­ble­ment sur les polices de carac­tères)

    Blob + crea­teObjectURL

    Je récu­père ma donnée, je créé un Blob à partir de cette donnée, je passe par URL.crea­teObjectURL pour créer une URL dédiée et j’uti­lise cette dernière quand je réfé­rence ma ressource.

    On résout les problèmes du data:uri mais on se coupe de IE 9, IE mobile et iOS 5. Pas gravis­sime mais j’au­rai préféré éviter.

    Par contre la solu­tion ne fonc­tion­nera de toutes façons pas pour les images ou polices de carac­tères réfé­ren­cées depuis les CSS (sauf à construire les CSS via Javas­cript mais là on entre dans des usines à gaz).

    Cas spéci­fique des vidéo et audio

    Les deux solu­tions me posent de toutes façons un sérieux problème pour les vidéo et les audio, qui peuvent être de gros volume. Je me vois mal sortir d’in­dexedDB des dizaines de méga­oc­tets (au mieux) pour construire un blob juste et avoir une URL dans ma balise HTML sans même savoir si l’uti­li­sa­teur tentera effec­ti­ve­ment de lire la vidéo ou le fichier audio.

    Pour les vidéos et les audio (mais unique­ment ces deux types de contenu) je peux réflé­chir à mettre un lien vers une vidéo de taille quasi nulle et le chan­ger dès que la vidéo est acti­vée. J’ai toute­fois un peu peur des effets de bords. Il va falloir aussi bosser en amont pour que la première image s’af­fiche bien dans le lecteur vidéo malgré l’ab­sence de la vidéo complète.

    Bidouille

    Pour l’ins­tant ma solu­tion serait :

    • Pour les images et polices de carac­tères dans les CSS : data:uri. En espé­rant que la CSS ne contient pas trop de ressources inutiles ou trop de liens vers la même ressource.
      • Au pire : Géné­rer la CSS en Javas­cript avec des liens obte­nus par crea­teObjectUrl, l’in­sé­rer dans le DOM manuel­le­ment
    • Pour les images dans le code HTML : crea­teObjectURL si possible.
      • Véri­fier tout de même si le data:uri n’est pas plus simple. La diffé­rence entre les deux sera assez faible si les images ne sont pas répé­tées plusieurs fois.
    • Pour les audio et vidéo : Désac­ti­ver le preload, rensei­gner le lien via crea­teObjectURL qu’au lance­ment de la vidéo. Pour les vidéo, penser à créer une image d’at­tente avec l’at­tri­but poster.

    Ça reste fran­che­ment du brico­lage je trouve, et ça va néces­si­ter plein de javas­cript pour géné­rer tout ça.

    Dans mon monde idéal

    Dans l’idéal j’au­rai bien aimé avoir une sorte de faux serveur web en javas­cript depuis le navi­ga­teur. Genre toute url en « local-js://xxxxx » fait appel à un objet Javas­cript qui répond ensuite ce qu’il veut.

    À défaut, un URL.createObjectURL( 'text/html', function() { return bindata; } ) serait bien pratique : Le navi­ga­teur n’ap­pe­lant la fonc­tion pour récu­pé­rer le contenu que quand il cherche à accé­der au dit contenu, au lieu de lui donner tout le contenu par avance au cas où il en aurait besoin.

    Quelqu’un a des pistes pour moi ?

  • [blog] Suivi des discus­sions

    Vieux sujet traîné en commun avec Karl et David (mais pas que) : Faire en sorte de décen­tra­li­ser les blogs et les discus­sions qui s’en suivent.

    L’his­toire

    Par le passé nous avions Track­back. On envoyait une noti­fi­ca­tion aux conte­nus liés, avec le lien vers notre contenu, le nom du blog, un extrait et un titre. Le codage carac­tère était globa­le­ment mal géré, les titres et extraits se sont révé­lés globa­le­ment inutiles voire contre-produc­tifs, mais c’était implé­menté un peu partout et ça, tech­nique­ment, ça fonc­tion­nait assez bien.

    Pour faire court, les gens conti­nuaient à commen­ter dans le billet d’ori­gine plutôt que de commen­ter dans un nouveau billet chez eux. Par contre les track­backs étaient très utili­sés pour le spam, avec au final un ratio signal/bruit vrai­ment mauvais et donc l’aban­don du système.

    Il y a aussi eu Ping­back. Système simi­laire mais avec une auto­dé­cou­verte plus sympa et l’ar­rêt de trans­mis­sion des titres et extraits. Vu que ces derniers n’étaient jamais person­na­li­sés spéci­fique­ment pour la noti­fi­ca­tion, autant les récu­pé­rer direc­te­ment à partir du lien si jamais on en a besoin.

    Diffé­rence, Ping­back propo­sait de véri­fier la présence d’un lien sortant dans le contenu tiers avant de vali­der une liai­son entrante. Cette diffé­rence fut peu impac­tante au finale. L’idée a aussi été implé­men­tée dans les track­back mais les spameurs ont vite appris à faire des liens sortants pour poster leur spam, quitte à faire des liens invi­sibles pour le lecteur ou des liens tempo­raires suppri­més après l’opé­ra­tion.

    Je trouve aussi l’idée discu­table dans le sens où la valeur ajou­tée du lien n’est pas la même dans les deux sens. Si je réalise analyse sur une dépêche AFP, il peut être utile d’avoir une noti­fi­ca­tion chez plusieurs personnes qui reprennent verba­tim cette dépêche, mais cela n’au­rait aucun sens d’en lier plus d’un à partir de mon analyse (ce que la véri­fi­ca­tion de ping­back impose).

    Wiki­pe­dia cite aussi Refback. Je ne l’avais jamais vu forma­lisé sous ce nom mais la pratique est connue : Explo­rer les entêtes HTTP Refer­rer pour repé­rer de nouveaux liens entrants auto­ma­tique­ment. Les spam­meurs jouaient à faus­ser ces entêtes depuis long­temps donc là aussi ça n’a pas changé grand chose.

    Tous ces systèmes ne spéci­fient que la noti­fi­ca­tion. Il s’agit de parler un langage commun au niveau de cette noti­fi­ca­tion pour que ce soit plus simple pour tout le monde. Il reste à l’édi­teur du site lié de choi­sir ce qu’il fait de la noti­fi­ca­tion : L’af­fi­cher auto­ma­tique­ment avec une modé­ra­tion a poste­riori, gérer une liste blanche, mettre un système anti-spam auto­ma­tisé, ou même faire une vali­da­tion manuelle a priori.

    Il y a aussi Salmon, très orienté commen­taire, mais extrê­me­ment complexe et quasi­ment pas implé­menté (les deux sont certai­ne­ment liés). J’ai du mal à voir ce proto­cole réel­le­ment implé­menté partout.

    Webmen­tion

    Aujourd’­hui on parle de Webmen­tion. Même séman­tique que Ping­back, même méca­nismes d’au­to­dé­cou­vertes (seule la valeur de « rel » change), même requête initiale et mêmes para­mètres (seuls les noms des para­mètres changent légè­re­ment pour reti­rer les trois derniers carac­tères).

    Les diffé­rences tiennent exclu­si­ve­ment dans la préci­sion de la méthode HTTP à utili­ser (POST) et dans les codes de retours (Webmen­tion utilise les codes HTTP stan­dards et un lien vers la mention créée, là où Ping­back renvoie une code de retour dans le corps de la réponse).

    C’est tech­nique­ment plus satis­fai­sant pour les affi­cio­na­dos de HTTP mais la valeur ajou­tée fonc­tion­nelle est nulle. On ne fait rien de plus, rien de moins, et pas vrai­ment diffé­rem­ment. J’échoue d’ailleurs à

    Sachant que ping­back a une implé­men­ta­tion dispo­nible sur à peu près tous les gros moteurs de blogs, je ne trouve pas que cela justi­fie de lancer un nouveau proto­cole. En l’état c’est d’une utilité encore plus faible que ce que j’ima­gi­nais initia­le­ment. Pas de quoi m’em­bê­ter à l’im­plé­men­ter.

    En fait à choi­sir entre ping­back et webmen­tion, une fonc­tion­na­lité forte de ping­back est l’at­tri­but ping­back, qui permet­trait de faire une noti­fi­ca­tion auto­ma­tique suivant ce dernier proto­cole, et donc de rempla­cer (en opt-in) l’en­tête HTTP Refer­rer là où elle est bloquée par HTTPS. Cette possi­bi­lité me semble bien plus utile que le respect théo­rique de HTTP (je sens que je vais atti­rer pas mal de commen­taires avec cette phrase mais j’as­sume).

    Suivi des discus­sion

    Et puis j’ai l’im­pres­sion qu’on regresse un peu par rapport au track­back initial. Ping­back et Webmen­tion noti­fient d’un lien entrant, pas d’un suivi de discus­sion.

    Je peux avoir un lien entrant sans aucun ajout à la discus­sion, juste un relai. Inver­se­ment je peux avoir un nouveau contenu qui apporte à la discus­sion et qui méri­te­rait de noti­fier plusieurs conte­nus déjà exis­tant sans forcé­ment s’im­po­ser de faire des liens.

    Autre commen­taire de Karl : Certains aime­ront avoir plus qu’un lien, avec un petit texte sur le pourquoi de la noti­fi­ca­tion, de ce qu’ajoute ce nouveau contenu au sujet déjà en cours – par exemple pour orien­ter la modé­ra­tion et le choix de (non-)publi­ca­tion. Pas forcé­ment perti­nent de le rendre obli­ga­toire (ça empê­che­rait pas mal d’au­to­ma­tismes) mais le rendre possible serait utile.

    Et si je n’im­pose pas de lien dans le contenu noti­fié, il faudra que je puisse en authen­ti­fier l’ori­gine. Un système de signa­ture simpliste devrait suffire mais sera néces­saire.

    Faire une spéci­fi­ca­tion qui implé­mente ça demande deux heures tout au plus. Rien n’em­pêche même qu’elle soit compa­tible avec Webmen­tion et qu’on puisse avoir un point d’en­trée unique. Simple­ment ça n’a de sens que si je ne suis pas le seul à jouer.

    David, Karl, les autres ? vous en pensez quoi ?

  • The lie of the API

    Quelques réponses sur un billet qui a beau­coup circulé : The lie of the API.

    Ça flatte beau­coup la mouvance HATEOAS mais je n’ac­croche pas. Même avec des clients très smart, impos­sible de faire un même site pour les visites « navi­ga­teur » et les accès « API ».

    Le logi­ciel client de l’API ne sera jamais assez intel­li­gent pour comprendre autant le contexte que l’hu­main derrière son navi­ga­teur, et jamais assez souple pour gérer des chan­ge­ments non prévus.

    Donc partons de notre biblio­thèque qui expose des collec­tions avec des conte­nus, chacun reliés à des auteurs.

    Et si demain je change mes repré­sen­ta­tions pour ne plus mettre les bio des auteurs dans la fiche du livre direc­te­ment ? Certes tech­nique­ment il est possible de faire un robot qui sache récu­pé­rer cette bio sur la fiche de l’au­teur, mais quelle est la proba­bi­lité que les robots actuels gèrent le chan­ge­ment ?

    Et si demain le site web est changé pour que le point d’en­trée premier soit l’au­teur ? Le logi­ciel saura-t-il recher­cher un livre dont il ne connait pas l’adresse ?

    Et si demain je change le système de clas­si­fi­ca­tion des livres pour passer de BISAC à la CLIL française ? Quelle proba­bi­lité que le robot et l’ap­pli­ca­tif derrière gère ça de façon trans­pa­rente ?

    La partie desti­née au robot (qu’on nomme géné­ra­le­ment « API ») n’a simple­ment pas les mêmes besoins que la partie desti­née aux humains (qu’on nomme souvent « web »). On peut faire conci­lier les deux au début, mais ça va casser au fur et à mesure des évolu­tions de la partie desti­née aux humains.

    Tout ça pour quoi ? La satis­fac­tion intel­lec­tuelle du déve­lop­peur qui se dit qu’il corres­pond au schéma idéal du web. La valeur ajou­tée ne me semble pas justi­fier le risque.

    C’est d’au­tant plus vrai qu’en réalité les clients qui codent des robots hyper­me­dia corrects il n’y en a pas tant que ça. Rapi­de­ment des tiers vont coder des robots en faisant de l’in­gé­nie­rie inverse sur les adresses, les iden­ti­fiants, la struc­ture, les données. Ça sera peut être de leur faute, mais ça va casser si vous faites des chan­ge­ments en vous repo­sant unique­ment sur le côté hyper­me­dia.

    D’où la ques­tion : Souhai­tez-vous que ça fonc­tionne ou avoir raison ?

  • La fin d’AdB­lock ? Google prend le contrôle exclu­sif des exten­sions Chrome

    La fin d’AdB­lock ? Google prend le contrôle exclu­sif des exten­sions Chrome. Le titre est là pour faire du buzz mais le problème est réel : Celui du contrôle de l’éco­sys­tème et de l’as­sujet­tis­se­ment à une ou plusieurs multi­na­tio­nale qui décident ce qu’on a le droit ou non de faire sur le web, avec nos conte­nus.

    Rappe­lez-vous qu’en mars de l’an­née dernière Google qui menaçait de mettre des appli­ca­tions Android dehors si elles ne passaient pas par la solu­tion de paie­ment inté­grée de Google (avec les commis­sions adéquates). Rappe­lez-vous encore aujourd’­hui Google qui bloque les reve­nus publi­ci­taires dès qu’on voit un bout de peau dénu­dée sur le site web.

    Le fait de pouvoir faire ou pas ce qu’on veut sur la porte d’en­trée sur le web est juste un enjeu de société. À la limite ne pas pouvoir placer d’ex­ten­sions est moins dange­reux : on ne risque pas de se voir orienté incons­ciem­ment par ce qui est présent.

     

  • Please stop preten­ding PHP is a good language

    The first step to fixing a problem is admit­ting that there is one.

    Bon, des critiques de PHP ce n’est pas ce qui manque mais pour une raison incon­nue je m’étais dit que ça partait bien quand j’ai lu la première ligne. Sauf qu’au final

    • It’s not ok that you can’t relia­bly get the first element of an array using less than 4 lines of code without causing side effects.*[1]
    • It’s not ok that the output of echo 5/3 might depend on the coun­try you live in if you don’t know the fine details of confi­gu­ring PHP.
    • It’s not ok that you won’t be able can’t call array_map” or just “$itera­tor->reduce” on an itera­tor in 2014.
    • It’s not ok to ignore the simple fact that most of the PHP world currently relies on parsing func­tion and class comments for it’s code to func­tion because people can’t get their shit toge­ther on mailing lists.
    • It’s not ok to run around shou­ting “type hinting for lite­rals would mean that passing an int to float hint would fatal PHP” and calling that an reaso­nable argu­ment while people just write $x = (float)$x; in the cases where it actually does matter anyways.
    • It’s not ok to be not able to talk to 2 back end data sources in paral­lel, using “promises” or whate­ver, in a language that has “pull stuff out of data­base and put it into the inter­net” as a proclai­med core compe­tency.
    • It’s not ok that echo 0.000001; produces 1.0E-6 and that casting it to string doesn’t help but putting quotes around it does.
    • It’s not ok that you have to clear the error buffer by gene­ra­ting a suppres­sed unde­fi­ned variable error just to be able to sanely use token_get_all().

    Au final la moitié des items ressemblent juste à « ça ne fait pas ce que j’es­père ». Alors pour ceux qui m’ont fait suivre le lien :

    Pour le premier item il existe plusieurs solu­tions, dont un simple array_values($tab)[0]. Bref, rien d’ex­cep­tion­nel pour aller itérer sur un diction­naire.

    Pour le second, si on demande expli­ci­te­ment au niveau du système à affi­cher les résul­tats suivant les conven­tions d’un pays spéci­fique, PHP s’y conforme. C’est le cas de la plupart des langages, y compris la ligne de commande de base. Diffi­cile d’avan­cer que c’est un problème, d’au­tant qu’il est bien évidem­ment possible d’igno­rer la confi­gu­ra­tion du système pour forcer une locale au niveau du langage.

    Quant à savoir comment affi­cher 0.000001 ou 1E-6, comme le langage n’a aucun moyen de savoir comment a été tapé la valeur initiale dans le code source (rien de spéci­fique à PHP, à ma connais­sance aucun ne le fait), il faut bien qu’il choi­sisse une forme arbi­trai­re­ment à la sortie. Si l’au­teur veut forcer autre chose, il a tous les outils pour ça.

    Pour le dernier item j’ai la flemme de véri­fier les cas limites mais à priori c’est juste que l’au­teur n’a pas eu le courage d’al­ler créer un gestion­naire d’er­reur pour gérer ses erreurs.

    Bref, tout ça c’est bien joli mais à première vue une bonne partie n’est qu’un problème de déve­lop­peur frus­tré, pas un problème de langage.

    Ce qui me frustre moi c’est que des problèmes de langages il y en a plein, et que pous­ser des faux problèmes décré­di­bi­lise ceux qui essayent de corri­ger les problèmes réels.

  • Bonnes pratiques API – les fichiers

    J’ai eu la chance d’échan­ger autour des API à trois confé­rences récem­ment. Les sujets ont été globa­le­ment les mêmes mais sous des angles diffé­rents.

    Mes réflexions avancent suite aux discus­sions et aux diffé­rents retours. Main­te­nant c’est à moi de travailler un peu pour ordon­ner tout ça et le retrans­crire quelque part.

    Entre temps je mets en ligne mes notes et mes présen­ta­tions pour ceux que ça inté­resse.

    Je vous recom­mande surtout les notes et la présen­ta­tion Paris-Web comme premières lectures. Norma­le­ment les trois présen­ta­tions ont été enre­gis­trées en vidéo, vous devriez les retrou­ver sur les pages des diffé­rents événe­ments le temps que le montage soit terminé (mais en géné­ral ça prend du temps).

  • Paris web en une anec­dote

    Il y a quelques minutes : Ques­tions réponses après une confé­rence tech­nique qui débor­dait sur l’éthique, sur l’in­te­rac­tion entre la tech­no­lo­gie et notre monde.

    À deux langues de distances, l’ora­teur à une confé­rence tech­nique répond à une ques­tion d’un malen­ten­dant. Inter­prète LSF-français, traduc­tion français-anglais, en direct. Même chose dans l’autre sens.  Au-dessus défile un sous-titrage auto­ma­tique de tout ce qui est dit, le tout (audio, vidéo, sous-titrage) trans­mis en direct sur le web.

    Parler d’ac­ces­si­bi­lité est une chose, le faire en est une autre.

    Si je dois résu­mer ce qui a été créé à Paris Web et que je ne retrouve nulle part ailleurs, même en dehors de nos fron­tières, je crois que ce sont ces quelques minutes qui l’ex­priment le mieux.

  • Forte baisse des salaire en raison de la pénu­rie d’in­for­ma­ti­ciens

    Remix Jobs relance la polé­mique sur la mythique pénu­rie d’in­for­ma­ti­ciens. Les mêmes rengaines arrivent chaque année entre juin et septembre. Cette fois ci, une semaine après, on voit dans la presse « Forte baisse des salaires à l’em­bauche en SSII ».

    Je n’ar­ri­ve­rai pas à comprendre comment on peut consi­dé­rer qu’il y a tension au recru­te­ment tout en faisant bais­ser les salaires. Ce n’est pas tant que les infor­ma­ti­ciens soient mal payés – ils ne le sont pas – mais les salaires d’autres pays sont bien plus haut, donc logique­ment la diffi­culté de recherche devrait faire monter les salaires au moins au niveau des voisins.

    Et qu’on ne se trompe pas, si la propor­tion des expé­ri­men­tés passe en dessous du tiers pour les nouvelles embauches, ce n’est pas qu’ils sont rares, c’est que personne n’a envie de payer pour l’ex­pé­rience avec autant de jeunes diplô­més sur le marché.

    Métier mal consi­déré, loca­tion de person­nel (majo­rité des embauches en SSII), salaire en baisse, déve­lop­peurs français recon­nus comme bons et mieux payés à l’étran­ger, déva­lo­ri­sa­tion du déve­lop­peur avec plus de cinq ans d’ex­pé­rience (« il aurait du passer chef de projet »)… il ne faut pas s’éton­ner que certains claquent la porte des recru­teurs français.

  • Vive la trans­la­tion du jargon

    J’ai cher­ché comment traduire « commit » dans le contexte d’un contrôle de versions type git ou subver­sion. J’ai eu quelques propo­si­tions qui peuvent permettre de construire des phrases au cas par cas, mais aucun terme vrai­ment éclai­rant et géné­rique.

    Mais surtout je me suis heurté à pas mal de réac­tions concer­nant l’idée même de traduire le terme.

    Fran­che­ment je ne cherche pas à « défendre la langue française ». Elle va très bien, merci pour elle, et surtout elle ira d’au­tant mieux qu’elle restera vivante et s’au­to­ri­sera à impor­ter des termes étran­gers. Il est d’ailleurs amusant de voir de temps en temps de la résis­tance à impor­ter un terme anglais… qui est en fait un terme français qui a été importé outre-manche ou outre-atlan­tique il y a bien long­temps. Bref, là n’est pas la ques­tion.

    Ma petite histoire

    C’est Eyrolles qui m’a pas mal ouvert les yeux sur l’uti­lité d’une traduc­tion. À l’époque de la rédac­tion de mon livre sur PHP, ils nous ont imposé de cher­cher au maxi­mum des traduc­tions.

    • Premier constat : Quand on cherche, le plus souvent, on trouve un terme français qui corres­pond très bien.
    • Second constat : Le plus souvent même ceux qui n’uti­lisent que les termes anglais ne remarquent même pas qu’il y a eu effort parti­cu­lier de traduc­tion.

    Tout le monde utilise thread, parser, template, tag… mais fina­le­ment un fil de discus­sion ou d’exé­cu­tion, un moteur ou un analy­seur syntaxique, un gaba­rit, une balise ou une étiquette, ça fonc­tionne très bien aussi. En fait ça fonc­tionne même mieux, avec une lecture bien plus fluide quand bien même les termes sont rare­ment fran­ci­sés dans le contexte infor­ma­tique.

    Il m’a ainsi fallu pas mal de volonté pour faire un chapitre sur les gaba­rits de pages HTML en PHP. Damned, j’ai résisté et voulu écrire « template » jusqu’au bout. Je me demande même si nous n’avions pas fini sur un compro­mis en lais­sant « template » dans le titre de chapitre en crai­gnant que « gaba­rit » ne soit pas immé­dia­te­ment compris. Sauf qu’au final je suis bien content de l’avoir fait ce chan­ge­ment.

    Abra­ca­da­bra

    J’ai vu trop d’in­for­ma­ti­ciens utili­ser les termes anglais comme des formules magiques. J’ai même eu plusieurs discus­sions à l’époque du choix de « gaba­rit » où on m’a expliqué qu’un « template » c’était diffé­rent parce que [insé­rez ici une conno­ta­tion imagi­naire]. Moins mon inter­lo­cu­teur avait de recul sur ce qu’il mani­pu­lait et de compré­hen­sion du fonc­tion­ne­ment, plus il était atta­ché au terme anglais. Cette consta­ta­tion n’a jamais été démen­tie (atten­tion à ne pas vous vexer : je ne prétends pas que la réci­proque est vraie).

    Si je tiens au français, c’est juste­ment pour parler français et pour ne pas utili­ser de termes formules magiques où chacun y met son propre imagi­naire. Ça permet de norma­li­ser le discours, de lais­ser prendre du recul à ceux qui sont trop habi­tués à copier sans comprendre, et de parler du fonc­tion­ne­ment plus que d’une série d’ou­tils et de commandes.

    Comme la plupart des infor­ma­ti­ciens, j’ai beau­coup tendance à utili­ser l’an­glais dans mon jargon. J’ai toute­fois pu noter de réelles diffé­rence d’im­pact et de compré­hen­sion dès que je fais l’ef­fort d’uti­li­ser des termes français. Et cette faci­lité d’échange ne concerne pas que les débu­tants : Je la constate aussi face à des habi­tués du terme comme de la tech­nique qu’il recoupe. À vrai dire plus la personne en face a du recul et de la compré­hen­sion, plus on peut parler de ce qu’il y a derrière et autour et plus la langue utili­sée est un détail.

    À l’usage

    Seule l’ha­bi­tude fait un peu résis­tance, mais pas tant que ça. En fait tout l’enjeu c’est de trou­ver un terme qui sera immé­dia­te­ment compris sans réflé­chir par un natif fran­co­phone, même par celui qui n’uti­lise que le terme anglais dans sa vie profes­sion­nelle. Très souvent on trouve, et si extrê­me­ment peu de mes corres­pon­dants parle­ront eux-même de fil d’exé­cu­tion, aucun ne tique quand je le fais.

    Il reste quelques termes diffi­ciles à traduire. Le plus souvent ce sont des termes qui ont déjà été détour­nés de leur sens usuel en anglais. Forcé­ment, trou­ver un terme français revient aussi souvent à le détour­ner de son sens usuel… et là ça coince. À l’écrit, quand ça arrive, je tente de forcer un peu le terme français s’il me semble viable, quitte à mettre le terme anglais en paren­thèses à la première occur­rence.

    Et quand rien ne va ? et bien j’uti­lise l’an­glais, ça me va aussi très bien. Fuck à l’Aca­dé­mie Française qui créé un nouveau mot complè­te­ment déli­rant par volonté abso­lue de ne pas utili­ser l’an­glais. Ce n’est pas ma moti­va­tion. Par contre j’en arrive là après une recherche sérieuse, avec l’aide de ceux qui le veulent.

    Et pour « commit » alors ? Après un nombre impor­tant de contri­bu­tions sans aucune suffi­sam­ment claire et géné­rique – de mon avis person­nel – Karl a proposé le simplis­sime « enre­gis­trer ». Ça ne plaira peut être pas aux puriste, mais j’ai l’im­pres­sion que ça colle parfai­te­ment à pas mal de sens qu’on donne à « commit », et que je trou­ve­rai bien les termes pour les quelques sens manquants avec les notions de version et tran­sac­tion. Ceci dit ça reste un sujet ouvert pour moi.