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.
Le C n'est peut-être pas parfait, évidemment, mais on peut _tout_ faire avec, y compris des erreurs, mais c'est le prix à payer je pense.
Prix bien trop cher. Si on veut faire quelque chose on le fait bien ou on ne le fait pas.
Tom
nicolas vigier
On 2005-03-09, Tom wrote:
Alors si on veux pinailler, je n'ai _jamais_ vu un seul bout de code écrit en C qui ne comporte pas à un endroit ou un autre un truc qui n'est pas implementation defined. Et je ne parle pas de trucs pathologiques du style i+=i++ !
Un exemple flagrant de la faiblesse du C : ce i+=i++ n'est pas un comportement défini. Certains compilateurs vont incrémenter avant, d'autres après l'affectation. Quel exemple de portabilité ! :-)
Ben oui, i+=i++ ca n'a aucun sens, et c'est ton probleme si tu utilises volontairement ca dans un programme. Et un bon compilateur te previens que tu as surement ecrit une connerie. C'est quoi la prochaine connerie pour laquelle tu vas raler ? La fonction random() qui ne renvoit pas toujours la meme chose ? La non fiabilite de la plupars des distribs linux quand on execute un "rm -Rf /" en root ?
Alors si on veux pinailler, je n'ai _jamais_ vu un seul bout de code
écrit en C qui ne comporte pas à un endroit ou un autre un truc qui
n'est pas implementation defined. Et je ne parle pas de trucs
pathologiques du style i+=i++ !
Un exemple flagrant de la faiblesse du C : ce i+=i++ n'est pas un
comportement défini. Certains compilateurs vont incrémenter avant,
d'autres après l'affectation. Quel exemple de portabilité ! :-)
Ben oui, i+=i++ ca n'a aucun sens, et c'est ton probleme si tu utilises
volontairement ca dans un programme. Et un bon compilateur te previens
que tu as surement ecrit une connerie. C'est quoi la prochaine connerie
pour laquelle tu vas raler ? La fonction random() qui ne renvoit pas
toujours la meme chose ? La non fiabilite de la plupars des distribs
linux quand on execute un "rm -Rf /" en root ?
Alors si on veux pinailler, je n'ai _jamais_ vu un seul bout de code écrit en C qui ne comporte pas à un endroit ou un autre un truc qui n'est pas implementation defined. Et je ne parle pas de trucs pathologiques du style i+=i++ !
Un exemple flagrant de la faiblesse du C : ce i+=i++ n'est pas un comportement défini. Certains compilateurs vont incrémenter avant, d'autres après l'affectation. Quel exemple de portabilité ! :-)
Ben oui, i+=i++ ca n'a aucun sens, et c'est ton probleme si tu utilises volontairement ca dans un programme. Et un bon compilateur te previens que tu as surement ecrit une connerie. C'est quoi la prochaine connerie pour laquelle tu vas raler ? La fonction random() qui ne renvoit pas toujours la meme chose ? La non fiabilite de la plupars des distribs linux quand on execute un "rm -Rf /" en root ?
réalisé avec ton "language-of-choice", comme ça on pourra comparer...
-- _/°< coin
Sam Hocevar
On Wed, 09 Mar 2005 10:29:08 +0100, Tom wrote:
On dirait que tu ne comprends pas très bien. Je vais te faire un dessin pour t'expliquer. Voici une représentation d'un tableau a[10] : ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ | | | | | | | | | | | |a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]| |____|____|____|____|____|____|____|____|____|____|
Comme tu peux le constater, la première case du tableau est a[0], et la 10e case est a[9]. On se rend immédiatement compte que la 11e case de ce tableau, s'il y en avait une, serait a[10] et non a[11] comme dans ton exemple.
Bah à la place d'écrire dans la onzième case il écrit dans la douzième. Que c'est magnifique.
Non, regarde le dessin de plus près : il n'y a que dix cases à ce tableau, pas douze. Un enfant de cinq ans est capable de compter les cases de ce tableau et voir qu'il y en a dix, un peu d'effort que diable !
Sam. -- Sam Hocevar <http://sam.zoy.org/> Software should be free -- http://www.debian.org/ Media access should be free -- http://www.videolan.org/ Knowledge must be free -- http://www.wikipedia.org/
On Wed, 09 Mar 2005 10:29:08 +0100, Tom wrote:
On dirait que tu ne comprends pas très bien. Je vais te faire un
dessin pour t'expliquer. Voici une représentation d'un tableau a[10] :
____ ____ ____ ____ ____ ____ ____ ____ ____ ____
| | | | | | | | | | |
|a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]|
|____|____|____|____|____|____|____|____|____|____|
Comme tu peux le constater, la première case du tableau est a[0], et
la 10e case est a[9]. On se rend immédiatement compte que la 11e case de
ce tableau, s'il y en avait une, serait a[10] et non a[11] comme dans
ton exemple.
Bah à la place d'écrire dans la onzième case il écrit dans la douzième.
Que c'est magnifique.
Non, regarde le dessin de plus près : il n'y a que dix cases à ce
tableau, pas douze. Un enfant de cinq ans est capable de compter les
cases de ce tableau et voir qu'il y en a dix, un peu d'effort que diable !
Sam.
--
Sam Hocevar <sam@zoy.org> <http://sam.zoy.org/>
Software should be free -- http://www.debian.org/
Media access should be free -- http://www.videolan.org/
Knowledge must be free -- http://www.wikipedia.org/
On dirait que tu ne comprends pas très bien. Je vais te faire un dessin pour t'expliquer. Voici une représentation d'un tableau a[10] : ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ | | | | | | | | | | | |a[0]|a[1]|a[2]|a[3]|a[4]|a[5]|a[6]|a[7]|a[8]|a[9]| |____|____|____|____|____|____|____|____|____|____|
Comme tu peux le constater, la première case du tableau est a[0], et la 10e case est a[9]. On se rend immédiatement compte que la 11e case de ce tableau, s'il y en avait une, serait a[10] et non a[11] comme dans ton exemple.
Bah à la place d'écrire dans la onzième case il écrit dans la douzième. Que c'est magnifique.
Non, regarde le dessin de plus près : il n'y a que dix cases à ce tableau, pas douze. Un enfant de cinq ans est capable de compter les cases de ce tableau et voir qu'il y en a dix, un peu d'effort que diable !
Sam. -- Sam Hocevar <http://sam.zoy.org/> Software should be free -- http://www.debian.org/ Media access should be free -- http://www.videolan.org/ Knowledge must be free -- http://www.wikipedia.org/
nicolas vigier
On 2005-03-09, Tom wrote:
Et je peux t'assurer que je m'efforce de suivre scrupuleusement la norme ...
C'est ça le problème en C : il faut s'efforcer de respecter la norme. Ce qui veut dire qu'il faut le vouloir de respecter la norme. Ca veut dire quoi ça ? Que l'on peut faire des programmes ne respectant pas les normes ? Donc que les compilateurs ne les respectent pas ou n'arrivent pas à forcer le programmeur à les respecter. Il y a forcément un problème quelque part avant même que le programmeur ne tape une ligne de code.
Ca va surement te sembler incroyable, mais oui, si tu ecris des conneries dans un fichier et que t'essaies de compiler, ben ca marche pas forcement tres bien. Et c'est un peu pareil en Caml, le compilo n'est pas capable de deviner ce que tu veux faire, il se contente d'executer ce que tu as ecrit. Scandale !
Et je peux t'assurer que je m'efforce de suivre scrupuleusement la norme ...
C'est ça le problème en C : il faut s'efforcer de respecter la norme. Ce
qui veut dire qu'il faut le vouloir de respecter la norme. Ca veut dire
quoi ça ? Que l'on peut faire des programmes ne respectant pas les
normes ? Donc que les compilateurs ne les respectent pas ou n'arrivent
pas à forcer le programmeur à les respecter. Il y a forcément un
problème quelque part avant même que le programmeur ne tape une ligne de
code.
Ca va surement te sembler incroyable, mais oui, si tu ecris des
conneries dans un fichier et que t'essaies de compiler, ben ca marche
pas forcement tres bien. Et c'est un peu pareil en Caml, le compilo
n'est pas capable de deviner ce que tu veux faire, il se contente
d'executer ce que tu as ecrit. Scandale !
Et je peux t'assurer que je m'efforce de suivre scrupuleusement la norme ...
C'est ça le problème en C : il faut s'efforcer de respecter la norme. Ce qui veut dire qu'il faut le vouloir de respecter la norme. Ca veut dire quoi ça ? Que l'on peut faire des programmes ne respectant pas les normes ? Donc que les compilateurs ne les respectent pas ou n'arrivent pas à forcer le programmeur à les respecter. Il y a forcément un problème quelque part avant même que le programmeur ne tape une ligne de code.
Ca va surement te sembler incroyable, mais oui, si tu ecris des conneries dans un fichier et que t'essaies de compiler, ben ca marche pas forcement tres bien. Et c'est un peu pareil en Caml, le compilo n'est pas capable de deviner ce que tu veux faire, il se contente d'executer ce que tu as ecrit. Scandale !
Non, regarde le dessin de plus près : il n'y a que dix cases à ce tableau, pas douze. Un enfant de cinq ans est capable de compter les cases de ce tableau et voir qu'il y en a dix, un peu d'effort que diable !
Garcimore faisait ce genre de tours de magie : rien dans la manche. C'estpas parce qu'on ne la voit pas qu'elle n'existe pas. Mais en fait elle n'existe juste pour que tu puisse écrire dedans. C'est une monstruosité. Bien sûr que t'as alloué 10 cases dans ton tableau. Mais tu peux écrire sur une onzième case et là pouf le système ne bronche pas. Sauf si les cases avaient le malheur d'être alloués en fin de segment et donc que cette case n'existe effectivement pas et plante comme une merde. Le linuxien a beau faire le malin à côté du Windozien : ses programmes plantent aussi. Rappelez vous de votre déception quand vous l'avez découvert lors de vos premiers pas sous linux. Naturellement vous ne vous en rappelez plus.
Tom
Non, regarde le dessin de plus près : il n'y a que dix cases à ce
tableau, pas douze. Un enfant de cinq ans est capable de compter les
cases de ce tableau et voir qu'il y en a dix, un peu d'effort que diable !
Garcimore faisait ce genre de tours de magie : rien dans la manche.
C'estpas parce qu'on ne la voit pas qu'elle n'existe pas. Mais en fait
elle n'existe juste pour que tu puisse écrire dedans.
C'est une monstruosité. Bien sûr que t'as alloué 10 cases dans ton
tableau. Mais tu peux écrire sur une onzième case et là pouf le système
ne bronche pas. Sauf si les cases avaient le malheur d'être alloués en
fin de segment et donc que cette case n'existe effectivement pas et
plante comme une merde. Le linuxien a beau faire le malin à côté du
Windozien : ses programmes plantent aussi. Rappelez vous de votre
déception quand vous l'avez découvert lors de vos premiers pas sous
linux. Naturellement vous ne vous en rappelez plus.
Non, regarde le dessin de plus près : il n'y a que dix cases à ce tableau, pas douze. Un enfant de cinq ans est capable de compter les cases de ce tableau et voir qu'il y en a dix, un peu d'effort que diable !
Garcimore faisait ce genre de tours de magie : rien dans la manche. C'estpas parce qu'on ne la voit pas qu'elle n'existe pas. Mais en fait elle n'existe juste pour que tu puisse écrire dedans. C'est une monstruosité. Bien sûr que t'as alloué 10 cases dans ton tableau. Mais tu peux écrire sur une onzième case et là pouf le système ne bronche pas. Sauf si les cases avaient le malheur d'être alloués en fin de segment et donc que cette case n'existe effectivement pas et plante comme une merde. Le linuxien a beau faire le malin à côté du Windozien : ses programmes plantent aussi. Rappelez vous de votre déception quand vous l'avez découvert lors de vos premiers pas sous linux. Naturellement vous ne vous en rappelez plus.
Tom
Joe Cool
On 2005-03-09, Tom wrote:
Avec le Caml on arrive déjà au marteau.
Au lieu de t'énerver, montre-nous ce que tu as réalisé avec ton "language-of-choice", comme ça on pourra comparer...
Quand on arrive à l'argument d'autorité, c'est qu'on à plus rien à dire.
Vous êtes dos au mur.
-- Joe Cool
On 2005-03-09, Tom <tom@tom.com> wrote:
Avec le Caml on arrive déjà au marteau.
Au lieu de t'énerver, montre-nous ce que tu as
réalisé avec ton "language-of-choice", comme ça
on pourra comparer...
Quand on arrive à l'argument d'autorité, c'est qu'on à plus rien à dire.
Au lieu de t'énerver, montre-nous ce que tu as réalisé avec ton "language-of-choice", comme ça on pourra comparer...
Quand on arrive à l'argument d'autorité, c'est qu'on à plus rien à dire.
Vous êtes dos au mur.
-- Joe Cool
nicolas vigier
On 2005-03-09, Tom wrote:
Elle se porte bien, merci pour elle. Elle aurait besoin d'un coup de rasoir, cela dit, ça commence à faire loin.
Et après ce sont mes propos qui n'ont rien à faire ici. Vous voulez quoi que je vienne dire toute mon admiration sur linux, c'est ça un débat ? J'aime bien Linux. Mais c'est loin d'être bien foutu. Et pour être bien foutu ça devrait être fait dans un langage bien foutu. Et par des gens qui pensent autrement qu'en impératif. Mais peut être avez vous des arguments pour me prouver que le C est un joli langage. Si ce n'est pas le cas vous pouvez retourner à votre rasoir.
Ben tu reviendras quand t'auras ecrit un OS en caml. Ca devrait etre super simple et aller vite, puisqu'apparement il n'y a aucun bug possible.
Elle se porte bien, merci pour elle. Elle aurait besoin d'un coup de
rasoir, cela dit, ça commence à faire loin.
Et après ce sont mes propos qui n'ont rien à faire ici. Vous voulez quoi
que je vienne dire toute mon admiration sur linux, c'est ça un débat ?
J'aime bien Linux. Mais c'est loin d'être bien foutu. Et pour être bien
foutu ça devrait être fait dans un langage bien foutu. Et par des gens
qui pensent autrement qu'en impératif. Mais peut être avez vous des
arguments pour me prouver que le C est un joli langage. Si ce n'est pas
le cas vous pouvez retourner à votre rasoir.
Ben tu reviendras quand t'auras ecrit un OS en caml. Ca devrait etre
super simple et aller vite, puisqu'apparement il n'y a aucun bug
possible.
Elle se porte bien, merci pour elle. Elle aurait besoin d'un coup de rasoir, cela dit, ça commence à faire loin.
Et après ce sont mes propos qui n'ont rien à faire ici. Vous voulez quoi que je vienne dire toute mon admiration sur linux, c'est ça un débat ? J'aime bien Linux. Mais c'est loin d'être bien foutu. Et pour être bien foutu ça devrait être fait dans un langage bien foutu. Et par des gens qui pensent autrement qu'en impératif. Mais peut être avez vous des arguments pour me prouver que le C est un joli langage. Si ce n'est pas le cas vous pouvez retourner à votre rasoir.
Ben tu reviendras quand t'auras ecrit un OS en caml. Ca devrait etre super simple et aller vite, puisqu'apparement il n'y a aucun bug possible.