c koi la difference entre programmer c sous linux et sous windows?
Version imprimable
c koi la difference entre programmer c sous linux et sous windows?
Bonne question, si tu programmes de façon portable aucune différence, si tu veux tirer parti des API systèmes Windows alors c'est différent, il faut se plonger dans le MSDN, mais je suppose que c'est un peu la même chose pour Linux/Unix.
Sous Windows il existe surement plus d'outils performants:Microsoft Visual C++ est trés bien côté par exemple.
Je vais surement relancer le fameux débat Windows/Linux, mais j'ai souvent entendu dire que coder sous Linux, c'était plus pratique... :?:
Surement parce que linux inclu déjà pas mal d'outils pour le C(la fameuse commande man notamment qui constitue une bonne documentation),Citation:
Envoyé par Miksimus
normal pour un systeme qui repose sur le C, alors que pour windows trouver les bons outils c'est parfois la galere.
Oui, c'est vrai ! Que serions nous sans "man" !!Citation:
Envoyé par seriousme
:lol: Sous Linux aussi y'a de très bons outils.Citation:
Envoyé par seriousme
Comme l'a dit Trap D, y'a pas de différence pour un code portable. Mais dès que tu veux faire du code dépendant de ton système, il y a une différence avec des fonctions spéciales Windows et d'autres spéciales Linux.
Et ça a été dit mais sous Linux, tu as déjà des outils pour programmer alors que sous Windows, tu dois les installer toi-même. Bref, pas de grosses différences comme ça...
Nas'
C'est un troll... :PCitation:
Envoyé par tawfik2006
même si c'est vachement mieux sous Linux...
Aïe le Troll n'est pas loin...
Essayons de rester neutre.
Il y a 2 façons d'interpréter ta question :
Niveau outil : Le compilateur C utilisé sous GNU/Linux est gcc, il est possible qu'il en existe d'autre, mais je ne les connais pas. Sous Windows, beaucoup utilise Visual. Il y a aussi le compilo borland, un portage de gcc (mingw ?) et peut-être d'autre. Il y a parfois des petites subtilités dû au standard C respecté, et souvent quelques directives préprocesseur feront l'affaire. A part les compilateurs, tu as aussi les EDI et les outils de debug. Bref un panel d'outil sont à disposition aussi bien sous GNU/Linux que sous Windows
Niveau programmation système : GNU/Linux et windows collent chacun plus ou moins bien avec les standards Posix. Il y a donc un ensemble de fonctions système compatibles (en général les fonctionnalités qui ne sont pas portables sont annoncées en tant que telles).
Avant tout il est donc préférable de faire en fonction de l'environnement cible. Si tu cherches à écrire une appli pour windows, développe sous window, et vice versae. Si tu dois faire du code portable, fais comme tu veux, il faudra bien de toute façon que tu testes sur tous les environnements cibles.
Je te conseille de préciser un peu ta question car c'est assez vague, et il est donc difficile de répondre précisément.
Chut! Linux c'est mieux ;)Citation:
Envoyé par Teuchteu
Non mais Teuchteu a bien résumé la situation. Faut préciser la question et surtout savoir pourquoi tu veux savoir ça? 8O
mais je répète que Linux c'est mieux pour le C...
Nas'
Je suis d'accord avec Teuchteu, le plus important est de savoir où tu vas utiliser tes codes... après tu fais en fonction.Citation:
Envoyé par Teuchteu
Mon opinion serait que si on débute en programmation, le mieux serait peut-être Windows, et dès qu'on devient un peu confirmé, Linux serait alors plus pratique... Mais bon je ne donne que mon avis... Linux c'est mieux quoi...
Le C a été conçu pour Unix.
Le langage et le système (et ses dérivés) vont donc bien ensemble.
L'API Win32 est, du point de vue du C, assez hideuse.
C'est plein de macros et autres horreurs du style.
Legende urbaine.Citation:
Envoyé par loufoque
Comme l'a rappelé emmanuel, ce n'est pas totalement vrai, le fait que unix utilise le C et l'assembleur comme briques de base ne veut pas dire que ces langages ont été conçus que pour ce système.Citation:
Le C a été conçu pour Unix.
Pour en revenir à la question, pour ce qui est du C à proprement parlé (c'est à dire sans les bibliothèques annexes), il n'y a aucune différence, le code étant le même, il n'y a donc aucune différence.
Pour ce qui est des outils, je dois dire que windows possède semble t il des outils plus performants (par ex: la suite Visual Studio). Mais néanmoins, sous linux on commence (depuis quelques temps) à trouver des éditeurs assez performants aussi (Kdevelop, antuja, ...).
Personnellement je n'utilise pas ces "mastodontes", sous linux j'utilise emacs et sous windows CodeBlocks.
Ensuite, le gros point fort de Linux/Unix est pour moi, la simplicité d'installation des bibliothèques de développement. Suivant les distributions et les outils de gestion de paquet, celà se fait en très peu de temps. Sous windows, même si on trouve quelque fois des fichiers de projet pour Visual ou MinGW, je dois avouer que cela paraît plus obscur pour les débutants.
Enfin, pour conclure, il faut que tu saches quel sont tes objectifs dans le développement en C. Si tu utilises des choses peu portables (appels systèmes), ton choix va être vite arrêté (tu utiliseras les appels qui correspondent à ton système). En revanche, si tu n'utilise que des choses qui sont portables, libre à toi de choisir le système qui te convient, en fait, dans l'industrie, le problème est vite réglé : tu développes sur le système qui sera utilisé lors de la production. Si tu développe pour des systèmes embarqués (consoles ou autres), tu développera sur la platterforme qui propose les outils pour ton système final. Sinon, le choix t'est donné, c'est une question de gout...
Bonjour,
j'ai développé sous les deux OS et je suis plutot Linux/Unix/MacOSX.
En effet, ceux ci offrent des outils tout aussi performant et ludique que window.
Mais on bénéficie surtout de la stabilité, fiabilité et de la sécurité de ces OS qui n'est pas négligeable pour le développement.
De plus, Linux est entièrement développé en C, ce qui laisse croire à une certaine compatibilité, mais c'est sujet à débat.
Maintenant, chacun ces gouts.
Je rajoute mon grain de sel, mais pour les outils, d'un coté on nous parle de GCC, de l'autre de Visual.
Il faut comparer ce qui est comparable: GCC est un compilateur, Visual un EDI.
Et question EDI sous Linux, j'ai essayé Anjuta (et c'est avec lui que j'essaie de programmer quand je suis sous Ubuntu) et:
1- Il n'est pas du niveau de Visual.
2- On n'a que le choix entre "pas d'auto indent du tout" et cette *$^*$ù^de "smart indent". Pas de niveau intermédiaire "Auto-indent, mais on laisse l'utilisateur faire ce qu'il estime le plus lisible avec".
3- Il est imbitable (autotools, makefiles générés et regénérés, fonction "nettoyage" qui buggue s'il y a un problème avec les makefiles). Déjà que Visual n'est pas forcément pratique, anjuta est pire. (Mais il a le mérite de supporter le mode "sans projet").
Moi je trouve pas anjuta terrible non plus. Eclipse avec CDT est parait-il pas trop mal (en plus c'est portable).Citation:
Envoyé par Wikipédia
De façon générale, je ne trouve pas les EDI terribles.
Non, il n'y a pas que du C dans linux, c'est un melange de C et d'assembleur.Citation:
Linux est entièrement développé en C
Normal, il est impossible de développer un kernel en C, puisqu'il faut pouvoir jouer avec les interruptions.
personnelement pour la programmation je suis plus pour linux avec emacs 8) (vive emacs :D ) surtout pour programmer en C/C++, j'ai un peu plus de mal a programmer sous windows avec visual ou dev-c++...
Faut dire on m'a habitué a programmer sous emacs/vi dès que j'ai commencer a apprendre a programmer, ça joue peut être un peu ;)
Oui, tout à fait, tout est une question d'habitude. Pour ceux qui débutent, le choix, à mon avis, doit se porter sur la platteforme et les outils dont on est sur d'avoir facilement de la documentation de qualité et éventuellement des personnes que l'on connaisse qui puissent nous aider.
Il est clair que si vous ne connaissez que des développeurs Windows, vous irez plus facilement sur cette plateforme pour débuter étant donné que les aides seront plus faciles à obtenir.
Sans doute, mais pour regarder dans le code d'un autre (surtout du mauvais code: Pour l'exemple pratique, essayer Network Simulator) un EDI est indispensable.
(La fonction de recherche de fonction, c'est une fonction d'EDI: Un éditeur de texte qui supporte ça n'est pas un "simple" éditeur de texte).
Alors allons aux sources :Citation:
Envoyé par loufoque
http://cm.bell-labs.com/cm/cs/who/dmr/chist.html
Le developpement sur les deux plate-forme possede dans chaque cas des avantages et des inconvenients.
Si on aime bien travailler avec un gros IDE, on est quand meme plus a l'aise sur Windows. Visual and co. n'a pas son equivalent sur Unix/Linux.
Apres pour ceux qui ne sont pas refractaires au editeurs plus "primitifs" c'est quand meme plus confortable sous Unix/Linux. Les manpages sont une ressource aussi utile que precieuse. Et disponible tres facilement (soit installe de base, soit au prix d'une installation tres rapide).
Pour en revenir a l'editeur, Emacs ou Vi sont tous deux tres performants, meme si ils n'ont pas la puissance d'un Visual.
Mais je pense qu'il n'est pas forcement tres sain de travailler sur du C avec un IDE. On peut passer a cote de certaines choses.
Pour un langage de haut niveau, c'est rapidement indispensable (j'ai des frissons a l'idee de faire du Java sous Emacs ou Vim). Pas pour le C.
Sur ce, bonne journee a tous.
PresqueCitation:
Envoyé par PRomu@ld
--Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 eric@indiana:~/sources$ sloccount linux-2.6.15 ...................................................................... Totals grouped by language (dominant language first): ansic: 4481795 (95.41%) asm: 204184 (4.35%) perl: 3248 (0.07%) yacc: 2594 (0.06%) sh: 1869 (0.04%) cpp: 1763 (0.04%) lex: 1497 (0.03%) lisp: 218 (0.00%) python: 127 (0.00%) awk: 99 (0.00%) pascal: 41 (0.00%) ......................................................................
SaintAmand
Regarde tout de même les pourcentages des autres langages :
Je ne suis pas un expert dans la constitution des sources d'un noyau mais je pense que tout les autres langages servent de scripts pour la compilation, mais ne sont pas (en tout cas ce que je pense) vitales pour le noyau.Citation:
perl: 3248 (0.07%)
yacc: 2594 (0.06%)
sh: 1869 (0.04%)
cpp: 1763 (0.04%)
lex: 1497 (0.03%)
lisp: 218 (0.00%)
python: 127 (0.00%)
awk: 99 (0.00%)
pascal: 41 (0.00%)