Faut-il simplifier la programmation et revoir ses fondements ?
Un journaliste s'essaie au développement et dénonce sa complexité

Les rubriques (actu, forums, tutos) de Développez
Réseaux sociaux


 Discussion forum

Le , par Idelways, Expert Confirmé Sénior
De toute évidence, maîtriser un langage de programmation raisonnablement populaire, aussi complexe soit-il, ne peut être en aucun cas comparé à la difficulté d'apprendre une langue naturelle.

Pourtant, des personnes qui se lancent dans le développement trouvent énormément de difficultés à prendre leurs marques, et se sentent exclues dans une ère où les applications sont fondamentalement au coeur de nos vies. Où « le code s'élève à l'importance de l’alphabétisation ».

Chris Tompkins est un consultant journaliste qui vient de vivre l'une de ces expériences qui poussent certains à remettre en question leurs capacités intellectuelles et prédispositions naturelles pour un domaine qui leur est étranger, tout en scellant dans l'oubli le souvenir de cette tentative.

Mais pas lui !

Chris Tompkins rejette plutôt la faute sur les concepteurs des langages de programmation et remet en question tout le fondement du domaine tel qu'on les connaît.
Il estime que les inventeurs insèrent délibérément de la complexité dans les langages pour flatter leur propre ego, aux dépens des personnes (les enfants notamment) que cette complexité éloigne chaque jour du monde du développement.

Malgré une maîtrise du JavaScript qu'il estime suffisante, sa tentative récente d’apprendre l'Objective-C l'a mis devant un constat pour lui révoltant : « c'est bien trop dur », s'écrit-il sur un billet de blog qui remue actuellement la blogosphère anglophone.

Chris Tompkins est certainement au fait qu'il existe des langages de haut niveau, conçus pour rendre les développeurs plus heureux ; de ceux qui permettent d'écrire des DSL (langages dédiés) à d'autres, encore immatures, qui proposent de programmer en langage (presque) naturel.

Seulement, le coup de gueule de Tompkins s'abat précisément sur le langage C inventé il y a 40 ans, une référence ayant inspiré un tas d'autres langages populaires.

Le C est à la base de l'Objective-C, qui le complète et permet de mixer dans le même code des instructions issues des deux mondes. Un langage plébiscité par Apple, notamment pour le développement natif pour Mac OS et iOS.

Notre journaliste mécontent a souhaité écrire une application iPhone (où seuls les langages natifs sont autorisés), probablement pour satisfaire un besoin personnel. Il n'arrive pas à concevoir que la barrière pour y arriver soit aussi élevée.
Car après tout, on n'est jamais mieux servi que par soi même, même en développement.

Pour expliquer son point de vue, Tompkins propose une analogie décalée et probablement exagérée, mais intéressante : programmer en C revient d'après lui à connaître le génome des ingrédients alimentaires pour pouvoir les utiliser dans son petit repas !

Il se demande pourquoi ne pouvons-nous pas coder comme on fait pour cuisiner ? Comme quand on part choisir les plus belles tomates au supermarché du coin, les utiliser sans se soucier de comment, ni de quoi sont-elles réellement faites.

Les bibliothèques, frameworks et autres bases de codes, qui mettent à la disposition des développeurs des millions de lignes de code prêtes à entrer en action, ne suffisent pas d'après Tompkins qui plaide pour la création d'un langage à syntaxe naturelle qui formera une base plus simple pour l'apprentissage de la programmation.

Bref, il conclut son billet fort polémique en plaidant pour la simplification du code, comme un geste de « charité » envers ses semblables, au risque « d'empêcher des milliers, voire des millions de voix, d'arriver aux utilisateurs ».

Source : blog de Chris Tompkins

Et vous ?

Que pensez-vous de ce billet de Blog et de la position de son auteur ?
La programmation est-elle d'après vous plus complexe qu'elle ne devrait l'être ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Bluedeep Bluedeep
http://www.developpez.com
Inactif
le 02/10/2012 18:06
Citation Envoyé par Mat.M  Voir le message
oui d'accord mais ne pas être de mauvaise foi il n'y avait pas autant de salariés que maintenant et pas autant de SSII.

Pas autant de salariés, c'est sur.
Pas autant de SSII, je ne sais pas car tu avais finalement assez peu de "grosses" et un tas de SSII de moins de 10 personnes.

Il y a 30ans l'informatique c'était des gros systèmes qui tenaient sur plusieurs m3 dans une pièce ventilée..

Là, tu confonds les époques.

Dans les années 70, oui, c'est vrai.

Au debut des années 80, tu avais les premiers micro qui arrivaient (je ne parle pas que des PC), qui ne nécessitaient pas de clim, qui fonctionnaient en réseau, (avec des systèmes comme Xenix, MPM 86, CTOS, etc ... )et certains "mainframe" du début des années 80 (Burroughs B95 par exemple) tenaient sur une table.(avec de gros pieds ....)

Alors pour l'exploitation dans les grosses boites, bien sur tu avais les mainframes qui nécessitaient un salle dédiée, mais aussi des versions "mini" de ces mainframe pour les PME ou pour le développement.
Avatar de el_slapper el_slapper
http://www.developpez.com
Expert Confirmé Sénior
le 02/10/2012 22:25
[QUOTE=yann2;6915518(.../...)

Je ne comprend pas bien le concept de dates différentes mais, je peux tout à fait comprendre le besoin du "sur mesure". J'ai l'impression que c'est cela que tu évoques. Donc, oui, je suis aussi d'accord avec toi, c'est un cas en marge qui mérite le travail d'un développeur.

Par définition, une "industrialisation" du "sur mesure" n'est pas rentable.

ps: industrialisation entre guillemets parce que dans ton exemple vous avez bien industrialisé en créant un framework maison. Mais il s'agit d'un travail interne. Aucune société n'a d'intérêt à sortir un outil industrialisant votre "sur mesure" (pfiou c'est compliqué d'écrire une phrase comme celle ci ).[/QUOTE]

Pour les dates, c'est normal, tant qu'on a pas mis son nez dedans, on ne voit pas. Mais il y a bel et bien besoin de gestion de date sur mesure.

En fait, il y a deux types d'outils : extérieurs, et intérieurs. Dans les deux cas, il permettent de simplifier des opérations répétitives. Si je créée un simulateur du moyen âge, je prend un composant extérieur de gestion de dates, et basta. On industrialise. Sinon, si ça ne suffit pas, on fait en interne.

Mais là ou on diverge vraiment, c'est quand tu dis "c'est un cas en marge". En fait, 90% de notre boulot, c'est de la marge. Prenons l'exemple d'une banque. Bon, on va dire que la compta et 2-3 autres trucs marchent bien. Maintenant, de temps en temps, un chef a besoin de savoir ou il en est de ses ventes de prêts subprime. Alors il demande à l'informaticien de faire quelques requêtes. Si la demande devient régulière, l'informaticien va lui mettre en place un mécanisme automatique. C'est une industrialisation, qui demande pas mal de boulot(même si on utilise des produits tiers comme BO).

Puis le chef veut contacter des clients. Au début, il le fait à la main. Puis il en a marre, et l'informaticien lui met en place une automatisation. Etc.....

Ce que je veux dire par là, c'est que nous passons notre temps à industrialiser les choses. Soit le boulot de notre client(du banquier au wargamer), soit le notre, en mettant en place des systèmes qui nous permettrons d'avancer plus vite. Mais pas de faire le boulot automatiquement. Si j'ai un nouveau projet qui a besoin de mon module de date Target, certes je n'ai pas à m'embêter avec ces dates, mais tous le reste est nouveau, et il faut le coder. Et, si il est susceptible d'être réutilisé, l'industrialiser. Mais au final, nous allons faire 90% d’expérimental. Si nous faisons moins, nous nous répétons, et donc nous n'avons pas correctement industrialisé là ou c'était pertinent. Notre boulot, c'est d'industrialiser, pas d'utiliser à longueur de journée nos industrialisations. Si ça nous prend la journée, c'est que c'est mal industrialisé.
Avatar de Mat.M Mat.M
http://www.developpez.com
Expert Confirmé Sénior
le 03/10/2012 17:20
Citation Envoyé par Bluedeep  Voir le message
Là, tu confonds les époques.

Dans les années 70, oui, c'est vrai.

ok mais je ne voulais pas parler d'une époque précise je voulais dire de manière vague..c.a.d. il y a quelques temps.
Est-ce que du temps de l'homme de Néandertal l'informatique existait ?
Sinon ok tu as parfaitement raison je suis dans l'erreur totale..
Avatar de Mat.M Mat.M
http://www.developpez.com
Expert Confirmé Sénior
le 03/10/2012 17:22
Citation Envoyé par yann2  Voir le message
Je ne peux pas faire une critique de cette méthode mais, visiblement il ne s'agit pas de pondre une application rapidement au détriment de la qualité.

Ou alors cela viendrait plutôt d'une confusion de ces décideurs qui pensent qu'on peut utiliser un outil RAD pour pondre une application sans penser à toutes les activités autres que la réalisation (recueil des besoins, spécifications fonctionnelles, qualités (recettes, tests, ...), ...). Et, cela rejoint ce qu'on disait plus tôt, et que GrandFather a très bien exprimé : "un outil mal utilisé donne un mauvais résultat".

Yann

c'est précisément ce que je voulais signifier
Avatar de Bluedeep Bluedeep
http://www.developpez.com
Inactif
le 03/10/2012 17:42
Citation Envoyé par Mat.M  Voir le message
ok mais je ne voulais pas parler d'une époque précise je voulais dire de manière vague..c.a.d. il y a quelques temps.

Ok, mais quand on écrit :

quand on pense que le métier de développeur informatique n'existait pas il y a 30ans ou à peine..

Ca désigne quand même une époque précise, non ? surtout quand on parle d'une technique qui n'a guère plus de 60 ans (si on exclut les calculateurs analogiques du périmètre), 10 ans en plus ou en moins ça compte.

Il y a 50 ans, je t'accorde que le métier de développeur n'existait quasiment pas; il y a trente ans, en revanche, on avait des SSII(on disait plutôt SSCI),des développeurs (on utilisait pas non plus ce terme, et on stratifiait entre programmeurs, analystes programmeurs, programmeur systèmes, analyste, etc ... sur mon premier bulletin de salaire en 85, c'était marqué "analyste stagiaire" - pourtant c'était un CDI, pas un stage).

Alors que dans un autre domaine, par exemple la verrerie, une erreur de cent ans n'a pas le même impact descriptif.

Est-ce que du temps de l'homme de Néandertal l'informatique existait ?

Je ne sais pas, on a perdu les données.
Avatar de souviron34 souviron34
http://www.developpez.com
Expert Confirmé Sénior
le 03/10/2012 18:00
Citation Envoyé par yann2  Voir le message
En effet, j'ai jeté un coup d'oeil, trop rapide je l'avoue, sur cette méthode

Normal, c'est du RAD

Citation Envoyé par yann2  Voir le message
Ou alors cela viendrait plutôt d'une confusion de ces décideurs qui pensent qu'on peut utiliser un outil RAD pour pondre une application sans penser à toutes les activités autres que la réalisation (recueil des besoins, spécifications fonctionnelles, qualités (recettes, tests, ...), ...). Et, cela rejoint ce qu'on disait plus tôt, et que GrandFather a très bien exprimé : "un outil mal utilisé donne un mauvais résultat".

Absolument, comme "l'Agilité" qu'on entend beaucoup ces années-ci...

Et maintenant "le cloud"..

Des buzz-words...

Citation Envoyé par Bluedeep  Voir le message
Au debut des années 80, tu avais les premiers micro qui arrivaient (je ne parle pas que des PC), qui ne nécessitaient pas de clim, qui fonctionnaient en réseau, (avec des systèmes comme Xenix, MPM 86, CTOS, etc ... )et certains "mainframe" du début des années 80 (Burroughs B95 par exemple) tenaient sur une table.(avec de gros pieds ....)

Alors pour l'exploitation dans les grosses boites, bien sur tu avais les mainframes qui nécessitaient un salle dédiée, mais aussi des versions "mini" de ces mainframe pour les PME ou pour le développement.

Tout à fait, moi j'ai commencé avec un PDP11-23 , comme un gros PC "tour", qui était déjà en fait un mini, puis un HP1000, un "mini" qui en fait était une armoire à peu près, mais parallèllement des MicroVax et VaxStations, des SUN Sparc2, et des Silicon Graphics, qui étaient des minis équivalent en taille des PCs "tour".. Et des PCs "petits" (syle Compaq) pour certaines applis...
Avatar de mumen mumen
http://www.developpez.com
Membre Expert
le 22/01/2013 20:18
Le langage informatique n’est pas une volonté née du besoin de fabriquer des programmes. Il est né des possibilités offertes par l’électronique. En termes de langages informatiques, plus on s’éloigne de la machine, plus on s’approche de l’humain, plus il faut de ressources.

C’est vrai que les ressources ont augmenté de façon extraordinaire. Mais la programmation c’est du mécano, plus de l’intelligence (la vraie, l’humaine), plus de l’expérience. Améliorer le mécano en termes de confort se fait régulièrement, mais un changement de paradigme tel qu'impliquent les réflexions naïves du journaliste paraît hautement improbable d’ici à quelques siècles.

Néanmoins, la naïveté du propos de ce journaliste est peut être intéressante d’un certain point de vue en ce sens qu’elle exprime peut être une certaine absence d’évolution non pas des langages, mais des logiciels dans un monde ou tout bouge à toute allure.

Le billet à l’origine du débat sur ce forum ne mentionne pas ce que voudrait faire ce journaliste sur son IPhone et c’est en effet fort dommage. J’imagine que cette demande formulée ici est du même ordre que ce qui arrive à des tas de gens tous les jours, qui cherchent de l’organisation sur leur machine et qui cherchent sans trouver à intervenir là-dessus au niveau « méta », c’est-à-dire à concevoir eux même leur propre organisation structurante.

Vous, développeurs, techniciens, connaisseurs des arcanes : comment faites-vous pour vous y retrouver sur votre OS préféré ? Entre les mails et les listes de contacts, les liens internet, les feuilles et documents de tous types, les divers outils téléchargés qui mémorisent des choses à vous, les relevés bancaires, les photos des vacances, les fichiers de référence, les anniversaires de vos amis, les textes écrits ici et là, les rendez-vous pro ou pas, la recette de cuisine et la liste des courses… Oui, nous sommes d’accord, parvenir à s’y retrouver sur nos machines c’est une gageure infernale, même pour nous, les gens censés être parmi les plus au top.

Je ne parle là que d’organisation personnelle. Pensez-y, combien d’entreprises de petite taille ont leur informatique de gestion ? Qui dans l’entreprise est capable de modéliser son propre agenda, ses contacts, ses achats ? Et surtout, comment ? Vous trouvez que Excel est top pour ça ? Que Access est facile ?

Le traitement de texte est un outil moderne incontournable et abordable sans trop de formation. Le tableur est plus délicat d’accès, mais l’investissement est léger. La base de données est complètement fermée, isolée par des tonnes de langages et de formats autistes. Domaine réservé, domaine impossible à démocratiser, impasse inentamée du développement depuis toujours. Mais qui donc essaye ???

Peut-être que c’est ça qu’il voulait dire le journaliste avec ses mots que beaucoup semblent prendre pour de l’incompétence, quand ce n’est que de l’ignorance.
Avatar de bedane bedane
http://www.developpez.com
Membre du Club
le 15/02/2013 14:14
Ce qu'il dit en conclusion de son expérience fait aussi office d'explication des causes de cette expérience:
Ecrire du blabla (si possible avec un effet troll pour engendrer des réactions) dans le but d'être lu par le plus grand nombre est beaucoup plus facile que d'écrire du code.

Merci vieux, mais perso, je le savais déjà.

En outre, si tu batailles déjà sur la complexité du langage lui-même, mieux vaut t'arrêter vite avant d'arriver sur les problèmes qui posent de vrais défis intellectuels : gestion des dépendances sur gros projets, maîtrise des design patterns, construction de frameworks etc
Avatar de moldavi moldavi
http://www.developpez.com
Expert Confirmé
le 24/02/2013 0:16
Bonjour.

Le lien du trolleur n'est plus accessible :

Source : blog de Chris Tompkins
Offres d'emploi IT
Directeur de projet expérimenté h/f
CDI
BULL FR - Rhône Alpes - Lyon (69000)
Parue le 26/06/2014
Ingénieur développement (h/f)
CDI
Kacileo - Ile de France - Paris (75000)
Parue le 11/07/2014
Ingénieur QA / Recette fonctionnelle pour un pure player Web et Mobile Parisien
CDI
MOBISKILL - Ile de France - Paris
Parue le 08/07/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula