Philosotique

Entre informatique et divagations philosophiques

Aucun commentaire
Linting is the process of checking the source code for Programmatic as well as Stylistic errors.
Le linting est le processus de vérification d'un code source, au niveau de programmatique comme au niveau du style.

~VSri58

Utilisez un linter dès lors que vous coder. La définition plus haut ne vous a pas convaincu ? Vous allez me forcer à faire un article sur les bienfaits de l'usage d'un linter ? Bon, comme il faut bien vivre (et que ce blog est sans publicités aucune), j'accepte volontiers votre offre.

Un projet se code rarement seul
Normalement vous le savez, on ne développe qu'assez peu seul. Il est bien plus agréable d'avoir une certaine constance sur l'ensemble d'un programme. Faut-il mettre l'accolade ouvrante sur la même ligne que le "if" ? Faut il mettre un "else" sur une nouvelle ligne ou simplement sur la ligne de l'accolade fermante ? camelCase ou snake_case ? Pour unifier le développement, il est utile d'avoir des lignes directrices, choisies et acceptées par l'ensemble des codeurs, pour que le code soit produit de manière uniforme. Est-ce que vous appréciez, dans une présentation PowerPoint vidéoprojettée quelconque, quand les titres ont parfois des majuscules mais pas partout ?
Avoir un code uniforme, ce n'est pas seulement plus "joli", ou "kawai", vous y bénéficierez forcément, à court terme comme au long.

Uniformiser pour sécuriser
Imaginez qu'un développeur ait plus tendance à attraper les erreurs dès l'ouverture des accolades, alors qu'un autre aura tendance à le faire en fin de bloc. Lors de la relecture, plutôt que de n'avoir à vérifier qu'en haut ou en bas du bloc la présence du soulèvement de la condition, il faudra lire minutieusement tout le code, augmentant ainsi le risque humain. Plus il y a de lignes, plus il y a de bugs.
Par ailleurs, tandis que Node.js ne requiert par exemple pas d'attraper les erreurs, mon fidèle linter lui, va me signaler qu'il faut que j'écrive :

if (err) {
  console.log(err);
  return;
}

On dit "Merci linter !".

La vitesse de développement compte
Coder, c'est bien. Coder vite et bien, c'est encore mieux. Si un de vos collègues utilise des noms de variables en snake_case, alors que vous n'utilisez que du camelCase, coment vous y retrouver ? Il doit vous passer des variables en argument, vous allez les renommer ? Accepter de perdre l'unification d'un projet ? Cela me paraît bien irréaliste, l'unification (par exemple) des noms de variables est cruciales dès lors qu'on ne veut pas relire à chaque seconde le code de son larbin collègue pour retrouver le nom d'une variable. Il en va évidemment de même avec les noms de fonctions, de classes...

Le langage fait style
Nous sommes en 2018 et pourtant le style des différents langages de programmation est loin d'être uniformisé. Même pour des langages récents ! Pensez au Rust, qui recommande l'utilisation du snake_case, tandis qu'en JavaScript le camelCase est largement préféré. Il en est de même pour le placement des accolades, qui se fait généralement après un retour à la ligne en C ou C++, tandis que les langages "récents" préfèrent mettre l'accolade ouvrante sur la même ligne. Il suffit de se balader un peu sur GitHub FramaGit pour constater que le style de développement change à la fois d'un projet à un autre, mais aussi d'un langage à un autre.

Quand syntaxe fait rapidité[/style]
Certaines pratiques principalement stylistiques permettent aussi d'améliorer la vitesse d'execution d'un programme. Par exemple, dans un langage comme le C, ce code :

for (i = 0; i < strlen(unStringCommeUnAutre; i++)

On pourrait améliorer la rapidité du code en stockant la taille du String dans une variable pour éviter d'avoir à la recalculer à chaque tour de boucle (bien entendu il faut s'assurer qu'aucune modification n'est faite au String et que l'on est pas limité en place dans la mémoire). De même, il est bien plus facile de trouver l'erreur dans un code comme (bon ici je vais utiliser du JavaScript pour montrer à la Terre entière mes compétences) :

var hasLetter = /[a-zA-Z]/;
return hasLetter.test(unAutreString);

Que de directement écrire :

return /[a-zA-Z]/.test(unAutreString);

qui serait quand-même bien plus difficile à relire.

[size=16]Le swag est réel
Non, sans rire, c'est quand-même super bien quand l'architecture d'un quartier est cohérente, qu'on ne passe pas d'un style haussmanien à une gigantesque barre d'HLM. Si la programmation est un artisanat comme un autre (voire potentiellement un art mais on abordera le sujet dans un prochain billet), alors l'apparence aussi compte.

Pensez-y dès le début
Dans la mesure où c'est extrêmement facile à mettre en place, pensez à établir des lignes directrices avant que la première ligne ne soit tapé. Imprimez-les, collez-les contre un mur ou dans vos têtes, elles sont cruciales pour n'importe quel projet. L'important, c'est vraiment de garder une cohérence tout au long du développement d'un programme (et même après, pensez aux mainteneurs). Corriger un programme, c'est avant tout comprendre dans quelles conditions il a été écrit.

C'est loin d'être une tâche à la difficulté Gargantuesque
(Vous aurez remarqué que là-aussi j'me la pète avec mes mots de cinq syllabes)
Une fois que vous aurez frappé vos collègues pour qu'ils codent comme vous vous serez mis d'accord sur les lignes directrices, il est la plupart du temps (sauf si vous avez choisis des règles farfelues) facile de trouver des plug-in pour vos IDE/éditeurs qui supportent votre manière de coder. Par exemple, en ce moment je code en JavaScript, j'adore la syntaxe de Standard, mais pour rester cohérent avec ma manière habituelle d'écrire, et ce alors que je sais que l'usage de ; est la plupart du temps inutile, je préfère en utiliser. Quelqu'un avant moi s'est dit la même chose, a produit SemiStandard, et c'est ce modèle que j'utilise. Quant à l'intégration, elle est très simple :
Comme j'utilise un éditeur de texte qui fait presque le poids d'un poids lourd récent et libre (Atom), je n'ai eu qu'à écrire :

linter-js-standard

Puis fermer/ouvrir Atom, continuer l'installation des dépendances graphiquement, fermer/ouvrir Atom, aller dans les paramètres grâce au raccourci "ctrl-," et dans les paramètres du package je n'ai qu'à eu à mettre en mode "semistandard", parce que je tiens à mes points-virgules.

Sur ce, pensez à établir des lignes directrices qui faciliteront le développement et la maintenance, et portez-vous bien !

1 commentaire
“Nos démocraties électives ne sont pas, ou de façon inaccomplie, des démocraties représentatives.”

~Paul Ricoeur (à lire sur l'ipséité).

En premier lieu, j'aimerais préciser que ma pensée a largement été influencée par :

Ensuite, je tiens à signaler le fait que j'écris sur le pays que je connais le plus, c'est-à-dire la France. Je ne sais pas tout à fait comment ça se passe ailleurs (aux États-Unis, en Suisse...) donc je n'en parlerai pas.

Contexte
C'est quoi pour vous, la démocratie ? Le pouvoir du peuple, par le peuple, pour le peuple ? C'est aller une fois tous les cinq ans aller mettre un bulletin dans une enveloppe ? C'est ne pas voir la différence malgré les candidats et les partis ? C'est une décéption ? En tout cas, c'est l'idée que je m'en faisais. Pendant longtemps, j'ai même pensé qu'une tyrannie "juste et honnête" pourrait lui être préférable.
Si comme moi vous avez fait votre scolarité en France, et que depuis votre naissance on vous a inculqué que Démocratie = droit de vote, alors évidemment le titre de l'article vous gêne. À vous je vous recommanderais de vous asseoir confortablement, de prendre une tasse de chocolat chaud (avec du cannabis de la crème Chantilly) et de continuer votre lecture.

La politique nous a échappée
Éthymologiquement parlant, la politique c'est la "vie de la cité", de la ville, ou plus généralement (à notre époque), d'un pays. Gérer un pays, c'est prendre des décisions, plein de décisions même. Quels accords signer, comment négocier, faut-il interdire ce pesticide, comment résoudre tel problème de société comme le chômage... Gérer un pays c'est difficile, chronophage ça prend du temps, il faut se pencher sur chaque questions pour avoir un avis détaillé, construit, argumenté. Plutôt que d'avoir en permanence à prendre des décisions réfléchies, faire des choix après mûres réflexions, nous avons préféré (on y reviendra plus tard) faire de ces tâches des métiers à part entière. Nous (citoyens lambdas) nous sommes coupés de la politique.
Par la voie électorale, nous élisons ceux qui sont le plus compétent pour prendre les décisions. Nous n'élisons pas un député ou un maire parce qu'il nous représente, parce qu'il est comme nous, mais parce que nous le jugeons "plus apte que les autres" à décider pour nous. C'est donc tout naturellement qu'on peut constater que cette classe dirigeante ne nous (toujours citoyens ordinaires) ressemble pas.
Mais alors, en quoi "Est-ce grave si des gens compétents, qui ont fait de longues études, nous dirigent ?" (me demanderez-vous, d'une voix niaise plein d'entrain)

"Aristos" : noble, seigneur
Par conséquent, par définition, nous sommes donc plus proches d'une "aristocratie élective" que d'une démocratie. Non pas que cela soit une mauvaise chose, mais j'abhorre que les mots soient dévoyés, travestis. Autant dire "nous vivons dans une aristocratie élective" que "nous vivons en démocratie". Les mots se doivent d'être précis (sinon on arrive dans 1984 et je n'en ai guère envie).
Je ne vois pas pourquoi un médecin, un avocat, un ingénieur, seraient plus à même de prendre une décision concernant les banques, les plombiers, les salles de sport, que n'importe quelle autre profession. Et c'est tout à fait normal bien entendu, personne ne peut maîtriser tous les domaines. C'est exactement pour ça qu'ils invitent des experts pour des "conférences", où on leur présente plusieurs points de vue, détaillés (c'est d'ailleurs très intéressant à aller voir, la plupart sont publiques) pour qu'ils soient plus à même de rendre un verdict. Il y a des débats, des présentations, bref tout est fait pour que quelqu'un qui ne comprenne pas le sujet puisse le comprendre. Mais alors, pourquoi donc un citoyen lambda ne pourrait-il pas remplir ce rôle ? Il ne suffit que de s'asseoir et d'écouter pourtant.
On va me rétorquer, "Je ne pense pas que voter pour mon boulanger plutôt que pour un médecin change grand chose dans ce cas, même s'il me représenterait plus". (et vous auriez raison)

Le droit de vote est anti-démocratique
Ce qui est important, c'est peut-être moins l'élu que la manière dont il est choisi. L'élection universelle directe "force" les candidats à mentir, à tromper, mystifier, bref, à entourlouper. C'est même plutôt normal, on a fait de la politique un métier, celui qui brigue un mandat va tout faire pour continuer son métier, continuer de gagner sa vie. Le politicien de métier, s'il n'est pas élu, va devoir trouver un autre travail. Il n'a donc d'autre choix que "d'optimiser la vérité" pour garantir ses chances, surtout que ses concurrents le feront aussi, il est donc nécessaire pour lui de tout faire pour se faire élire (d'où le "tous pourris"). Par ailleurs, une fois élu, le politicien va passer la dernière partie de son mandat à travailler à sa ré-élection. C'est-à-dire qu'il ne travaillera plus pour l'intérêt général, mais pour lui et continuer de garantir un revenu. Et encore une fois, c'est normal. Mais ce faisant, le droit de vote est le maux de problèmes inhérents à la "démocratie" représentative par suffrage.

Les influences externes
Regardez donc Les Nouveaux chiens de garde qui est un documentaire sur la manière dont les élites politiques et les médias sont liés. Demandez-vous comment un élu est élu. Si les banques et les grands groupes rachètent autant de journaux et de magazines, il suffit de voir la carte du Monde Diplomatique pour s'en apercevoir, quand bien même ils ne sont pour la plupart pas rentables ? C'est parce que ces multinationnales n'achètent pas des journaux pour s'enrichir directement, elles achètent de l'influence, qui permet de changer, contrôler, modifier l'opinion publique. Et bien entendu, ces grands groupes peuvent avoir une influence décisive dans une élection. Les politiciens, après avoir été mis au pouvoir par ces grands groupes, ne peuvent ensuite que les "récompenser" de l'offre d'emploi. Par conséquent, qui peut donc s'étonner de la politique libérale menée ?

Nous n'influençons plus le monde
Alors si pour vous, mettre un bulletin dans une urne, de temps en temps, peut-être un référendum ou deux (quitte à ce qu'on ne respecte pas l'issu dudit référendum), signifie avoir une vie active dans le processus de la gestion de l'état, grand bien vous face, votre naïveté vous rend chanceux. À cause de cette délégation de pouvoir, nous (les mêmes sempiternels citoyens comme les autres) qui avons accepté de confier notre pouvoir à d'autres, ne disposons au final que du maigre choix de candidats qui ne se différencient que peu. On change en permanence quelques détails pour toujours garder le même système identique. Aucun candidat,, ayant des chances crédibles, ne souhaite modifier radicalement le système dans lequel nous évoluons. Nous avons donc certes des choix qui s'offrent à nous et qui peuvent avoir des conséquences dans le système, mais jamais remettre en question le système. Les choix proposés ne sont que des détails, rien n'est fait pour modifier le libéralisme ambiant (si ce n'est l'accroître).

Le désamour pour la politique
Qui encore s'intéresse à la politique ? Si je demande à mes proches, il ne sont que peu à encore ne serait-ce que s'en intéresser. Il est plus facile de ne pas s'en préoccuper, de toute façon "c'est déjà géré par d'autres". Pourtant

"Si tu ne t'intéresses pas à la politique, la politique s'intéressera à toi."

selon l'adage populaire. Malheureusement, on nous a déresponsabilisé de la politique. On nous a décourager de la politique. Nous (devinez de qui je parle ? Une fois de plus, les citoyens "normaux") pourrions être impliqués, passionnés. Nous pourrions prendre à coeur ces sujets qui nous concernent tous. Nous pourrions devenir compétent, nous pourrions tous devenir des politiciens, nous pourrions remettre la vie de la cité au coeur de nos vies à nous, remettant ainsi la vie des autres dans nos vies. Mais nous l'avons oublié. Ou peut-être qu'on nous l'a fait oublié ? On nous a infantilisé.

Il nous faut nous battre
Ceux qui sont au pouvoir, c'est-à-dire ceux qui peuvent changer ces choses, quels intérêts auraient-ils à faire cesser ce système qui leur fournit un emploi, un statut social et d'autres avantages ? Qui de sain accepterait de perdre tout ce qu'il a ? Pourquoi voudrait-on éduquer un peuple à se soulever ? Si même dans l'Éducation Nationnale nous ne sommes pas politisés, c'est parce que c'est voulu, conscient. On ne fournit pas en armes un groupe rebelle. On ne fournit pas en savoir un peuple qui pourrait se rendre compte de sa condition, et qui pourrait vouloir vous renverser. Au contraire, on nous inculque dès le plus jeune âge que le droit de vote, c'est la démocratie au point qu'on en est tous convaincu. Comme dit dans cet excellent documentaire, quand on est au pouvoir, n'est-il pas préférable d'avoir des esclaves qui choisissent d'ignorer leur condition, que des esclaves qui ne souhaitent que la révolte ? Ceux qui sont au pouvoir sont régis par la Constitution. Constitution que ceux au pouvoir ont eux-même écrit il y a quelques dizaines d'années. Pensez-vous qu'ils se sont limités leurs pouvoir ?

Des solutions existent

«Est démocratique, une société qui se reconnaît divisée, c’est-à-dire traversée par des contradictions d’intérêt et qui se fixe comme modalité d’associer à parts égales chaque citoyen dans l’expression de ces contradictions, l’analyse de ces contradictions et la mise en délibération de ces contradictions, en vue d’arriver à un arbitrage."

~Paul Ricoeur (et oui, encore lui, que voulez-vous que je vous dise, donnez à cet homme un cookie).
Ces termes barbares se résument en "Chaque citoyen, à part égale, doit pouvoir exprimer son avis". La démocratie ce n'est pas choisir ses maîtres (suffrage), c'est directement voter pour ses lois.
"Mais Sören, tu critiques, tu critiques, mais tu ne proposes rien !" (Ça, c'est vous, d'un air nasillard, calmez-vous un peu enfin, j'y viens, j'y viens)

À mon sens, il existe deux possibilités :

Malheureusement pour vous, cet article est déjà beaucoup trop long (on dirait pas comme ça mais on est à quatre pages bien remplies), et je n'ai pas envie de plus l'éterniser. Je ne peux donc vous inviter qu'à vous-même faire vos recherches sur les sujets. C'est terrible, salaud que je suis, je vous force à vous instruire par vous-même. Vous pouvez me cracher dessus.

Sur ce, allez voir les liens que j'ai fourni, et passez une excellente vie :-)