un demi-siècle de Pascal

Les bouquins, les scans, les pdf ou les liens qui vont bien... ici c'est la bibliothèque.

Modérateurs : Carl, Papy.G, fneck

Avatar de l’utilisateur
bubulemaster
Messages : 696
Inscription : 01 juil. 2014 13:48
Localisation : Nantes

Re: un demi-siècle de Pascal

Message par bubulemaster »

Je suis un fan du pascal/pascal objet (Lazarus est vraiment top).
Dommage que de nombreuses personnes, parce que c'est un vieux langage, trouve qu'il est obsolète.
Le 80286 et suivant sont des processeurs beaucoup trop évolués qui n'auraient jamais dû être inventés :-).
Vinted | Le bon coin | Ebay
Fool-DupleX
Messages : 1327
Inscription : 06 avr. 2009 12:07

Re: un demi-siècle de Pascal

Message par Fool-DupleX »

C est un langage presque aussi vieux que Pascal et pourtant il est toujours très utilisé. La différence tient probablement du fait que C est très intimement lié à Unix, qui perdure à travers Linux de nos jours, même si les noyaux n'ont rien à voir. Alors que Pascal n'a pas réussi à se faire une place aux côtés d'un projet d'envergure.

J'ai beaucoup codé en Turbo-Pascal dans les années 80-90 et j'ai adoré ce langage, notamment par son côté très structuré. Mais dans les années 2000, avec l'arrivée de Java, la principale implémentation de Pascal, à savoir Delphi, qui était déjà en retrait question orienté objet par rapport à C++, a montré ses vraies limites. De toute façon, je crois qu'on peut dire que Borland a commencé à mourir avec le départ d'Anders Hejlsberg chez Microsoft, chez qui il développera C# ...

J'aimais énormément la logique des environnements Turbo puis Builder de Borland et je n'ai jamais retrouvé exactement ça dans les outils Embarcadero. Ces derniers m'ont toujours laissé un goût d'inachevé et d'imparfait.

Mais Freepascal et Lazarus sont formidables. D'abord parce qu'ils sont libres et gratuits, mais aussi parce que la qualité est au rendez-vous. Freepascal a réussi à faire évoluer le langage, par exemple avec la possibilité de surcharger les opérateurs, et avec une gestion mémoire moins rigide. Et Lazarus reprend les codes de l'environnement Builder/Delphi. Ca donne presque envie de recommencer à coder en pascal.
__sam__
Messages : 6067
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: un demi-siècle de Pascal

Message par __sam__ »

J'avais lu une explication de Kerninghan (>>ici<<) de pourquoi Pascal n'a pas vraiment pris dans l'industrie & le monde réel. Pascal est avant tout un langage pour apprendre mais contient de gros défauts réels pour les trucs sérieux.

Ah j'oubliais de dire, le gars en question, c'est le K du standard K&R, l'un des inventeurs du C et de Unix... et donc même si au départ je me disais que son avis était biaisé en faveur de son propre langage, je remarque que son analyse est très juste.

Perso j'aimais bien le Pascal à l'école. Faire les TPs était facile avec lui (et le compilateur super rapide); mais pourtant dans ma carrière je n'ai croisé le Pascal que jeune diplômé au début des années 90' pour programmer des petits trucs sur Macintosh (ah les histoires de bureaucrat.. qui s'en souviens?).. mais rien de très "scalable" / "réutilisable" en comparaison de ce que je pouvais se faire à coté sur des stations de travail de l'époque avec des projets de plusieurs développeurs et du code réutilisable entre projets.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Fool-DupleX
Messages : 1327
Inscription : 06 avr. 2009 12:07

Re: un demi-siècle de Pascal

Message par Fool-DupleX »

CQFD me semble-t-il, entre K et les stations de travail, ça sent bon Unix ... :D

C'est amusant parce que plusieurs des arguments de Kerningham ne s'appliquent pas à Turbo-Pascal, sorti deux ans après cette critique et encore moins à Delphi. Ces défauts ont été corrigés. La partie sur les chaines de caractères par exemple est sans objet dans Turbo-Pascal.

Turbo-Pascal lui-même a été réécrit en Turbo-Pascal (initialement 100% assembleur) et Freepascal a des mécanismes objets très similaires à C++ avec virtualisation, surcharges, etc. Mais ça vient peut-être un peu trop tard ...
__sam__
Messages : 6067
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: un demi-siècle de Pascal

Message par __sam__ »

Oui K parle aussi du fait que les limites du pascal originel sont levés par les différents constructeurs de compilateurs, mais chacun avec un solution propriétaire incompatible avec les autres Pascal, donc pas viable sur le long terme.

De fait les standard d'uniformisation sont super important dans le monde réel où les projets peuvent durer sur des dizaines d'années et survivre à différentes versions et fabriquants de compilateur. Pascal a échoué sur ce point car le standard ISO 7185 le définissant n'est apparu qu'en 1990, à une époque où le C était déjà dominant et où le C++ commençait à se faire remarquer.

Il me semble en outre qu'il ne réglait toujours pas les problème importants relevés par Kerningham 10 ans plus tôt comme par exemple que les fichiers sont organisés en record (file of type) ne permettant pas de mélanger les types ou faire du traitement interactif (API de stream comme en C). De même les tailles de tableaux sont forcément des littéraux (des nombres décimaux, pas même paramétrables via des constantes) ne permettant pas de réaliser des bibliothèques d'algorithmes sur des tableaux de tailles variables. De fait c'est même les tableaux de taille variable qui sont manquants dans le standard. Les pointeurs et l'allocation dynamique (new) ne permettent pas de s'en sortir: pas de paramètre pour passer une taille de tableau, pas de possibilité de flèche "indexée" (genre pointeur^(index)) permettant d'accéder à la case "pointeur+indexe", etc. On peut au mieux allouer un "objet" d'un type défini, donc d'une taille fixe. On est obligé d'utiliser des listes chainées en pascal, au détriment des performances, de l'occupation et de la fragmentation mémoire. Mais par contre c'est assez pédagogique sur les structures de données (les profs aiment bien ca.)

Ces problèmes de base me semblent persister jusqu'aux FreePascal et GnuPascal actuels, même si ces derniers ont ajoutés de la programmation orientée objets pour faire plus moderne.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
Mokona
Messages : 735
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: un demi-siècle de Pascal

Message par Mokona »

Pascal et BASIC ont selon moi une progression assez similaire. Ce sont deux langages qui ont été conçus pour être limités. C'est à dessein.

Les deux font de grosses simplifications par rapports aux langages "pro" de leurs époques, afin de pouvoir être enseignés, dans un environnement « protégé ». Par exemple, aucun de ces deux langages n'a été conçu pour accéder à la machine sous-jacente : aucun des deux ne peux adresser une partie physique non prévue de l'environnement (pas de PEEK/POKE sur BASIC initialement, les BASIC des 8bits ont déjà beaucoup d'évolutions par rapport au BASIC initial ; pas d'adressage absolu en Pascal).

Ils ont tous les deux réussis leurs objectifs de langages d’apprentissage, qu'il soit académique ou personnel, sur micro. Et toutes les personnes qui ont appris la programmation avec ces langages ont suivi l'ouverture de ceux-ci à de nouveaux concepts, au fur et à mesure que les limitations (volontaires!) se trouvaient sur leurs chemins.

Les deux langages ont évolués peu à peu vers de l'utilisation pro, en intégrant de plus en plus de concepts externes. Mais en faisant ça, outre le fait que ce fut fait dans le désordre le plus total, ces langages ont tordus leurs desseins initiaux. Cela a tenu un temps, car les programmeurs formés sur ces langages en comprenaient l'historique et s'étaient investis dedans. Au final, face à des langages créés sans ces limitations initiales car créés pour des objectifs différents, ils ont fait doublons.

Ils sont toujours vivants, utilisés, mais devenus très marginaux.
Zebulon
Messages : 672
Inscription : 02 nov. 2020 14:03

Re: un demi-siècle de Pascal

Message par Zebulon »

Dans mon secteur professionnel le langage de loin le plus utilisé n'est pas Basic, Pascal, C, C++, C#, Java... mais COBOL.

Par contre je m'interroge sur les critères qui peuvent qualifier un langage comme "pro" ou pas pro.

Est-ce qu'une PME qui développerait une solution logicielle pour un marché de niche avec des outils exotiques (allons y prenons des trucs de ouf comme PowerBuilder ou WinDev) faisant vivre des dizaines de salariés à travers les décennies serait moins "pro" qu'une entreprise du CAC 40 dont le SI est un zoo de toutes les technologies "pro" qui se sont succédées durant ces mêmes décennies ?
Avatar de l’utilisateur
Mokona
Messages : 735
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: un demi-siècle de Pascal

Message par Mokona »

C'est vrai que c'est une classification délicate si on regarde la réalité de l'utilisation d'un langage (ou d'un environnement).

BASIC et Pascal ont eu des aspects pro... puisqu'ils ont servis à écrire des logiciels pro.

Ma distinction ne se fait qu'en termes d'objectifs initiaux lors de la création du langage. Pour « quoi » a été développé le langage. L'histoire montre que le destin des langages sont très variés et pas toujours liés à leurs desseins initiaux.
Fool-DupleX
Messages : 1327
Inscription : 06 avr. 2009 12:07

Re: un demi-siècle de Pascal

Message par Fool-DupleX »

... même si ces derniers ont ajoutés de la programmation orientée objets pour faire plus moderne.
L'orienté objet en Pascal existe depuis Turbo-Pascal 5.5 à la fin des années 80, quand même. Et les tableaux dynamiques sont supportés dans plusieurs implémentations du langage, dont Freepascal.

Pascal a fait des petits : Oberon, Ada ... Oberon est très utilisé en robotique, Ada a servi sur le projet Ariane. Et pourtant, tous ces langages n'ont jamais vraiment décollé. Je suis d'accord que le manque d'un vrai standard est un problème.

D'un autre côté, BASIC était omniprésent dans les années 80, y compris pour des logiciels professionnels. Pascal Base, le compilateur Pascal pour Thomson, est écrit très largement en BASIC ...

COBOL est tellement utilisé qu'on manque cruellement de développeurs.

Le point soulevé concernant Windev et ce genre d'outils est intéressant aussi.

Je ne suis pas sûr qu'on puisse définir des langages pro et pas pro. Je crois surtout que c'est une question de mode et d'adéquation avec les moyens et les besoins informatiques du moment. Microsoft était le roi du BASIC et avait les moyens de l'imposer ad vitam eternam, ils ont quand même fini par lâcher l'affaire.

Python est devenu très populaire ces dernières années, pourquoi ? Pas pour sa syntaxe, c'est certain. Ni pour ses performances. Je pense que c'est essentiellement en raison du nombre incroyables de librairies disponibles, qui permettent de faire tout et n'importe quoi en 1 ou 2 lignes de code.
__sam__
Messages : 6067
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: un demi-siècle de Pascal

Message par __sam__ »

Ada a servi sur le projet Ariane. Et pourtant, tous ces langages n'ont jamais vraiment décollé.
Tu l'as fais exprès ? :mrgreen:

A propos de python, là au taf je tente de génèrer des rapports d'analyse automatisé de code en ce moment... Un outil dont le backend de génération de rapport html est écrit en python3 mets 4h et 8go de mémoire pour générer un rapport sur un fichier de quelques centaines de KO. Je ne sais pas ce qui coince dans le générateur de HTML.. est-ce le parsing de l'outil d'analyse (gros XML généré par un programme C), est-ce la bibliothèque tierce pygments pour faire de la colorisation syntaxique dans le résultat, l'intepréteur python3 ? Je n'en sais rien, mais je vois que ce truc est clairement un boulet qui ralenti tout le process.

Python laisse croire à des programmeurs du dimanche que c'est facile de programmer, que c'est sans effort, qu'il suffit de trouver les bonnes bibliothèque et coller tout ca ensemble pour avoir un super programme sans avoir à réfléchir aux algorithmes ou à la consummations de mémoire. Hélas c'est illusoire tout ca. Python c'est bien pour bricoler, mais j'ai comme l'impression que ca ne passe pas, mais pas du tout, à l'échelle.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
Silou78
Messages : 287
Inscription : 11 févr. 2017 14:54
Localisation : Yvelines (78)

Re: un demi-siècle de Pascal

Message par Silou78 »

Ada est quand même encore très utilisé pour tout ce qui est logiciel embarqué contraint (sûreté de fonctionnement / sécurité des personnes) notamment dans les domaines de l'aéronautique et du ferroviaire.
Dans le ferroviaire c'est quasi le seul langage admis avec Modula-2 et Pascal (recommandé à hautement recommandé) par les normes européennes et internationales pour les logiciels de niveau de sûreté SIL2/4.
Sylvain
Les + malins et les + chanceux sont au sommet, les autres grenouillent.
La vie est un éternel combat contre soi-même.
Avatar de l’utilisateur
hlide
Messages : 2325
Inscription : 29 nov. 2017 10:23

Re: un demi-siècle de Pascal

Message par hlide »

A noter que le langage VHDL est dérivé de l'ADA. :)
Avatar de l’utilisateur
Mokona
Messages : 735
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: un demi-siècle de Pascal

Message par Mokona »

Fool-DupleX a écrit : 05 mars 2021 15:51 Python est devenu très populaire ces dernières années, pourquoi ? Pas pour sa syntaxe, c'est certain. Ni pour ses performances. Je pense que c'est essentiellement en raison du nombre incroyables de librairies disponibles, qui permettent de faire tout et n'importe quoi en 1 ou 2 lignes de code.
La syntaxe de Python est clivante. Je croisé beaucoup de monde pour qui sa syntaxe EST un point positif important (peut-être parce les gens similaires ont tendances à se rencontrer et que lorsque j'ai adopté ce langage il y a euh... longtemps... sa syntaxe était un des points dans la colonne des positifs).

Côté performance, il avait été mesuré il y a quelques années comme un langage plutôt écologiquement faible (rapport entre sa demande en énergie et sa production). Mais Python est essentiellement utilisé en tant que chef d'orchestres d'autres éléments, souvent eux écrits dans d'autres langages et plus performants.

Ce côté accessible est probablement ce qui a fait sa popularité. Après, comme toute popularité, il y a une part de chance et d'emballement (plus c'est populaire, plus c'est attractif, plus c'est populaire...).

Python est selon moi à la place que tenait BASIC dans les années 80/90. Ce qui peut vouloir aussi dire qu'un jour, sa popularité s'écroulera :)
__sam__
Messages : 6067
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: un demi-siècle de Pascal

Message par __sam__ »

Oui mais tout ca est juste de la surface selon moi. Les vrais soucis avec python sont plus profonds.

J'ai fait du python professionnellement il y a maintenant 17 ans (c'était python 2.3) et entre temps il y a eu 2.7 et 3.0 avec des choses qui se sont accumulées dans le langage rendant la maintenance quasi impossible (la division a/b qui ne se comporte pas pareil entre les pythons 2.x et 3.0), et voir totalement incompréhensibles (les lambda ne sont toujours que des expressions forçant à des jongleries pas possibles avec les compréhensions ou les définition de fonctions dans des fonctions, bref du code non maintenable qui n'a de sens qu'au moment de l'écriture par son concepteur, mais qu'il sera incapable de décrire ce que ca fait plus tard.)

Bon je parle là du langage non pas pour ses aspect cosmétiques (les tabulations, la documentation, la compacité, courbe d'apprentissage légère, etc), mais ses propriétés propres de vrai langage de programmation moderne, puissant, rigoureux. De fait je n'arrive toujours pas à le considérer comme un truc robuste. Tout juste je lui reconnait d'être un langage adapté au bricolage par un public pas conscient de la qualité de ce qu'il fait, se contentant du "bah c'est col ca m'a pris même pas 2h et ca a l'air de marcher". Le genre de public qui ne s'étonne pas qu'un programme utilise 8Go pour parser 300ko de fichier texte...

Et dire que dans l'enseignement en France, le Pascal a été remplacé par Python en 2015 comme premier langage de programmation. Ca ne va pas aider à faire des programmes rapides et efficace. Je ne m'étonne même plus de voir des stagiaires n'ayant strictement aucune connaissance de complexité d'algorithmes et d'optimisations (ils ne se rendent même pas compte à quel point les listes par compréhension sont intrinsèquement lentes car les éléments sont régénérés à chaque fois).

sam (<== vieux schnock sans doute).
Dernière modification par __sam__ le 06 mars 2021 01:10, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre