mon interprétation du code fourni
Bonjour à tous,
Ce que je pense du blog*?
Si on veut être méchant, ça ressemble à une crise nerveuse de quelqu'un agacé par quelque chose qui le dépasse*: ça c'est fait.
Mais soyons plus constructif*:
En premier lieu du haut de très nombreuses années d'utilisation de nombreux langages de programmation et de script, je peux dire que ce n'est pas dans le langage que réside complexité informatique.
En effet, et particulièrement avec les systèmes assistés comme par exemple Eclipse, Netbean, Visual Studio ou Xcode pour l'Objective C d'Apple, la syntaxe s'apprend assez rapidement et il est même difficile de faire une erreur de syntaxe non signalée et non auto-corrigée.
Pour gérer les événements, de nombreux "Wizards" sont disponibles.
Ce qui est compliqué, c'est précisément traduire notre «*pensée humaine*» en code rigoureux et non ambigu.
Souvent, et même chez les professionnels de l'informatique, il s'avère déjà difficile de traduire sa pensée en langage naturel qui ne comporte pas d'ambigüité*: Pourtant, c'est la première étape cruciale du développement informatique.
Je conseillerait une démarche à M. Tompkins*:
Suivre le tutoriel de Xcode en essayant de comprendre ce qui est proposé (programmer c'est penser, pas cliquer!)
Lire le maximum de doc d'Apple sur le sujet*: elle est très bien faite (En anglais, mais ce langage n'est pas trop compliqué pour lui non?)
Faire quelques exemple très très simples.
Quand il aura assimilé le fonctionnement technique (c'est comme la voiture, pourtant accessible à tout le monde, il faut des heures de conduite accompagnée avant de se lancer seul sur la route), bien mettre sur papier la description précise de ce que doit faire son programme en partant du plus général au plus détaillé (évidemment l'idéal serait de connaître UML, mais je crains que ça lui fasse peur) et ensuite, seulement à ce moment là, commencer à programmer son application.
La programmation n'est ni trop complexe ni trop simple*: comme le dit lui même M. Tompkins, il y a plus de 40 ans d'évolution des langages. Quand on n'a pas connu les langages de première, 2ième voire 3ieme génération, on peut ne pas comprendre certaines subtilité de la syntaxe et de la sémantique des langages d'aujourd'hui.
Ce qui est compliqué, c'est ce que l'on veut faire faire à l'informatique maintenant*:
La gestion multimédia, les accès distant et partagés, les communications hétérogènes,le multilinguisme, la répartition de charge, le multi-tâche, une gestion accrue de la sécurité, le traitement de quantités de données de plus en plus important et j'en passe (beaucoup) et des meilleures.
Le mythe du «*je pense, donc je programme*» existe mais il ne sera pas résolu de sitôt.
Allez, un dernier clin d’œil*:
Quand j'ai appris à faire du vélo, je n'arrêtais pas de tomber dans un tas de cendres froides. J'ai tourné toute la journée autour jusqu'à ne plus tomber. Ensuite, j'ai pu partir tranquillement en suivant les allées*: eh, oui rien n'est facile quand on veut faire par soi même*!
le journaliste a raison ?
Très modestement, ce qu'il faudrait, c'est modéliser le fonctionnement humain dans tout ce qu'il a de variable et de surprenant et mettre tout cela dans une bibliothèque. Bref, créer un cerveau mais sans volonté ni désir: ces deux derniers attributs resteraient la prérogative du développeur improvisé. Cool !
Notre journaliste rêve de devenir dieu :)
L'informatique vue par un électronicien
Quand j'ai fait mes études, il y avait le basic, le cobol et le fortran, tous trois facile à apprendre en quelques heures et cours et un peu d'expérimentation.
Puis sont arrivés les premiers microprocesseurs et l'assembleur. Egalement simple à appréhender, très puissant, mais qui impose de bien connaître le hardware de la machine utilisée.
Puis sont arrivés le C et le Pascal. Le Pascal, assez limité, ne cause aucune gêne pour son apprentissage car toutes les règles et syntaxes sont connues et simples. Par contre, le C, même si on l'utilise basiquement, a une syntaxe plus complexe. Il a de plus des possibilités plus ou moins cachées qui n'apparaissent pas dans les docs et ne sont pas enseignées. Ce sont ces possibilités qui sont largement utilisées par les développeurs experts et qui rendent ce langage incompréhensible.
Puis sont arrivés les langages dits "objets", Borland C++ et tous les autres. Si leur principe est théoriquement très simple, il faut bien se rendre à l'évidence que les syntaxes utilisées complexifient énormément leur apprentissage.
Et il n'y a pas que la syntaxe qui rebute. Le paramétrage de Microsoft Visual C++ est toujours une source d'angoisse, même pour un développeur expérimenté. Au bout de X années, il a compris qu'il y avait certains paramètres à ne pas toucher, que d'autres étaient souvent sources d'erreurs, etc ..., sans en comprendre les raisons.
La question n'est pas seulement la syntaxe du langage, mais aussi par exemple :
- comment et où vais je trouver les fichiers exécutables nécessaires pour diffuser mon application ?
- comment trouver une bibliothèque pour ouvrir des images ?
- comment faire une IHM ?
Il y a quelques décennies, le logiciel était souple et était largement utilisé pour compenser les défauts du matériel.
Aujourd'hui, les responsables de projet cherchent à modifier le matériel pour compenser les bugs et les manquements du logiciel.