Au contraire, j'aurais personnellement tendance à dire qu'en pratique, on n'utilise pas tant que ça la Turing-completeness des langages de programmation, sauf à la marge. Ce qui me porte à croire que le futur réside dans la programmation purement fonctionnelle totale, comme implémentée dans Coq ou Agda.
Certes, actuellement on peut difficilement les utiliser comme langages de programmation de tous les jours, mais on peut quand même faire des trucs marrants.
Mais il y a Paris et Paris. Je viens de la zone, et quand je jaspine avec des caves, des fois, y en a qu'entravent peau d'zob à ce que bonnis. Et je parle même pas des keums de mon terter à qui ça fout le seum chanmé de voir ces narvalos de l'Académie.
Des Femens danoises déjouent un attentat contre le parti socialiste
La section danoise du mouvement féministe a en effet mis à jour les tentatives avérées de groupuscules néo-nazis de commettre un attentat contre la seule femme ayant été premier ministre en France. En effet, elles ont révélées que des Anonymous islamistes hostiles au mariage pour tous auraient tenté de soumettre Édith Cresson à un fort rayonnement ionisant en piratant les routeurs wifi de l'Assemblée nationale. Ces hackers auraient profité d'une faille dans le pare-feu OpenOffice pour arriver à leur fin. Indigné, Jean-François Coppé a demandé au service informatique de l'Assemblée de démissionner immédiatement.
[La suite de cet article est protégée. Désactivez JavaScript pour y accéder.]
Si on en crois la thèse de Church-Turing tous les programmes sont sémantiquement équivalent
Faut arrêter avec l'argument de Turing-completeness des langages de programmation pour justifier de leur expressivité. À peu près n'importe quel système est Turing-complet[1], et en général, dès qu'on essaye de créer un langage de programmation, fût-il domain-specific, il se retrouve Turing-complet.
Dans ce cadre, on ne parle pas de la sémantique calculatoire mais plutôt de la facilité d'étendre un système en restant compatible avec ses garanties intrinsèques, comme le typage par exemple.
On pourrait même être encore plus extrémiste et affirmer que le futur des langages de programmation, ce sont justement des langages non Turing-complets qui ont des garanties ultra-fortes sur l'exécution. Dans la veine des langages purement fonctionnels totaux où on ne peut même pas écrire une fonction qui ne termine pas…
Pour prendre une grosse application en OCaml que je connais pas trop mal, Coq, qui tape dans les 230 kloc, je peux témoigner que les exceptions, ça ne passe vraiment pas du tout à l'échelle.
Quant tu reçois une exception à toplevel, elle est passée par trois ou quatre phases de rattrapage-puis-relançage, rendant le parcours du flot de contrôle aussi aisée que du trekking dans les Andes avec l'association française des tétraplégiques. Sans compter le fait que c'est une vraie horreur de repérer les fonctions qui peuvent lever des exceptions, et que certains usages font songer que les développeurs de Coq doivent avoir des personnalités multiples pour arriver à créer un langage aussi pur et écrire des gorkeries d'un niveau inégalé. Je peux citer l'exemple d'une fonction de cinquante lignes qui utilisait récursions, références et exceptions dans un gloubiboulga de contrôle, alors que ça se réduisait à un bête fold sur une liste avec une fonction pure, sans perte d'efficacité…
Qu'on me pardonne le truisme qui va suivre, mais le droit sur les base ne porte que sur les bases dans leur ensemble.
En gros, tu as le droit de prendre deux ou trois items de ladite base (modulo les droits de l'item en question), mais repomper de larges portions est interdit.
Les licenses de Gallica ont toujours été abusives. IANAL, mais partant du principe que « la numérisation ne crée pas de droit¹ », j'utilise tout ce qui provient de Gallica sans m'occuper de leurs conditions. S'ils ne sont pas contents, eh bien ! Il n'ont qu'à m'attaquer en justice, et on verra bien ce qui se passera !
module T :
sig
type +'a t = private string
type nom = [`NOM] t
type prenom = [`PRENOM] t
val cast : string -> 'a t
end =
struct
type 'a t = string
type nom = [`NOM] t
type prenom = [`PRENOM] t
let cast s = s
end
(et éventuellement d'autres fonctions de création.)
Le code est plus générique, et permet en sus des trucs bien sioux. Notez bien par exemple la covariance du type +'a t dans la signature. En la mettant contravariante et à l'aide des variants polymorphes, on peut mimer le sous-typage des records ou des objets. J'ai pas d'exemples simples sous la main, mais la technique est assez employée.
« Par appât du gain, Wikipédia décida d'attirer les hordes sans nombre des Kévins de l'Interwob.
« Et cette bibliothèque d'Alexandrie édifiée dans la souffrance fut submergée par les lolcats en quelques heures.
C'est un fait assez étonnant : je n'ai jamais entendu le mot « algorithmie » en dehors de linuxfr. Le mot est pourtant attesté par le TLFi, ce qui n'est pas rien. J'ai pour ma part toujours entendu « algorithmique » en lieu et place, et ce, dans une communauté assez vaste, de la prépa à tous les labos d'info que j'ai pu fréquenter.
Alors quid ? Est-ce une variante régionale ? Une variante sociologique, d'usage chez les ingénieurs ? Obi-wan Kenobi ?
P.S. : je trouve ce mot assez moche, et milite pour l'utilisation d'algorithmique à la place. Est-ce que vous dites la rythmie d'un morceau, vous ?
[^] # Re: Comme quoi !
Posté par Perthmâd (site web personnel) . En réponse à la dépêche Weboob atteint le .g. Évalué à 4.
… ou zobcatcher…
[^] # Re: C++ std::future
Posté par Perthmâd (site web personnel) . En réponse à la dépêche Sortie du livre « Parallel and Concurrent Programming in Haskell ». Évalué à 4.
Au contraire, j'aurais personnellement tendance à dire qu'en pratique, on n'utilise pas tant que ça la Turing-completeness des langages de programmation, sauf à la marge. Ce qui me porte à croire que le futur réside dans la programmation purement fonctionnelle totale, comme implémentée dans Coq ou Agda.
Certes, actuellement on peut difficilement les utiliser comme langages de programmation de tous les jours, mais on peut quand même faire des trucs marrants.
[^] # Re: Donc en résumé
Posté par Perthmâd (site web personnel) . En réponse au journal Wikipédia : Siatz nets, parlatz francés !. Évalué à 10.
Certes.
Mais il y a Paris et Paris. Je viens de la zone, et quand je jaspine avec des caves, des fois, y en a qu'entravent peau d'zob à ce que bonnis. Et je parle même pas des keums de mon terter à qui ça fout le seum chanmé de voir ces narvalos de l'Académie.
# Publicité mensongère
Posté par Perthmâd (site web personnel) . En réponse au journal Camlistore, système de stockage universel, opensource et protégeant de la vie privée?. Évalué à 9.
Non mais allô !
Appeler un logiciel Camlistore alors qu'il est écrit en Go, c'est un peu comme si on décidait de lancer un noyau iLinux…
[^] # Re: Tant pis...
Posté par Perthmâd (site web personnel) . En réponse au journal Le téléphone portable donne des tumeurs au cerveau. Évalué à 3.
Et des coucougnous !
# Breaking news
Posté par Perthmâd (site web personnel) . En réponse au journal Les dangers du Wifi enfin prouvés !. Évalué à 10.
Des Femens danoises déjouent un attentat contre le parti socialiste
La section danoise du mouvement féministe a en effet mis à jour les tentatives avérées de groupuscules néo-nazis de commettre un attentat contre la seule femme ayant été premier ministre en France. En effet, elles ont révélées que des Anonymous islamistes hostiles au mariage pour tous auraient tenté de soumettre Édith Cresson à un fort rayonnement ionisant en piratant les routeurs wifi de l'Assemblée nationale. Ces hackers auraient profité d'une faille dans le pare-feu OpenOffice pour arriver à leur fin. Indigné, Jean-François Coppé a demandé au service informatique de l'Assemblée de démissionner immédiatement.
[La suite de cet article est protégée. Désactivez JavaScript pour y accéder.]
[^] # Re: Automatisation indispensable
Posté par Perthmâd (site web personnel) . En réponse au journal Point de vue : un IDE est il un outil de programmation indispensable ?. Évalué à 6.
Faut arrêter avec l'argument de Turing-completeness des langages de programmation pour justifier de leur expressivité. À peu près n'importe quel système est Turing-complet[1], et en général, dès qu'on essaye de créer un langage de programmation, fût-il domain-specific, il se retrouve Turing-complet.
Dans ce cadre, on ne parle pas de la sémantique calculatoire mais plutôt de la facilité d'étendre un système en restant compatible avec ses garanties intrinsèques, comme le typage par exemple.
On pourrait même être encore plus extrémiste et affirmer que le futur des langages de programmation, ce sont justement des langages non Turing-complets qui ont des garanties ultra-fortes sur l'exécution. Dans la veine des langages purement fonctionnels totaux où on ne peut même pas écrire une fonction qui ne termine pas…
[1] http://xkcd.com/505/
[^] # Re: Web 1.0
Posté par Perthmâd (site web personnel) . En réponse au journal Le web à 20 ans. Évalué à 2.
L'œil avisé remarquera l'emploi chic et élégant du Flash dans la bannière…
[^] # Re: Mouais
Posté par Perthmâd (site web personnel) . En réponse au journal Davfi, le premier antivirus libre français.. Évalué à 10.
Toi, tu vas te faire suicider dans un parking…
# Le vrai scandale
Posté par Perthmâd (site web personnel) . En réponse au journal De la honte que constitue le clavier français et des actions à entreprendre pour y remédier. Évalué à 10.
Moi, je pense que le problème honteux, issu de normes faibles, de compromis et de laisser-faire, ce sont les claviers qui se blo
[^] # Re: Cacacacacaca
Posté par Perthmâd (site web personnel) . En réponse au journal 10 ans de libcaca. Évalué à 1.
Moi aussi, j'ai toujours cru que c'était une espèce de rongeur !
[^] # Re: Python
Posté par Perthmâd (site web personnel) . En réponse au journal Adopter un style de programmation fonctionnel. Évalué à 5.
Ouais enfin en Python, tu rates l'essentiel des langages de programmation fonctionnelle, à savoir la puissance du système de types.
Python et Lisp, même combat !
# Techno-terrorisme
Posté par Perthmâd (site web personnel) . En réponse au journal Google menace de déréférencer la presse française.. Évalué à 10.
Et moi, je menace de déréférencer le pointeur nul !
Segmentation fault akbar !
[^] # Re: dommage
Posté par Perthmâd (site web personnel) . En réponse au journal The Future of Functional Programming Languages. Évalué à 6.
Pour prendre une grosse application en OCaml que je connais pas trop mal, Coq, qui tape dans les 230 kloc, je peux témoigner que les exceptions, ça ne passe vraiment pas du tout à l'échelle.
Quant tu reçois une exception à toplevel, elle est passée par trois ou quatre phases de rattrapage-puis-relançage, rendant le parcours du flot de contrôle aussi aisée que du trekking dans les Andes avec l'association française des tétraplégiques. Sans compter le fait que c'est une vraie horreur de repérer les fonctions qui peuvent lever des exceptions, et que certains usages font songer que les développeurs de Coq doivent avoir des personnalités multiples pour arriver à créer un langage aussi pur et écrire des gorkeries d'un niveau inégalé. Je peux citer l'exemple d'une fonction de cinquante lignes qui utilisait récursions, références et exceptions dans un gloubiboulga de contrôle, alors que ça se réduisait à un bête fold sur une liste avec une fonction pure, sans perte d'efficacité…
[^] # Re: Mais?
Posté par Perthmâd (site web personnel) . En réponse au journal Le Livre d'heures de Jeanne de France : une arnaque !. Évalué à 1.
Le Bailly est sur Hathi Trust. Je peux le télécharger page par page pour toi si ça t'amuse…
[^] # Re: Comme d'hab
Posté par Perthmâd (site web personnel) . En réponse au journal Le Livre d'heures de Jeanne de France : une arnaque !. Évalué à 5.
Qu'on me pardonne le truisme qui va suivre, mais le droit sur les base ne porte que sur les bases dans leur ensemble.
En gros, tu as le droit de prendre deux ou trois items de ladite base (modulo les droits de l'item en question), mais repomper de larges portions est interdit.
# Comme d'hab
Posté par Perthmâd (site web personnel) . En réponse au journal Le Livre d'heures de Jeanne de France : une arnaque !. Évalué à 5.
Les licenses de Gallica ont toujours été abusives. IANAL, mais partant du principe que « la numérisation ne crée pas de droit¹ », j'utilise tout ce qui provient de Gallica sans m'occuper de leurs conditions. S'ils ne sont pas contents, eh bien ! Il n'ont qu'à m'attaquer en justice, et on verra bien ce qui se passera !
[¹] http://www.culture.gouv.fr/culture/mrt/numerisation/fr/dll/juridi.html
# Un peu faible
Posté par Perthmâd (site web personnel) . En réponse au journal Les types fantômes. Évalué à 6.
Ça me paraît être une utilisation très simple des types fantômes, et ça ressemble plus à l'insertion d'une dose de typage nominal en utilisant des signatures de modules que des types fantômes full-fledged©.
La manière de faire usuelle est plutôt du genre :
(et éventuellement d'autres fonctions de création.)
Le code est plus générique, et permet en sus des trucs bien sioux. Notez bien par exemple la covariance du type +'a t dans la signature. En la mettant contravariante et à l'aide des variants polymorphes, on peut mimer le sous-typage des records ou des objets. J'ai pas d'exemples simples sous la main, mais la technique est assez employée.
# Apocalypse 42-I
Posté par Perthmâd (site web personnel) . En réponse au journal Projet Athéna : "un coup de pied dans la fourmilière". Évalué à 10.
« Par appât du gain, Wikipédia décida d'attirer les hordes sans nombre des Kévins de l'Interwob.
« Et cette bibliothèque d'Alexandrie édifiée dans la souffrance fut submergée par les lolcats en quelques heures.
[^] # Re: FUD
Posté par Perthmâd (site web personnel) . En réponse au journal Banc d’essai OpenGL/Direct3D de Source engine par Valve. Évalué à -2.
The cake is a lie…
[^] # Re: Mémoire?
Posté par Perthmâd (site web personnel) . En réponse à la dépêche Appel à contributions : Archives et contenus BBS et Minitel. Évalué à 4.
L’arme noble d’une époque révolue…
[^] # Re: on peut faire 'Back' pour aller mettre le bonne réponse.
Posté par Perthmâd (site web personnel) . En réponse au journal Tout le monde a gagné. Évalué à 5.
call/cc ?
# De l'usage des synonymes
Posté par Perthmâd (site web personnel) . En réponse au journal De l'enseignement de la programmation en classe préparatoire. Évalué à 3.
C'est un fait assez étonnant : je n'ai jamais entendu le mot « algorithmie » en dehors de linuxfr. Le mot est pourtant attesté par le TLFi, ce qui n'est pas rien. J'ai pour ma part toujours entendu « algorithmique » en lieu et place, et ce, dans une communauté assez vaste, de la prépa à tous les labos d'info que j'ai pu fréquenter.
Alors quid ? Est-ce une variante régionale ? Une variante sociologique, d'usage chez les ingénieurs ? Obi-wan Kenobi ?
P.S. : je trouve ce mot assez moche, et milite pour l'utilisation d'algorithmique à la place. Est-ce que vous dites la rythmie d'un morceau, vous ?
[^] # Re: durée et distance
Posté par Perthmâd (site web personnel) . En réponse au journal VGER near to be out, stay tuned. Évalué à 7.
Trente-cinq ans, plutôt.
# Déjà fait
Posté par Perthmâd (site web personnel) . En réponse au journal Nous, les enfants nés avec le réseau, par Piotr Czerski. Évalué à 2. Dernière modification le 25 février 2012 à 01:17.
Les confessions d'un enfant du Sieć, c'est has been.