Mouai, bah il peut défendre son TMTOWTDI tant qu'il veux Larry Wall, moi je vois que quand je lis du code Perl, 9 fois sur 10, ça m'explose le cerveau ce qui est moins le cas pour du Python (et aussi Ruby): et pourtant j'ai eu une formation en Perl mais pas en Python!
Donc si j'ai le choix entre faire du Perl ou du Ruby|Python, je ne choisirai pas Perl, malheureusement je n'ai pas le choix à cause de la base installée en Perl: de mon point de vue, Perl est le COBOL des langages de scripts.
Pour ce qui est de voir le coté programmation par script, bof, a par le poids de l'existant, je ne vois pas trop ce que Perl apporte par rapport a Ruby ou Python.
La remarque de letsyl me parait pertinente d'un point de vue encapsulation si le display doit connaittre tout tes objets, c'est pas terrible comme encapsulation.
Et '"Hello world".print();' est un raccourci de '"Hello world".print(display)'
Personnellement j'aurais mis D comme 'langage systeme' a la place de Go: il est développé depuis plus longtemps et me parait mieux armé comme alternative au C++.
Je connais le langage (Perl5 pas Perl6 qui est un tout autre langage malgrès le nom) et plus je connais moins j'aime donc je suis d'accord que tu ne loupes rien.
C'est un langage assez difficile a apprendre, les débutants font donc du code assez horrible, ça c'est assez normal, par contre là ou c'est plus génant c'est que les gens expérimenter en Perl ont développer chacun leur propre style et là niveau maintenance c'est pas terrible!
Visiblement l'auteur de reia aime bien les objets 'lourds': d'après l'example, String a une methode puts et d'après son blog une methode 'parse': '2+2'.parse.
Bof, ce n'est pas le style que je prefere mais bon le langage a l'air intéressant parce que la syntaxe d'Erlang, beurk!
Les parentheses 'inutiles' montrent au lecteur qu'il s'agit d'un appel de fonction, en plus ici avec effet de bord!, je ne les trouve pas si inutiles..
Uniquement si tu as une vision très, très limitée (limite aveugle): tout ce qui est produit par ou pour l'international et qui contient un codec MPEG-4, tu paye potentiellement(*) pour ça dans le prix de l'appareil.
Et donner de l'argent a MPEG-LA ne me parait vraiment pas une bonne idée!
*: car dans certains cas MPEG-LA ne fait pas (encore) payer: ils attendent que le poisson soit bien ferrer.
>> Car arriver à coller des bouts de code qui ont l'air de rien lors des relectures, qui ne sont pas obfusqués, mais qui supportent donc un certain type "d'appel" permettant de mettre en route des fonctionnalités cachées, ce n'est plus que du code, c'est du grand art. <<
Du grand art, oui, mais ce n'est pas impossible: il y a même un concour basé sur ce sujet: codé en C quelque-chose qui semble correct mais ne l'est pas.
La sémantique du C étant assez pourrie (variables non-itialisées par défaut, non-détection des débordements entier, des débordements de tableaux), les meilleures entrées dans le concours sont excellentes!
Pas totalement indetectable, tu retardes..
En utilisant un autre compilateur, on peut trouver le probleme:
http://www.dwheeler.com/trusting-trust/dissertation/html/wheeler-trusting-trust-ddc.html
Probabilité moindre je suis d'accord, mais moindre n'est pas nul: souvient-toi du bug de l'installeur Ubuntu, c'est du même niveau:
https://launchpad.net/ubuntu/+bug/34606
>> Du coup, C ou Java, qui simplifient certains principes à l'extrême (genre pas de tail-call-optimisation et obligation de construire soi-même son trampoline, gestion de la mémoire incompréhensible "pour votre bien", etc. ) correspondent bien mieux à la définition du "worse is better". <<
Tu as du te planter dans tes exemples: Java a un GC..
Pour le TCO, quand je vois comment la plupart des examples qui utilisent TCO sont moches franchement cela ne me manque pas, beurk..
Pour C++, ce n'est pas tellement "worse is better" mais "cheap is better" a mon avis le C++ doit son succès au fait qu'il a des performances plutôt bonne et a eu une compilateur gratuit rapidement, le DoD aurait dut sponsoriser un compilateur gratuit pour Ada beaucoup plus tôt: maintenant tout le monde utiliserait Ada au lieu de C++..
>> - System.Web : le namespace pour faire des requêtes HTTP... Si Microsoft a des brevets là dessus, c'est pas les applications Mono qui vont avoir spécifiquement des enmerdes, c'est beaucoup plus de monde. <<
La, tu exageres, tu sait très bien que Microsoft peut avoir des brevets sur l'implementation de System.Web sans qu'ils aient des brevets sur HTTP.
En plus pour ton point, les drafts ça peut durer *très longtemps* parfois, voire ne jamais se concrètiser donc je trouve loin d'être ridicule de le compter.
commencer a fumer est débile car l'acte de fumer est néfaste pour la santé, donc pour que ton analogie tienne la route, il faut que tu démontre que FB soit néfaste pour la santé..
Donc ton analogie est toute pourrie.
Les coté néfaste de FBs sont:
1) dévoiler sa vie privée sur FB/critiquer son boulot sur FB, la c'est stupide car par définition tout ce que tu mets en ligne est potentiellement publique,
2) quelqu'un te prend en photo dans une situation spécieuse, t'attaque dans un texte.
Pour le (1), il suffit de réfléchir dans ce qu'on met en ligne.
Pour le (2), ce n'est pas limité a FB ,un blog ça marche pareil et ça marchait même déjà avec le courrier postal avant!
Pour répondre, à Axioplase note que je n'ai jamais dit qu'un appel de fonction non terminal pouvait être préférable à un appel de fonction terminal.
J'ai juste dit que s'il n'y a pas d'annotation, il est très facile dans une maintenance de modifier une fonction en rendant le dernier appel non terminal..
Ahem, ça dépend de la définition de stable..
Ma définition de stable, c'est stable comme un compilateur C.
D2 en est loin..
La spec est stable, les implémentations .. non.
Au niveau de la syntaxe D est pas mal effectivement, dommage qu'il ait gardé la syntaxe de la déclaration de variable a la C, heureusement qu'il y a l'inférence de type..
> Note: GDC sera intégré en standard a partir de gcc 4.7
Dis plutôt que ce problème est en train d'être regler pour D2 (qui il me semble n'est pas encore sorti en version stable), mais que problème restera pour D1 ou la communauté des utilisateurs devant le manque de fonctionnalité de Phobos a realisé une autre 'librairie standard' incompatible techniquement et avec aussi une licence differente de celle de Phobos (une recherche google sur "SHOO's time library" montre bien le bazar résultant).
Ce qu'on peut résumer facilement en: un *gros* bordel, qui ne donne vraiment pas confiance dans la "plateforme D"..
> Je ne vois pas trop quelle modification mineure pourrait induire les variations de performances dont tu parles.
Je n'ai plus en tête le lien du papier, désolé.
Mais je connais un exemple proche: la récursion terminale très utilisée dans les langages fonctionnels: il est très facile de passer d'une récursion terminale a une récursion non terminale, ce qui change beaucoup les performances..
Et si le langage n'a pas de mot-clef pour différencier les appels de fonctions terminales des autres, le compilateur ne te préviendra même pas que tu viens de flinguer tes performances/ton nombre maximum de récursion..
[^] # Re: Perl 6
Posté par reno . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 3.
Donc si j'ai le choix entre faire du Perl ou du Ruby|Python, je ne choisirai pas Perl, malheureusement je n'ai pas le choix à cause de la base installée en Perl: de mon point de vue, Perl est le COBOL des langages de scripts.
Pour ce qui est de voir le coté programmation par script, bof, a par le poids de l'existant, je ne vois pas trop ce que Perl apporte par rapport a Ruby ou Python.
[^] # Re: Ahhh enfin ! :-)
Posté par reno . En réponse à la dépêche Reia, un langage fortement inspiré de Ruby. Évalué à 3.
Et '"Hello world".print();' est un raccourci de '"Hello world".print(display)'
# D a la place de Go
Posté par reno . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 3.
[^] # Re: Perl 6
Posté par reno . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 1.
C'est un langage assez difficile a apprendre, les débutants font donc du code assez horrible, ça c'est assez normal, par contre là ou c'est plus génant c'est que les gens expérimenter en Perl ont développer chacun leur propre style et là niveau maintenance c'est pas terrible!
[^] # Re: Erlang
Posté par reno . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 3.
[^] # Re: Ahhh enfin ! :-)
Posté par reno . En réponse à la dépêche Reia, un langage fortement inspiré de Ruby. Évalué à 3.
Bof, ce n'est pas le style que je prefere mais bon le langage a l'air intéressant parce que la syntaxe d'Erlang, beurk!
[^] # Re: Je déteste UML
Posté par reno . En réponse à la dépêche PlantUML, un nouvel outil de génération UML. Évalué à 1.
Pictogrammes assez mal fichu: un rond plein ça dire X, un rond vide Y, bof..
Pourquoi pas mettre tout simplement des nombre au dessus des fleches pour indiquer le nombre de relations possible.
[^] # Re: Ahhh enfin ! :-)
Posté par reno . En réponse à la dépêche Reia, un langage fortement inspiré de Ruby. Évalué à 2.
[^] # Re: Qu'en est il du précédent HIB?
Posté par reno . En réponse à la dépêche Le Humble Indie Bundle nouveau est arrivé. Évalué à 3.
[^] # Re: Qu'en est il du précédent HIB?
Posté par reno . En réponse à la dépêche Le Humble Indie Bundle nouveau est arrivé. Évalué à 2.
[^] # Re: Plugin pour plugin?
Posté par reno . En réponse au journal Microsoft propose un plugin h264 pour Firefox. Évalué à 4.
Et donner de l'argent a MPEG-LA ne me parait vraiment pas une bonne idée!
*: car dans certains cas MPEG-LA ne fait pas (encore) payer: ils attendent que le poisson soit bien ferrer.
[^] # Re: Show us the code ?
Posté par reno . En réponse au journal Backdoor dans OpenBSD ?. Évalué à 4.
Du grand art, oui, mais ce n'est pas impossible: il y a même un concour basé sur ce sujet: codé en C quelque-chose qui semble correct mais ne l'est pas.
La sémantique du C étant assez pourrie (variables non-itialisées par défaut, non-détection des débordements entier, des débordements de tableaux), les meilleures entrées dans le concours sont excellentes!
En Ada, ce serait déjà plus difficile..
[^] # Tu retardes..
Posté par reno . En réponse au journal Backdoor dans OpenBSD ?. Évalué à 3.
En utilisant un autre compilateur, on peut trouver le probleme:
http://www.dwheeler.com/trusting-trust/dissertation/html/wheeler-trusting-trust-ddc.html
[^] # Re: Les chinois du FBI...
Posté par reno . En réponse au journal Backdoor dans OpenBSD ?. Évalué à 1.
https://launchpad.net/ubuntu/+bug/34606
[^] # Re: "Worse" is /not/ C++
Posté par reno . En réponse au journal C++ a été créé pour augmenter le salaire des programmeurs. Évalué à 3.
Tu as du te planter dans tes exemples: Java a un GC..
Pour le TCO, quand je vois comment la plupart des examples qui utilisent TCO sont moches franchement cela ne me manque pas, beurk..
Pour C++, ce n'est pas tellement "worse is better" mais "cheap is better" a mon avis le C++ doit son succès au fait qu'il a des performances plutôt bonne et a eu une compilateur gratuit rapidement, le DoD aurait dut sponsoriser un compilateur gratuit pour Ada beaucoup plus tôt: maintenant tout le monde utiliserait Ada au lieu de C++..
[^] # Re: Source...
Posté par reno . En réponse au journal Il fallait s'y attendre.. Évalué à 3.
La, tu exageres, tu sait très bien que Microsoft peut avoir des brevets sur l'implementation de System.Web sans qu'ils aient des brevets sur HTTP.
En plus pour ton point, les drafts ça peut durer *très longtemps* parfois, voire ne jamais se concrètiser donc je trouve loin d'être ridicule de le compter.
[^] # Re: Bof...
Posté par reno . En réponse au journal [Humeur] Facebook isn't Evil. Évalué à 2.
Bôf, "Les cons ça ose tout, c'est même à ça qu'on les reconnait." je ne vois pas en quoi c'est une spécialité FB.
Tu lui réponds que tu préfère parler à tes ami(e)s en direct et puis c'est tout.
> Le rapport à la vie privée était différent
"vie privée" hum, si tu prends le comportement (raisonnable) que tout ce que tu mets sur FB est publique, ça limite déjà beaucoup le problème.
[^] # Analogie foireuse
Posté par reno . En réponse au journal [Humeur] Facebook isn't Evil. Évalué à 1.
Donc ton analogie est toute pourrie.
Les coté néfaste de FBs sont:
1) dévoiler sa vie privée sur FB/critiquer son boulot sur FB, la c'est stupide car par définition tout ce que tu mets en ligne est potentiellement publique,
2) quelqu'un te prend en photo dans une situation spécieuse, t'attaque dans un texte.
Pour le (1), il suffit de réfléchir dans ce qu'on met en ligne.
Pour le (2), ce n'est pas limité a FB ,un blog ça marche pareil et ça marchait même déjà avec le courrier postal avant!
[^] # Re: typage mou
Posté par reno . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 3.
Pour répondre, à Axioplase note que je n'ai jamais dit qu'un appel de fonction non terminal pouvait être préférable à un appel de fonction terminal.
J'ai juste dit que s'il n'y a pas d'annotation, il est très facile dans une maintenance de modifier une fonction en rendant le dernier appel non terminal..
[^] # Re: Intéressant pour les idées ... mais non
Posté par reno . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 3.
Ahem, ça dépend de la définition de stable..
Ma définition de stable, c'est stable comme un compilateur C.
D2 en est loin..
La spec est stable, les implémentations .. non.
Au niveau de la syntaxe D est pas mal effectivement, dommage qu'il ait gardé la syntaxe de la déclaration de variable a la C, heureusement qu'il y a l'inférence de type..
> Note: GDC sera intégré en standard a partir de gcc 4.7
ça c'est une très bonne nouvelle!!
[^] # Re: typage mou
Posté par reno . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 2.
Mais tu as raison qu'un type de retour vide permet d'éviter ça..
[^] # Re: typage mou
Posté par reno . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 4.
[^] # Re: Intéressant pour les idées ... mais non
Posté par reno . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 4.
Dis plutôt que ce problème est en train d'être regler pour D2 (qui il me semble n'est pas encore sorti en version stable), mais que problème restera pour D1 ou la communauté des utilisateurs devant le manque de fonctionnalité de Phobos a realisé une autre 'librairie standard' incompatible techniquement et avec aussi une licence differente de celle de Phobos (une recherche google sur "SHOO's time library" montre bien le bazar résultant).
Ce qu'on peut résumer facilement en: un *gros* bordel, qui ne donne vraiment pas confiance dans la "plateforme D"..
Ce n'est donc *pas* un mauvais argument..
[^] # Re: typage mou
Posté par reno . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 3.
2) Si tu fais vraiment du fonctionnel pur, ton programme ne sert à rien puisqu'il n'a pas d'effet sur l'extérieur.
3) Tout les langages fonctionnels ont des moyens de faire des effets de bords..
[^] # Re: typage mou
Posté par reno . En réponse à la dépêche Quelques nouvelles de Go, le langage de programmation. Évalué à 2.
Je n'ai plus en tête le lien du papier, désolé.
Mais je connais un exemple proche: la récursion terminale très utilisée dans les langages fonctionnels: il est très facile de passer d'une récursion terminale a une récursion non terminale, ce qui change beaucoup les performances..
Et si le langage n'a pas de mot-clef pour différencier les appels de fonctions terminales des autres, le compilateur ne te préviendra même pas que tu viens de flinguer tes performances/ton nombre maximum de récursion..