On voit souvent des "quel linux choisir ?", des "pourquoi linux ?" etc.
Mais finalement à devoir choisir entre la peste (du côté de chez MS) et
la grippe (notre bon vieux nunux), celà ne vous arrive pas le matin en
vous réveillant de vous dire que les programmes qui font fonctionner
votre machines ne sont que des bidouillages plus ou moins réussis ?
Regardez les codes sources d'un programme en C. Même le code d'un bon
programmeur n'est rempli que d'horreurs. Ce fameux "void" : c'est quoi
cette abomination de la programmation ? Il n'y a aucune sémantique
valable là derrière. D'ailleurs les types en C n'ont de type que le nom.
Comment se fait il qu'on puisse écrire dans la 11e case d'un tableau de
10 éléments. Ce langage surestime beaucoup les capacités des personnes
qui vont l'utiliser. Une telle chose ne doit pas être possible. Comment
imaginer que ce genre de choses peut être voulu par le programmeur ?
Je pense que vous avez déjà vu du JAVA. Mais c'est à gerber cet
emboîtement de new, cette masse colossale de classes à faire pour faire
trois fois rien ! J'ose même pas imaginer la quantité de calculs
inutiles faits par la machine pour gérer ces merdes. D'accord il y a de
l'optimisation, mais c'est loin d'être suffisant.
Dans le temps les programmes étaient bidouillés parce qu'il n'y avait
pas assez de mémoire : par exemple on utilisait une variable pour
stocker deux informations. Maintenant l'horreur est à l'autre extrême :
on a tellement de mémoire de disponible que l'on utilise trop. En C :
tant pis c'est perdu. Un trou de mémoire ? Tant que le pc doit pas
redémarrer toutes les heures à cause de ça on s'en fout. En JAVA : il y
a le ramasse miettes alors on peut bouffer de la mémoire : c'est pô grave.
Dès que les programmes ont commencé à ne plus rentrer sur une disquette
ils sont devenus beaucoup trop compliqués pour fonctionner correctement.
On en vient à une époque où on trouve acceptable un programme quand il a
moins de cent bugs alors que rien que le fait de consommer trop de
ressources fait que le programme n'est pas bon. Aujourd'hui on nous
parle de .NET et de merdouilles dans le genre. A quoi ça sert de se
lancer dans la création de langages qui se copient les uns les autres.
C, C++, JAVA, Pascal : c'est la même chose, la même façon de penser. Et
c'est une manière de penser qui pousse à faire des fautes.
Bref l'informatique ne va pas fort.
Tom , dans le message <422ec076$0$31363$, a écrit :
Méthode B rules :-) Le truc qui permet de démontrer qu'un programme respecte des spécifications mais qui ne permet pas de démontrer qu'il ne les respecte pas.
Et alors ? Dans la mesure où un programme qui ne respecte pas ses spécifications n'est pas satisfaisant de toutes façons, ça va dans le bon sens.
Tom , dans le message <422ec076$0$31363$636a15ce@news.free.fr>, a
écrit :
Méthode B rules :-)
Le truc qui permet de démontrer qu'un programme respecte des
spécifications mais qui ne permet pas de démontrer qu'il ne les respecte
pas.
Et alors ? Dans la mesure où un programme qui ne respecte pas ses
spécifications n'est pas satisfaisant de toutes façons, ça va dans le bon
sens.
Tom , dans le message <422ec076$0$31363$, a écrit :
Méthode B rules :-) Le truc qui permet de démontrer qu'un programme respecte des spécifications mais qui ne permet pas de démontrer qu'il ne les respecte pas.
Et alors ? Dans la mesure où un programme qui ne respecte pas ses spécifications n'est pas satisfaisant de toutes façons, ça va dans le bon sens.
Joe Cool
On Wed, 09 Mar 2005 15:42:12 +0100, Joe Cool wrote:
Aucun typage ne peut garantir dans le cas général d'un langage universel qu'on adresse pas une cas inexistante d'un tableau.
Oh ! Pourtant le C c'est de la merde exactement pour cette raison.
La raison pour laquelle le C est de la merde est qu'il ne fait pas de différence entre l'écriture dans une zone valide et l'écriture dans une zone invalide ou inexistante.
Caml le fait, et n'autorise pas l'écriture d'une donnée dans une zone non valide. On peut écrire a.(truc) <- machin, mais cette instruction n'est exécutée que quand elle est valide.
Tout bon programmeur Caml, si il n'a pas prouvé la validité de son algorithme, doit enrober son code d'un try...with pour traiter ce cas.
Oh ! Et tout programmeur C qui testerait les bornes de son tableau serait en fait un mauvais programmeur parce qu'il n'a forcément pas prouvé la validité de son algorithme ? Finalement je ne vois aucune différence sur ce point entre le C de merde et le Caml langage miracle.
Ce problème existe indépendamment de tout langage. Ce qui varie, c'est la manière de gérer le problème : le C se contente de l'ignorer.
-- Joe Cool
On Wed, 09 Mar 2005 15:42:12 +0100, Joe Cool wrote:
Aucun typage ne peut garantir dans le cas général d'un langage universel
qu'on adresse pas une cas inexistante d'un tableau.
Oh ! Pourtant le C c'est de la merde exactement pour cette raison.
La raison pour laquelle le C est de la merde est qu'il ne fait pas de
différence entre l'écriture dans une zone valide et l'écriture dans une
zone invalide ou inexistante.
Caml le fait, et n'autorise pas l'écriture d'une donnée dans une zone
non valide. On peut écrire a.(truc) <- machin, mais cette instruction
n'est exécutée que quand elle est valide.
Tout bon programmeur Caml, si il n'a pas prouvé la validité de son
algorithme, doit enrober son code d'un try...with pour traiter ce
cas.
Oh ! Et tout programmeur C qui testerait les bornes de son tableau
serait en fait un mauvais programmeur parce qu'il n'a forcément pas
prouvé la validité de son algorithme ? Finalement je ne vois aucune
différence sur ce point entre le C de merde et le Caml langage miracle.
Ce problème existe indépendamment de tout langage. Ce qui varie, c'est
la manière de gérer le problème : le C se contente de l'ignorer.
On Wed, 09 Mar 2005 15:42:12 +0100, Joe Cool wrote:
Aucun typage ne peut garantir dans le cas général d'un langage universel qu'on adresse pas une cas inexistante d'un tableau.
Oh ! Pourtant le C c'est de la merde exactement pour cette raison.
La raison pour laquelle le C est de la merde est qu'il ne fait pas de différence entre l'écriture dans une zone valide et l'écriture dans une zone invalide ou inexistante.
Caml le fait, et n'autorise pas l'écriture d'une donnée dans une zone non valide. On peut écrire a.(truc) <- machin, mais cette instruction n'est exécutée que quand elle est valide.
Tout bon programmeur Caml, si il n'a pas prouvé la validité de son algorithme, doit enrober son code d'un try...with pour traiter ce cas.
Oh ! Et tout programmeur C qui testerait les bornes de son tableau serait en fait un mauvais programmeur parce qu'il n'a forcément pas prouvé la validité de son algorithme ? Finalement je ne vois aucune différence sur ce point entre le C de merde et le Caml langage miracle.
Ce problème existe indépendamment de tout langage. Ce qui varie, c'est la manière de gérer le problème : le C se contente de l'ignorer.
-- Joe Cool
Joe Cool
Parce que vous savez faire un OS en C vous. Montrez-nous le donc.
http://www.systella.fr/~bertrand/freevms
Ça ira ?
Lien mort.
-- Joe Cool
Parce que vous savez faire un OS en C vous. Montrez-nous le donc.
Tom , dans le message <422ed68b$0$26587$, a écrit :
C'estpas parce qu'on ne la voit pas qu'elle n'existe pas.
Non, c'est parce qu'elle n'existe pas qu'on ne la voit pas. La nuance est subtile, mais elle est fondamentale en logique.
Tom
Le problème c'est que ça compile. Toi, là, tu vérifies à l'exécution que ça marche (ou pas). Pas très efficace, Tom ne serait pas très content de ta façon de programmer quelque peu hasardeuse.
Il n'y a rien de hasardeux, ce comportement est défini par Caml. Il suffit de lire la doc pour savoir qu'on peut récupérer l'exception et continuer le programme.
Tom
Le problème c'est que ça compile. Toi, là, tu vérifies à l'exécution
que ça marche (ou pas). Pas très efficace, Tom ne serait pas très
content de ta façon de programmer quelque peu hasardeuse.
Il n'y a rien de hasardeux, ce comportement est défini par Caml. Il
suffit de lire la doc pour savoir qu'on peut récupérer l'exception et
continuer le programme.
Le problème c'est que ça compile. Toi, là, tu vérifies à l'exécution que ça marche (ou pas). Pas très efficace, Tom ne serait pas très content de ta façon de programmer quelque peu hasardeuse.
Il n'y a rien de hasardeux, ce comportement est défini par Caml. Il suffit de lire la doc pour savoir qu'on peut récupérer l'exception et continuer le programme.
Tom
Tom
Aucun typage ne peut garantir dans le cas général d'un langage universel qu'on adresse pas une cas inexistante d'un tableau. Oh ! Pourtant le C c'est de la merde exactement pour cette raison.
Le C *permet* l'écriture dans cette fameuse case, alors que Caml ne le
permet pas.
Tout bon programmeur Caml, si il n'a pas prouvé la validité de son algorithme, doit enrober son code d'un try...with pour traiter ce cas. Oh ! Et tout programmeur C qui testerait les bornes de son tableau
serait en fait un mauvais programmeur parce qu'il n'a forcément pas prouvé la validité de son algorithme ? Finalement je ne vois aucune différence sur ce point entre le C de merde et le Caml langage miracle. Ce teste permettra de valider l'algorithme avec un prouveur : c'est une
correction. Le problème c'est que c'est le programmeur qui doit y penser. En Caml c'est l'interpréteur qui gère. En clair : en C ce comportement n'est pas défini, en Caml : oui.
Tom
Aucun typage ne peut garantir dans le cas général d'un langage universel
qu'on adresse pas une cas inexistante d'un tableau.
Oh ! Pourtant le C c'est de la merde exactement pour cette raison.
Le C *permet* l'écriture dans cette fameuse case, alors que Caml ne le
permet pas.
Tout bon programmeur Caml, si il n'a pas prouvé la validité de son
algorithme, doit enrober son code d'un try...with pour traiter ce
cas.
Oh ! Et tout programmeur C qui testerait les bornes de son tableau
serait en fait un mauvais programmeur parce qu'il n'a forcément pas
prouvé la validité de son algorithme ? Finalement je ne vois aucune
différence sur ce point entre le C de merde et le Caml langage miracle.
Ce teste permettra de valider l'algorithme avec un prouveur : c'est une
correction. Le problème c'est que c'est le programmeur qui doit y
penser. En Caml c'est l'interpréteur qui gère. En clair : en C ce
comportement n'est pas défini, en Caml : oui.
Aucun typage ne peut garantir dans le cas général d'un langage universel qu'on adresse pas une cas inexistante d'un tableau. Oh ! Pourtant le C c'est de la merde exactement pour cette raison.
Le C *permet* l'écriture dans cette fameuse case, alors que Caml ne le
permet pas.
Tout bon programmeur Caml, si il n'a pas prouvé la validité de son algorithme, doit enrober son code d'un try...with pour traiter ce cas. Oh ! Et tout programmeur C qui testerait les bornes de son tableau
serait en fait un mauvais programmeur parce qu'il n'a forcément pas prouvé la validité de son algorithme ? Finalement je ne vois aucune différence sur ce point entre le C de merde et le Caml langage miracle. Ce teste permettra de valider l'algorithme avec un prouveur : c'est une
correction. Le problème c'est que c'est le programmeur qui doit y penser. En Caml c'est l'interpréteur qui gère. En clair : en C ce comportement n'est pas défini, en Caml : oui.
Tom
Tom
http://www.systella.fr/~bertrand/freevms
Je met la bonne adresse, pour ceux qui s'arrêteront à la page 404 pointée par le précédent lien. Perso je testerais bien mais je n'ai pas de VAX sous la main.
Je met la bonne adresse, pour ceux qui s'arrêteront à la page 404
pointée par le précédent lien. Perso je testerais bien mais je n'ai pas
de VAX sous la main.
Je met la bonne adresse, pour ceux qui s'arrêteront à la page 404 pointée par le précédent lien. Perso je testerais bien mais je n'ai pas de VAX sous la main.
Tom , dans le message <422ec2f5$0$17145$, a écrit :
Moi j'appelle ça indécis.
Tu appelles ça comme tu veux, mais si tu ne parles pas la même langue que le reste du monde, il ne faut pas t'étonner qu'on ne te comprenne pas et qu'on te contredise.
De plus c'est quoi cette erreur de segmentation : à l'exécution de la compilation (quel super compilateur) ou à l'exécution du programme
C'est quoi cette distinction à la con ?
Permettez moi de vomir. Beuaaaaaaaaaaa Ah ça va mieux. Non mais. Tester un programme pour voir si il est valide. C'est bien digne d'un programmeur en C.
Eh bien vas-y, montre-nous comme tu es fort : choisis ton langage, fais un programme qui serve vraiment à quelque chose dans la vraie vie (un traitement de texte, un navigateur web, un serveur de news, un système de comptabilité), et prouve qu'il fonctionne.
On va bien rire, tiens.
Tom , dans le message <422ec2f5$0$17145$636a15ce@news.free.fr>, a
écrit :
Moi j'appelle ça indécis.
Tu appelles ça comme tu veux, mais si tu ne parles pas la même langue que le
reste du monde, il ne faut pas t'étonner qu'on ne te comprenne pas et qu'on
te contredise.
De plus c'est quoi cette erreur de segmentation : à l'exécution
de la compilation (quel super compilateur) ou à l'exécution du programme
C'est quoi cette distinction à la con ?
Permettez moi de vomir. Beuaaaaaaaaaaa
Ah ça va mieux. Non mais. Tester un programme pour voir si il est
valide. C'est bien digne d'un programmeur en C.
Eh bien vas-y, montre-nous comme tu es fort : choisis ton langage, fais un
programme qui serve vraiment à quelque chose dans la vraie vie (un
traitement de texte, un navigateur web, un serveur de news, un système de
comptabilité), et prouve qu'il fonctionne.
Tom , dans le message <422ec2f5$0$17145$, a écrit :
Moi j'appelle ça indécis.
Tu appelles ça comme tu veux, mais si tu ne parles pas la même langue que le reste du monde, il ne faut pas t'étonner qu'on ne te comprenne pas et qu'on te contredise.
De plus c'est quoi cette erreur de segmentation : à l'exécution de la compilation (quel super compilateur) ou à l'exécution du programme
C'est quoi cette distinction à la con ?
Permettez moi de vomir. Beuaaaaaaaaaaa Ah ça va mieux. Non mais. Tester un programme pour voir si il est valide. C'est bien digne d'un programmeur en C.
Eh bien vas-y, montre-nous comme tu es fort : choisis ton langage, fais un programme qui serve vraiment à quelque chose dans la vraie vie (un traitement de texte, un navigateur web, un serveur de news, un système de comptabilité), et prouve qu'il fonctionne.
On va bien rire, tiens.
Tom
Il y a beaucoup d'activités qui existent uniquement pour servir de gagne pain à leurs pratiquants. En général ce sont ceux qui crient le plus fort pour prétendre que leur machin est indispensable et qu'on ne pourrait pas vivre sans. Par exemple, pour plaire à Tougard, les employés du fisc sont certainement convaincus que sans eux la fraude serait totalement généralisée et que l'état ne pourrait pas vivre. Le seul problème est que l'impôt qu'ils contrôlent rapporte moins que ce qu'ils coutent. Je te laisse le soin de raisonner par analogie pour le cas qui t'intéresse - mais j'ai peur que le raisonnement par analogie ne bénéficie pas de l'onction de messieurs les logiciens.
Je ne suis pas là pour faire un procès aux logiciens. Et je ne crois pas qu'ils travaillent moins que d'autres.
Tom
Il y a beaucoup d'activités qui existent uniquement pour servir de gagne
pain à leurs pratiquants. En général ce sont ceux qui crient le plus fort
pour prétendre que leur machin est indispensable et qu'on ne pourrait pas vivre
sans. Par exemple, pour plaire à Tougard, les employés du fisc sont
certainement convaincus que sans eux la fraude serait totalement généralisée
et que l'état ne pourrait pas vivre. Le seul problème est que l'impôt qu'ils
contrôlent rapporte moins que ce qu'ils coutent. Je te laisse le soin de
raisonner par analogie pour le cas qui t'intéresse - mais j'ai peur que
le raisonnement par analogie ne bénéficie pas de l'onction de messieurs les
logiciens.
Je ne suis pas là pour faire un procès aux logiciens. Et je ne crois pas
qu'ils travaillent moins que d'autres.
Il y a beaucoup d'activités qui existent uniquement pour servir de gagne pain à leurs pratiquants. En général ce sont ceux qui crient le plus fort pour prétendre que leur machin est indispensable et qu'on ne pourrait pas vivre sans. Par exemple, pour plaire à Tougard, les employés du fisc sont certainement convaincus que sans eux la fraude serait totalement généralisée et que l'état ne pourrait pas vivre. Le seul problème est que l'impôt qu'ils contrôlent rapporte moins que ce qu'ils coutent. Je te laisse le soin de raisonner par analogie pour le cas qui t'intéresse - mais j'ai peur que le raisonnement par analogie ne bénéficie pas de l'onction de messieurs les logiciens.
Je ne suis pas là pour faire un procès aux logiciens. Et je ne crois pas qu'ils travaillent moins que d'autres.
Tom
Nicolas George
Tom , dans le message <422ef56e$0$31860$, a écrit :
"I chose to develop my own model for C using a structural operational semantics."
Déjà il fait son propre C
Il faudrait apprendre à lire, il y a marqué « my own model for C », pas « my own C ».
Tom , dans le message <422ef56e$0$31860$636a15ce@news.free.fr>, a
écrit :
"I chose to develop my own model for C using a structural operational
semantics."
Déjà il fait son propre C
Il faudrait apprendre à lire, il y a marqué « my own model for C », pas « my
own C ».