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 <422f2492$0$31661$, a écrit :
Et ? Un nouveau modèle c'est une nouvelle norme.
Non.
PArce que si il change la sémantique je ne considère pas que ça reste le _même_ C. Et si il veut mettre une sémantique qui tienne la route et en particulier un sémantique déterministe il doit modifier le C. Le langage C ANSI n'a pas de sémantique entièrement définie et déterministe.
C'est bien pour ça qu'il faut lui en mettre une. Mais cette sémantique peut être celle décrite en termes humains par la norme, et concerner les programmes strictement conformes.
Tom , dans le message <422f2492$0$31661$636a15ce@news.free.fr>, a
écrit :
Et ? Un nouveau modèle c'est une nouvelle norme.
Non.
PArce que si il change
la sémantique je ne considère pas que ça reste le _même_ C. Et si il
veut mettre une sémantique qui tienne la route et en particulier un
sémantique déterministe il doit modifier le C. Le langage C ANSI n'a pas
de sémantique entièrement définie et déterministe.
C'est bien pour ça qu'il faut lui en mettre une. Mais cette sémantique peut
être celle décrite en termes humains par la norme, et concerner les
programmes strictement conformes.
Tom , dans le message <422f2492$0$31661$, a écrit :
Et ? Un nouveau modèle c'est une nouvelle norme.
Non.
PArce que si il change la sémantique je ne considère pas que ça reste le _même_ C. Et si il veut mettre une sémantique qui tienne la route et en particulier un sémantique déterministe il doit modifier le C. Le langage C ANSI n'a pas de sémantique entièrement définie et déterministe.
C'est bien pour ça qu'il faut lui en mettre une. Mais cette sémantique peut être celle décrite en termes humains par la norme, et concerner les programmes strictement conformes.
Nicolas George
Tom , dans le message <422f1d61$0$31932$, a écrit :
Il n'y a pas de types en C bon sang !
Rajouter « bon sang » à la fin ne te donne pasraison, tu sais.
Un char, un int, un void c'est la même chose.
Il faudrait penser à apprendre le C avant de prétendre le critiquer. Ce que tu as écrit là est faux, ni plus ni moins.
Tom , dans le message <422f1d61$0$31932$636a15ce@news.free.fr>, a
écrit :
Il n'y a pas de types en C bon sang !
Rajouter « bon sang » à la fin ne te donne pasraison, tu sais.
Un char, un int, un void c'est la
même chose.
Il faudrait penser à apprendre le C avant de prétendre le critiquer. Ce que
tu as écrit là est faux, ni plus ni moins.
Tom , dans le message <422f1d61$0$31932$, a écrit :
Il n'y a pas de types en C bon sang !
Rajouter « bon sang » à la fin ne te donne pasraison, tu sais.
Un char, un int, un void c'est la même chose.
Il faudrait penser à apprendre le C avant de prétendre le critiquer. Ce que tu as écrit là est faux, ni plus ni moins.
Tom
Dans le cas général d'un langage typé universel:
$ cat boom.adb procedure boom is type index is range 0..9; tab: array (index) of integer; begin tab(10) := 42; end boom;
$ gnatmake boom.adb gcc -c boom.adb boom.adb:5:13: warning: value not in range of type "index" defined at line 2 boom.adb:5:13: warning: "constraint_error" will be raised at run time gnatbind -x boom.ali gnatlink boom.ali $ ./boom
raised CONSTRAINT_ERROR : boom.adb:5 range check failed $ Dans un exemple simple le compilateur pourra détecter ce genre de
choses. Ils ne sont pas totalement abrutits ceux qui font des compilateurs.
Le troll est intéressant, bien qu'inégal par moment.
Quand on qualifie systématiquement une discussion de troll, qu'est-ce qu'une discussion ? 'est quand tout le monde est d'accord ? Mon prochain sujet sera "j'adore linux, je me branle à chaque fois que je boote".
Tom
Dans le cas général d'un langage typé universel:
$ cat boom.adb
procedure boom is
type index is range 0..9;
tab: array (index) of integer;
begin
tab(10) := 42;
end boom;
$ gnatmake boom.adb
gcc -c boom.adb
boom.adb:5:13: warning: value not in range of type "index" defined at line 2
boom.adb:5:13: warning: "constraint_error" will be raised at run time
gnatbind -x boom.ali
gnatlink boom.ali
$ ./boom
raised CONSTRAINT_ERROR : boom.adb:5 range check failed
$
Dans un exemple simple le compilateur pourra détecter ce genre de
choses. Ils ne sont pas totalement abrutits ceux qui font des compilateurs.
Le troll est intéressant, bien qu'inégal par moment.
Quand on qualifie systématiquement une discussion de troll, qu'est-ce
qu'une discussion ? 'est quand tout le monde est d'accord ? Mon prochain
sujet sera "j'adore linux, je me branle à chaque fois que je boote".
$ cat boom.adb procedure boom is type index is range 0..9; tab: array (index) of integer; begin tab(10) := 42; end boom;
$ gnatmake boom.adb gcc -c boom.adb boom.adb:5:13: warning: value not in range of type "index" defined at line 2 boom.adb:5:13: warning: "constraint_error" will be raised at run time gnatbind -x boom.ali gnatlink boom.ali $ ./boom
raised CONSTRAINT_ERROR : boom.adb:5 range check failed $ Dans un exemple simple le compilateur pourra détecter ce genre de
choses. Ils ne sont pas totalement abrutits ceux qui font des compilateurs.
Le troll est intéressant, bien qu'inégal par moment.
Quand on qualifie systématiquement une discussion de troll, qu'est-ce qu'une discussion ? 'est quand tout le monde est d'accord ? Mon prochain sujet sera "j'adore linux, je me branle à chaque fois que je boote".
Tom
Tom
On t'a mal renseigné, les cathédrales n'ont pas été construites par des esclaves. Je te renvoie à l'excellent épisode _Les Bâtisseurs de cathédrales_, de la série de documentaires historiques _Il était une fois l'homme_ pour plus de détails.
Si il faut des chaines et un fouet pour qualifier d'esclave je suis d'accord. Mais sinon j'ai un doute.
Tom
On t'a mal renseigné, les cathédrales n'ont pas été construites par des
esclaves. Je te renvoie à l'excellent épisode _Les Bâtisseurs de
cathédrales_, de la série de documentaires historiques _Il était une fois
l'homme_ pour plus de détails.
Si il faut des chaines et un fouet pour qualifier d'esclave je suis
d'accord. Mais sinon j'ai un doute.
On t'a mal renseigné, les cathédrales n'ont pas été construites par des esclaves. Je te renvoie à l'excellent épisode _Les Bâtisseurs de cathédrales_, de la série de documentaires historiques _Il était une fois l'homme_ pour plus de détails.
Si il faut des chaines et un fouet pour qualifier d'esclave je suis d'accord. Mais sinon j'ai un doute.
Tom
Nicolas George
Joe Cool , dans le message <422f1ee4$0$31419$, a écrit :
Non car le système de type du C est incohérent. Le système de typage de caml génère pour chaque programme la preuve qu'il utilise ses données de manière cohérente
Or comme cette preuve est indécidable, le langage Caml restreint considérablement ce qu'il est autorisé d'écrire pour forcer le programmeur à rester dans les cas que sait traiter le compilateur. Ça fait une limitation d'expressivité extrêmement forte. À tel point, d'ailleurs, qu'il y a à plusieurs endroits de la bibliothèque standard de Caml des usages de Obj.magic pour contourner la limitation.
Joe Cool , dans le message <422f1ee4$0$31419$636a15ce@news.free.fr>, a
écrit :
Non car le système de type du C est incohérent. Le système de typage de
caml génère pour chaque programme la preuve qu'il utilise ses données de
manière cohérente
Or comme cette preuve est indécidable, le langage Caml restreint
considérablement ce qu'il est autorisé d'écrire pour forcer le programmeur à
rester dans les cas que sait traiter le compilateur. Ça fait une limitation
d'expressivité extrêmement forte. À tel point, d'ailleurs, qu'il y a à
plusieurs endroits de la bibliothèque standard de Caml des usages de
Obj.magic pour contourner la limitation.
Joe Cool , dans le message <422f1ee4$0$31419$, a écrit :
Non car le système de type du C est incohérent. Le système de typage de caml génère pour chaque programme la preuve qu'il utilise ses données de manière cohérente
Or comme cette preuve est indécidable, le langage Caml restreint considérablement ce qu'il est autorisé d'écrire pour forcer le programmeur à rester dans les cas que sait traiter le compilateur. Ça fait une limitation d'expressivité extrêmement forte. À tel point, d'ailleurs, qu'il y a à plusieurs endroits de la bibliothèque standard de Caml des usages de Obj.magic pour contourner la limitation.
Guillaume L.
Bien sûr, une preuve ça ne sert à rien.
Quand je doit démontrer un truc sur les entiers, je me dis à quoi bon me fatiquer à faire une preuve qui ne sert à rien : je vais la tester sur les 8 premiers entiers, c'est bien suffisant.
1 est premier
Ah bon ?
3 est premier 5 est premier 7 est premier donc tous les entiers impairs sont premiers
Guillaume Leconte.
-- You're not a beautiful and unique snowflake.
Bien sûr, une preuve ça ne sert à rien.
Quand je doit démontrer un truc sur les entiers, je me dis à quoi bon me
fatiquer à faire une preuve qui ne sert à rien : je vais la tester sur
les 8 premiers entiers, c'est bien suffisant.
1 est premier
Ah bon ?
3 est premier
5 est premier
7 est premier
donc tous les entiers impairs sont premiers
Quand je doit démontrer un truc sur les entiers, je me dis à quoi bon me fatiquer à faire une preuve qui ne sert à rien : je vais la tester sur les 8 premiers entiers, c'est bien suffisant.
1 est premier
Ah bon ?
3 est premier 5 est premier 7 est premier donc tous les entiers impairs sont premiers
Guillaume Leconte.
-- You're not a beautiful and unique snowflake.
Tom
J'ai précisé pourquoi je citais ce théoreme. Vous et vos camarades de classe n'avez su que sautiller en disant "c'est pas vrai, c'est pas vrai"
dont acte Citez moi le passage, je ne vois rien de tout ça. C'est bien de citer un
théorème, important de surcroit. MAis si c'est juste pour faire le malin vaut mieux s'abstenir.
Tom
J'ai précisé pourquoi je citais ce théoreme. Vous et vos camarades de
classe n'avez su que sautiller en disant "c'est pas vrai, c'est pas vrai"
dont acte
Citez moi le passage, je ne vois rien de tout ça. C'est bien de citer un
théorème, important de surcroit. MAis si c'est juste pour faire le malin
vaut mieux s'abstenir.
J'ai précisé pourquoi je citais ce théoreme. Vous et vos camarades de classe n'avez su que sautiller en disant "c'est pas vrai, c'est pas vrai"
dont acte Citez moi le passage, je ne vois rien de tout ça. C'est bien de citer un
théorème, important de surcroit. MAis si c'est juste pour faire le malin vaut mieux s'abstenir.
Tom
talon
Tom wrote:
Oui, et? Tu compares Dijkstra à Einstein?
Dijkstra est l'un des plus grands informaticiens ayant existé. Et je ne vois pas pourquoi on devrait comparer Dijkstra à Einstein. Ils ne travaillaient pas dans le même domaine.
Linus Torvalds est un des grands informaticiens ayant existé, oui, il l'a prouvé en créant un OS. Einstein est un immense génie, autrement dit il ne joue pas dans la même cour.
--
Michel TALON
Tom <tom@tom.com> wrote:
Oui, et? Tu compares Dijkstra à Einstein?
Dijkstra est l'un des plus grands informaticiens ayant existé. Et je ne
vois pas pourquoi on devrait comparer Dijkstra à Einstein. Ils ne
travaillaient pas dans le même domaine.
Linus Torvalds est un des grands informaticiens ayant existé, oui, il l'a
prouvé en créant un OS. Einstein est un immense génie, autrement dit il ne
joue pas dans la même cour.
Dijkstra est l'un des plus grands informaticiens ayant existé. Et je ne vois pas pourquoi on devrait comparer Dijkstra à Einstein. Ils ne travaillaient pas dans le même domaine.
Linus Torvalds est un des grands informaticiens ayant existé, oui, il l'a prouvé en créant un OS. Einstein est un immense génie, autrement dit il ne joue pas dans la même cour.
--
Michel TALON
Tom
Et qu'attends tu pour *faire* du constructif au lieu de critiquer ? ;-)
Je n'avais pas conscience que le monde attendait sur moi pour se débarasser du C. C'est donc ça la raison qui fait que tout le monde n'est pas passé à autre chose ? Je ne suis vraiment qu'un ingrat.
Je me lance dans Camelix ce soir :-p
Tom
Et qu'attends tu pour *faire* du constructif au lieu de critiquer ? ;-)
Je n'avais pas conscience que le monde attendait sur moi pour se
débarasser du C. C'est donc ça la raison qui fait que tout le monde
n'est pas passé à autre chose ? Je ne suis vraiment qu'un ingrat.
Et qu'attends tu pour *faire* du constructif au lieu de critiquer ? ;-)
Je n'avais pas conscience que le monde attendait sur moi pour se débarasser du C. C'est donc ça la raison qui fait que tout le monde n'est pas passé à autre chose ? Je ne suis vraiment qu'un ingrat.
Je me lance dans Camelix ce soir :-p
Tom
JustMe
Tom avait énoncé :
J'ai précisé pourquoi je citais ce théoreme. Vous et vos camarades de classe n'avez su que sautiller en disant "c'est pas vrai, c'est pas vrai"
dont acte Citez moi le passage, je ne vois rien de tout ça. C'est bien de citer un
théorème, important de surcroit. MAis si c'est juste pour faire le malin vaut mieux s'abstenir.
Tom
J'ai deja donné ma conception en langage clair des consequences du Th de Godel. J'attends ta version.
Tom avait énoncé :
J'ai précisé pourquoi je citais ce théoreme. Vous et vos camarades de
classe n'avez su que sautiller en disant "c'est pas vrai, c'est pas vrai"
dont acte
Citez moi le passage, je ne vois rien de tout ça. C'est bien de citer un
théorème, important de surcroit. MAis si c'est juste pour faire le malin vaut
mieux s'abstenir.
Tom
J'ai deja donné ma conception en langage clair des consequences du Th
de Godel. J'attends ta version.