Le 28/02/2019 à 14:37, Vincent Duvernet a écrit :
Mon Dieu, l'ADA, mais quelle horreur.

Merci Vincent de me donner l'occasion de parler de Ada, qui s'écrit ainsi car c'est un prénom féminin. ADA c'est l'American Dental Association ou l'Americans with Disabilities Act ou un loueur :)

Ada est le prénom du premier programmeur de l'humanité, qui était une femme, Ada Byron, Countess of lovelace, née en 1815.

Ses programmes (comprenant tous les concepts usuels comme des variables, des fonctions, etc...) prévus pour la machine de Babbage (qui n'a jamais été achevée) ont été implémentés 120 ans plus tard. Ils se sont tous exécutés sans un seul bug.

Ada est un langage compilé ultra portable, syntaxe à la Pascal, avec un runtime normalisé ISO très riche. Il gère directement le multitâche, le temps-réel, la programmation par preuve et la programmation distribuée (dans le langage lui-même, aucune nécessité de lib externe). C'est aussi un langage très très très productif (peu d'anomalies .

Les versions Ada 2005, 2012 et bientôt 2020 ont ajouté beaucoup de concepts sympas, dont certains en provenance de Java (interfaces). Inversement, pas mal de concepts sympas de Ada se retrouvent dans Java ou Python.

Mais Ada est lui un vrai langage compilé qui gère les dépendances d'une façon si rigoureuse qu'aucune explosion à l'exec n'est envisageable pour ça. Ceux qui, comme moi, doivent aussi bosser avec des langages interprétés, comme JS et Java, apprécieront la disparition de ce que l'on appelle souvent "l'enfer des dépendances".

Ada permet de faire réellement de l'ingénierie logicielle et de réutiliser des composants logiciels pour créer des programmes selon les mêmes méthodes que celles des ingénieurs construisant un pont, un immeuble ou un navire. Avec la même garantie de bonne fin, dans le respect des délais (et souvent en avance d'ailleurs).

Je conçois que tout le monde ne soit pas fan de .NET mais au moins il reste le 
C/C++.

Pourquoi opposer .NET, langage plutôt bien conçu par l'inventeur de Delphi (et que beaucoup préfèrent à Java) avec le C, sorte d'assembleur plus ou moins portable dont l'industrie ne saurait se passer ?

Ce sont juste deux langages pour des usages différents...

Par contre le C++, dont l'emblème devrait être l'ornithorynque, est bien conçu pour tuer sa productivité et améliorer sa pratique de GDB (le debuggueur GCC).

Un usage conseillé du C++ est d'inventer un langage personnel afin de se rendre indispensable dans l'entreprise, par exemple en redéfinissant par des macros des mots clés et des classes : le résultat est prodigieux ;).

Sérieusement, on peut faire des choses superbes en C++. Mais il faudra s'appliquer. Beaucoup plus que dans d'autres langages. Le simplisme apparent du C++ a un coût caché : devoir s'astreindre à beaucoup de règles très strictes pour atteindre un certain niveau de qualité.

Non mais franchement, si la première condition est fausse, à quoi ça sert que 
ce stupide langage teste aussi les autres ?
Certes, mon prof' d'Algo était pro-ADA lorsque j'étais déjà convaincu par la 
supériorité du C (oui c'était au millénaire précédent ^^)

No war & Peace, Ada me permet juste de partir plus tôt du boulot pour aller me baigner, d'oublier GDB, d'être portable sans toucher ni caster une variable de 8 à 64 bits, de porter une application Gtk de 40K lignes de doze à nux ou 200K lignes de doze à nux batch du premier coup sans une seule erreur. On ne peut pas faire ça en C++. C'est impossible.

Le tout avec les perfs du C/C++ (c'est le même backend GCC) mais en moins de lignes et incomparablement plus maintenable. D'ailleurs tous les compilos Ada sont validés et produisent des binaires aux résultats identiques.

Initialement, je citais ce langage juste pour dire qu'on peut en faire sur un bidule aussi simple qu'un Arduino (petite carte bien fun).

Puisqu'on en parle, plus d'info sur ce papier fait pour le Paris Open Summit 2017... https://stef.genesix.org/pub/embedded_AVR-Ada_-_Setup_POSS2017.pdf

Pour regarder de plus près :
http://www.getadanow.com
https://www.adacore.com/community (pour devs GPLv3)
https://packages.debian.org/sid/gnat (pour devs commerciaux)

L'essentiel est de programmer avec le langage qu'on aime et qu'il soit approprié à l'objectif à atteindre.

Et de rester curieux de ce que l'on ne connaît pas. C'est pour ça que je suis sur FRnOG, et que j'apprends plein de trucs :)



---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à