> Le 26 août 2010 15:09, François Poulain <[email protected]> a écrit :
> 
> > Bonjour,
> >
> >
> Bonjour!
> 
> 
> >
> > En revanche, je considère que c'est potentiellement un très mauvais
> > langage pour débuter du fait qu'il est bas niveau et que beaucoup de
> > comportements du langage reposent sur la définition de la machine
> > (potentiellement variable) qui exécute le code ; ce qui est source de
> > nombreux effets de bord.
> >
> > Concrètement ça veut dire qu'il est impossible de prévoir ce que va faire
> > ce code suivant:
> >        i = -1;
> >        if (i > 0) printf("i est positif\n");
> >        else       printf("i est négatif ou nul\n");
> >
> > Donc la capacité à apprendre le C dépend fortement des connaissances du
> > débutant en matière d'architecture des ordinateurs.
> >
> 
> 
> Je suis d'accord avec ton analyse du C, de ses effets de bord et de la
> dépendance à l'architecture de l'ordinateur.
> 
> Par contre, à mon humble avis c'est justement ces caractéristiques qui en
> font un des meilleurs langages pour débutants, du moins ceux qui veulent
> comprendre réellement ce qu'ils font.
> 
> Ainsi un premier cours de C ne devrait pas être le "hello world", mais de
> l'architecture matérielle avec une explication de la mémoire vive, de son
> mapping et du CPU.


Bon je crois que j'ai envoyé mon message sur la mauvaise mailing-liste.
Normalemement il était destiné aux mongueurs Perl.

Peut importe, je constate au moins qu'içi on ne dit pas de mensonges.

Effectivement, le "mode de typage" en C est un problème, mais je 
pense qu'il peut être contourné de manière efficace , justement aux
moyens  de tests ou encore de compilations conditionnelles.

Comprendre plus ce qu'on fait avec le C?

Je pense que le C est encore très loin de l'Assembleur et même en Assembleur,
ce n'est pas façile de comprendre toutes les étapes machines car certaines
sont déja des intérruptions complexes écrites dans le BIOS par exemple.

Non, Ceci n'est pas vraiment le bon argument.

Je vois plus pour ma part un moyen d'aller droit au but et d'optimiser
les ressources et les données ainsi que les temps d'exécutions.
Attention le langage utilisé n'est pas le seul responsable du
temps d'execution : 
La façon d'écrire son code d'abord
La qualité du compilateur.
et plein d'autre chôses.

Mais à armes égales le C est au moins 10 fois plus rapide que les langages
interprettés.

Pour revenir à l'Objet:

Il y a beaucoup d'ouvrages écrit qui traitent de l'objet en C.

Et hélas, autant de méthodes pour le faire.

Il est effectivement possible de structurer son code afin de le faire se 
comporter 
comme un langage objet.

Ceci pose d'autres problèmes comme l'obligation de transtyper en utilisant le
type void, mais ceci peut être contrôler.
Aussi, il est possible d'implémenter un modèle Class et de le faire
supporter toutes les opérations d'héritages et tout ce qui va avec pour faire
de l'objet.

J'ai traduit une bonne partie de ce document qui n'est pas récent mais
qui a au moins le mérite de proposer une méthode sobre.

http://www.planetpdf.com/codecuts/pdfs/ooc.pdf

A ne pas confondre avec le projet OOC : "Out Of Class"
qui est intéressant aussi mais qui n'as rien à voir.

Pim.


_________________________________
Linux mailing list
[email protected]
http://lists.parinux.org/mailman/listinfo/linux

Répondre à