[gull] langages et type systems

Daniel Cordey dc at mjt.ch
Fri Aug 8 17:36:19 CEST 2008


On Tuesday 05 August 2008 18:40:47 Philippe Strauss wrote:

> Dure dure, à 30 et quelque, plus comme à 20-25 ans.. Merde suis déjà
> un vieux crouton.

Et que devrais-je dire... a... 51 :-)

> Objets et procédures: le fonctionnel apporte une troisième corde à ton
> arc pour organiser, construire,...

(digression)

Oui, je sais... j'ai pratique LISP pendant un moment et j'ai trouve tres 
amusant. Je suis bien consciens que les nouveaux langages comme ML, Haskell, 
etc. offrent bien plus de chose que LISP, mais cela m'a permit de me 
familisariser avec cette approche. Je ne concois pas un programme comme une 
entite mathematique. Sans doute cela est-il du aux types de problemes que j'ai 
eu a traite et que je traite encore. Les nombreuse situations que j'ai 
rencontrees impliquait souvent des processus asynchrones, des entrees 
multiples... mais, et c'est sans doute la la clef, les contours des problemes 
n'etaient jamais clairement definis a la base. Au lieu de cela, j'ai toujoyrs 
ete dans l'imperative necessite de concevoir des chose dont l'aspect le plus 
important etait le besoin d'evoluer en permanence. Ceci n'empeche pas 
l'application d'une approche fonctionnelle, mais explique peut-etre les raisons 
qui m'ont pousse a considerer avant tout le "probleme" plutot que l'algorithme.

En francais, on parle d'informatique alors qu'en anglais on parle de "computer 
science". Le mot "compute" a une connotation "calcul/algorithme (fonction)" 
alosr que l'ethymologie du mot informatique inclus information. J'ai donc plus 
une approche information/donnees ce qui me pousse a penser structures de donnees 
auxquelles j'applique des algorithmes. On peut faire evoluer tout probleme vers 
l'un ou l'autres des deux extremes (donnees par opposition a algorithme) et cela 
depend d'autres contraintes que les pures besoins algorithmiques ou des donnees. 
Je suis plutot tendance "j'applique des bouts d'algorithmes a la strcuture des 
donnees" que "je developpe des algorithmes au travers desquels je fais passe des 
donnees". C'est une sorte de tendance que j'ai developpe avec le temps et qui 
represente une sorte de compromis. J'ai aussi realise que j'avais pu utilise des 
langages et des techniques differents qui avaient evolues avec le temps; bien 
que les structures de donnees aient peu evolue. La POO permet de traiter les 
donnees comme des ensembles et j'ai toujours dans l'idee de me replonger dans le 
domaine de la tehorie des ensembles flous (fuzzy sets) afin de mieux definir 
formellement mes ensembles d'objets, mais ce sera sans doute un projet de 
"retraite" vu le temps a disposition...

Je pense aussi qu'un bon langage ne s'impose que s'il represente le meilleur 
compromis. Il n'y a donc pas un seul bon compromis pour tous les problemes, mais 
sans doute un ou deux bons compromis suivant le domaine d'application. Il y a 
plein de bon langages tres interssants qui ont ete developpes depuis les debuts 
de l'informatique. Certains sont, ou ont ete, tres repandus alors que d'autres 
sont restes confines a des domaines tres specifiques. D'autres sont meme restes 
des langages purement academiques.

L'important est sans doute de rester curieux en investiguant en permanence 
d'autres langages, et de se forcer a evoluer des que cela devient pertinent. 
Reconnaitre qu'un langage est plus adapte a un certain probleme necessite 
justement de garder les yeux ouverts, mais ce n'est pas toujours facile. Chaque 
langage peut tout faire, mais parfois cet entetement confine au ridicule...

Oui, merci Philippe de ce petit rappel concernant la programmation 
fonctionnelle. Je vais donc me forcer a lire, enfin, quelques articles ete 
exmemple au sujet d'OCAML :-)

> Langages académiques: je crois pas, en tout cas pas en lisant les les
> sources de soft ou librairie ocaml,
> genre spamoracle est assez magnifique. Oh tu peux eventuellement te
> dire que du code propre comme
> cela, l'auteur avait peut-être pas trop la pression des deadlines etc.

Tout langage permet de faire des choses propres (a part ***, *** et ***) de meme 
que tout langage permet de faire des horreurs (surtout ***, *** et ***).

> Perso c'est vraiment une démarche pragmatique: je m'intéresse au
> traitement du signal audio, C,

Je comprends :-)

> j'ai plus
> envie de me tapper du malloc 

Je m'etais fait des outils (en C, C++) extremenet puissant. Afin d'eviter les 
bus-error, les SIGSEGV et les memory-leaks. Tres facile a utiliser, a 
debugger... le top quoi... En programmation, c'est une absolue necessite !
Je reste stupefait de constater que jamais quoi que se soit d'identique n'ait 
jamais ete developpe. J'aimerais bien le mettre en GPL, mais je n'ai jamais eu 
le temps de le porter en 64 bits et cela reposait sur une dizaine d'autres 
librairies d'outils que j'avais developpe sous HP-UX. Je n'ai non plus jamais eu 
le temps de l'adapter a Linux... peut-etre un jour si j';ai de nouveau besoin de 
C de maniere intensive :-)

> et de la GUI en C,

Pourtant Motif c'etait sympa... 3500 fontions avec Xtoolkit... C'est un poil 
mieux avec Qt/GTK, mais ca reste assez lourd...

> C++ jamais accroché,

T'as de la chance :-)

> python et perl j'ai bcp apprécié l'expressivité,
> mais c'est très lent pour du traitement du signal.

Exact !

> Ocaml génère du code, grosso-modo entre 10 et 25% plus lent que C,
> alors voilà un compromis qui me convient:
> langage avec forte expressivité mais économe en CPU.

Comme tu le dis : bon compromis !!!
 
> Tu retrouves, dans les structures de données d'ocaml, le même plaisir
> qu'avec Python, et l'apport du pattern matching
> pour traiter des types de données "custom", notamment en arbre ou
> graph, ben c'est difficile de faire sans après y avoir touché.

Ah, ca semble d eplus en plus interessant...

> A déconseiller fortement donc ;-) (c'est peut être pour qu'il se se
> démocratise pas des masses: bcp de personnes se
> disent "merde, si j'y touche j'y reste crocher, faisons comme si cela
> n'existait pas". Je me souviens m'être dit cela un jour).

:-)

Bon WE a tous  (et toutes)

dc

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://forum.linux-gull.ch/pipermail/gull/attachments/20080808/18d4b4e6/attachment.htm>


More information about the gull mailing list