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 <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.

Avatar
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.

Avatar
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

Avatar
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

Avatar
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.

Avatar
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.

Avatar
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

Avatar
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


Avatar
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

Avatar
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.