OVH Cloud OVH Cloud

a-t-on le choix ?

444 réponses
Avatar
Tom
Bonjour,

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

10 réponses

Avatar
Nicolas George
Tom , dans le message <422ec75c$0$18054$, a
écrit :
Comment se fait il alors qu'on puisse ajouter un entier à un caractère ?


Quel est le problème ?

Qu'on puisse diviser un void par une chaine de caractères ?


Tu prouves encore que tu ne connais pas le C.

ça doit pas être un mauvais programmeur celui qui l'a fait je suppose.


Oui.

Pourtant c'est possible. Un programme n'a la sémantique qu'on veut bien
lui donner.


Cette phrase ne veut rien dire.

Je ne pense pas qu'il y ait un intérêt aux classes.


Tu ne penses pas beaucoup, on dirait.

Ils ne devraient tout simplement pas exister.


Tu as invoqué toi-même le fait que c'était un problème indécidable.

Avatar
Joe Cool
Joe Cool avait écrit le 09/03/2005 :


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.


Les attaques ad hominem commencent à pulluler. Ce n'est pas sérieux.


Vous confondez "défis" et "attaque".


Dans ce cas montez moi votre système d'exploitation à vous écrit en C
standard : il faut que le code soit le même pour toutes les
architectures possèdant un compilateur C.

--
Joe Cool



Avatar
Nicolas George
JustMe , dans le message , a
écrit :
Que fais tu du théorème de Godel ?


Mauvaise objection, changer d'objection.

Avatar
Joe Cool
Ils ne devraient tout simplement pas exister.


Tu as invoqué toi-même le fait que c'était un problème indécidable.


La détection des fuites de mémoire l'est peut être, mais la prévention
des fuites est on ne peut plus décidable. On appelle ça des ramasse-miettes.

--
Joe Cool


Avatar
Joe Cool
Nicolas George a exprimé avec précision :

JustMe , dans le message , a

Que fais tu du théorème de Godel ?


Mauvaise objection, changer d'objection.


Quelle reponse détaillée, objective et argumentée ;-D


Le théorème de Gôdel possède une preuve de sa validité.

--
Joe Cool



Avatar
Emmanuel Florac
Le Wed, 09 Mar 2005 11:22:12 +0100, Tom a écrit :

Si les processeurs étaient
bien foutus ce ne serait pas le cas.


Ah, on y vient enfin. Vas-y, explique nous comment on conçoit un
processeur qui se programme de façon non impérative, ou peut-être aussi
des barettes mémoires avec typage statique des données?

--
De longs désirs, une longue admiration sans espérance, voilà le moyen
d'adorer les femmes, et de rendre l'amour une passion délicieuse!
N. Rétif de la Bretonne.

Avatar
JustMe
Nicolas George a exprimé avec précision :
JustMe , dans le message , a
Que fais tu du théorème de Godel ?


Mauvaise objection, changer d'objection.


Quelle reponse détaillée, objective et argumentée ;-D


Avatar
Joe Cool
Parce que vous savez faire un OS en C vous. Montrez-nous le donc.


http://www.systella.fr/~bertrand/freevms

Ça ira ?



« Le noyau FreeVMS est pour l'instant un noyau Linux 2.4 patché pour
bénéficier du support ext3. »

Eh ! C'est de la triche !

--
Joe Cool


Avatar
Nicolas George
Joe Cool , dans le message <422ebc4a$0$25620$, a
écrit :
Il existe un truc tout nouveau, un truc révolutionnaire qui s'appelle
... attendez, je cherche.... une preuve mathématique.


Oui, et ? Un programme en C peut tout autant être pvouvé qu'un programme en
Caml ou en n'importe quel autre langage. Il n'y a absolument aucune
différence de fond : dans tous les cas l'environnement de
compilation/exécution aide le programmeur dans la mesure de ses moyens à
faire cette preuve, et dans tous les cas avoir une preuve complète est
infiniment trop fastidieux pour qu'on prenne le temps de le faire
globalement et explicitement pour les programmes courants.

La seule différence est quantitative : certains langages, en enfermant le
programmeur dans des structures plus strictes, permettent à l'environnement
de compilation/exécution de fournir des bouts de preuve un peu plus larges à
bas niveau. Mais ça reste forcément limité.

De plus, l'idée de preuve mathématique d'un programme se heurte à une
objection fondamentale : une preuve mathématique porte sur des objets
mathématiques, alors que l'utilité d'un programme est en général dans le
domaine réel (images, sons, paquets réseau). La correspondance entre le
théorème qui a été prouvé et la réalité pratique qu'il est censé recouvrir
ne peut pas être prouvée.

Avatar
Joe Cool
Ah, tu parlais de lambda-calcul ? Il faudrait le préciser, mon ami. Ce
que moi j'appelle "preuve" de programme, comme beaucoup (mais qui
s'appelle aussi vérification de programme, je le reconnais), c'est la
"preuve" que le programme fait bien ce pourquoi on l'a conçu. Les
lambda, pi, rho, machins-calculs, j'en ai bouffé merci ; et honnêtement,
j'ai encore du mal à comprendre comment on formalise avec ces machins
une addition (en arithmétique IEEE 754, par exemple) simplement. Le fait
est que ces trucs là ne sont pas adaptés à la vraie vie


Oui, et Linux n'est absolument pas adapté aux impératifs industriels :
il n'est pas assez stable et manque de fonctionnalités indispensables.

C'est bien connu.

--
Joe Cool