[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: developpement en C



On Fri, Sep 24, 2010 at 01:37:24PM +0200, Pierre-Arnaud wrote:
>  Le 24/09/2010 13:32, rkdebian@numericable.fr a écrit :
> >Bonjour,
> >
> >Existe-t-il une commande permettant d'installer tous les paquets
> >indispensables pour faire du développement en C. (gcc, make etc
> >... )
> 
> aptitude install build-essential


J'ajouterais qu'en pratique "développement en C" ne veut pas dire
grand chose. Pédantiquement personne ne développe en C *pur*, tout le
monde s'appuie sur d'autres choses. Par exemple, je travaille sur le
(c.à.d. à l'interieur du) compilateur GCC (et en particulier sur sa
branche MELT; voir mon exposé RMLL2010
http://2010.rmll.info/Extending-the-GCC-compiler-with-MELT-to-suit-your-needs.html?lang=en
qui pourrait te donner des idées intéressantes). Et GCC dépend d'un
gros tas de bibliothèques extérieures.

Le langage C pur n'existe quasiment pas: très peu de programmes sont
conformes très strictement aux standards C (standard au sens le plus
normatif = pointilleux du mot, par exemple ceux de l'ISO), et les très
rares programmes strictement conformes sont généralement peu
intéressants; la plupart des programmes Linuxiens utilisent
(fournissent et/ou s'appuient) sur des bibliothèques qui ne sont pas
standard C, mais qui sont soient conformes à d'autres standards
(Posix, opengroup) soient le plus souvent qui s'appuyent sur des
bibliothèques libres spécifiques (GTK par exemple, pour les interfaces
graphiques à la gnome).

Par exemple, l'éditeur de texte Emacs ou bien Gedit s'appuie sur un
gros tas de libraries existantes (appels systèmes Posix, X11, GTK,
...) en plus de ceux du standard C. Et de même pour le serveur web
lighttpd, ou pour le langage de commande zsh.  Chacun s'appuie des des
libraries (= bibliothèques) différentes!

Une commande utile pour développer un programme qui ressemble à un
autre existant (par exemple gedit) c'est surtout
 
   aptitude build-dep gedit

qui demande d'installer tous les paquets nécessaires à la compilation
du paquet gedit. C'est en pratique bien plus utile.

La bonne question, c'est quel genre de programmes envisages-tu de
développer (ou à quels logiciels libres désires tu contribuer). Même
si tu code en C, tes besoins seront différents si tu veux coder un
pilote du noyau ou une petite application graphique (par exemple une
montre) ou un petit serveur (ou un programme FastCGI en C).

Le paquet build-essential est nécessaire, mais pas suffisant.

Si tu commences à apprendre le C, regarde aussi et surtout comment
sont développés (codés, maintenus, évolués) l'un des très nombreux
logiciels libres existants, et plonges toi dans son code et dans sa
communauté. C'est très instructif!

Il existe de très nombreux outils qui sont utiles au développement en
C, mais qui ne sont pas spécifique au C (par exemple les éditeurs
comme emacs, les versionneurs comme subversion ou git, les
constructeurs comme make ou omake ou cmake, les générateurs de code
comme flex, bison, antlr, les bibliothèques utilitaires...)

Quel genre de programme[s] veux tu écrire en C?

Librement.
-- 
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***


Reply to: