Programmation sous linux ?

Bon voila je pose une question existentielle a tout les geeks programmeurs de la zone :
Linux est il facilement utilisable pour programmer ?
J’ai dans l’intention d’acquérir très prochainement un portable (vers noel) livré avec linux et j’aimerais en profiter et l’utiliser pour apprendre a programmer. Dans un premier temps de la programmation internet (html, php, mysql, javascript) puis du C/C++/java (en passant par du visual basic et autres …).
Si je me penche vers un portable avec linux pour ce genre de chose c’est pour ces raisons :

  1. pouvoir bosser n’importe ou
  2. la légéreté de linux
  3. la possibilité de programmer dans des langages gratuitement (a confirmer car quand je vois le prix de certains éditeurs C/C++ ou .net ca me fait peur…)

Donc voila amis geeks programmeurs utilisez vous linux ? Pouvez vous répondre a mes questions et confirmer mes doutes/espoirs ? Peut etre quelques précisions dont je devrais etre informé ?

PS : si il faut que ce post soit déplacé dans seg fault qu’un modo ne se gène pas pour le faire j’ai longuement hésité avant de le mettre ici.

[quote name=‹ AthenA714 › date=’ 12 Dec 2004, 20:50’]Bon voila je pose une question existentielle a tout les geeks programmeurs de la zone :
Linux est il facilement utilisable pour programmer ?[/quote]
oui oui et plus que oui, surtout pour le C. et le man c est du bonheur pour de la documentation.

doucement doucement ^^ c est bien la motivation, mais il faut que ce soit sur le long terme sinon ca te servira a pas grand chose. concentre toi plutot sur un vrai language de prog et a la limite en plus un language oriente web.

[quote name=‹ AthenA714 › date=’ 12 Dec 2004, 20:50’]Si je me penche vers un portable avec linux pour ce genre de chose c’est pour ces raisons :

  1. pouvoir bosser n’importe ou
  2. la légéreté de linux
  3. la possibilité de programmer dans des langages gratuitement (a confirmer car quand je vois le prix de certains éditeurs C/C++ ou .net ca me fait peur…)[/quote]
    tu n aura pas ce probleme sous linux. emacs c est un tres bon editeur a condition de l avoir pris en main, et tu as de base un compilo sous linux (gcc) et le tout est bien sur libre (et gratuit). sinon tu as des IDE comme eclipse (java) ou kdev(C il me semble) mais bon … c est pas obligatoire, ca fait plusieurs annees que je m en passe sous unix, ca marche ^^

[quote name=‹ AthenA714 › date=’ 12 Dec 2004, 20:50’]Donc voila amis geeks programmeurs utilisez vous linux ? Pouvez vous répondre a mes questions et confirmer mes doutes/espoirs ? Peut etre quelques précisions dont je devrais etre informé ?
[right][post=« 312258 »]<{POST_SNAPBACK}>[/post][/right][/quote]

1/ oui
2/ c est fait ^^
3/ hesite pas a acheter des bouquins, prefere un language plutot bas niveau pour commencer, c est (beaucoup) plus facile de faire bas => haut que haut => bas

Défini bien ce que tu veux avant de te lancer car sionon tu n’ariveras jamais à rien.

Donc, je confirme, Linux peut être très bien pour programmer. Sous un peu n’importe quoi, mais ça dépend des langages. Le C, c’est la base de Linux et Unix, son ancêtre a provocqué sa création. C’est totalement intégré et normalement, tu n’as pas une distro sans son gcc + vi et emacs pur éditer du texte. Pour les langages dérivés comme le C++, ça passe aussi très bien. Pour le java, il faut un JDK d’installé au minimum et ce n’est pas le cas de toutes les distros, mais c’est normalement très simple de s’en procurer un et de commencer à s’amuser avec. D’ailleurs, on reproche souvent à Linux d’être un OS de développeurs. L’avantage, c’est que tous les programmes sont ouverts et tu peux donc jeter un coup d’oeil aux sources pour voir comment ça marche.
Si tu demandes du C#, c’est semble-t-il faisable grâce à Mono, mais il me semble que MS n’a pas spécialement prévu de support autre que Windows avec leur langage. Que GloP me dise/m’engueule si je me trompais lourdement.
Ensuite, il faudra pas non plus demander un super environnement de développement genre Visual Studio machinchose. De base, c’est emacs ou vi pour écrire, le gcc dans la console pour compiler et si tu en as le courage, le gdb pour débuguer. Bref, c’est l’idéal pour des petits programmes pour débuter comme je l’ai fait à la fac, où on n’a nul besoin de lancer un gros IDE comme Eclipse ou Visual pour faire un petit TP sur les tableaux. Il existe en la matière KDevelop, mais je n’ai pas personnellement essayé. Mais il faut prendre en compte le fait que Emacs ou vi ne sont pas spécialement très faciles à prendre en main (une fois que c’est fait, ça passe très bien), contrairement à Kate, l’éditeur de KDevelop.
Si tu veux faire du java, il y a Eclipse et NetBeans qui existent pour Linux.
Pour le développement web, c’est la même chose, tu as l’emacs pour coder et le navigateur pour voir les effets. Si tu veux faire du PHP/*SQL, il n’y a pas trop d’autres solutions à part d’avoir un apache et les SQL et compagnie tournant en local pour voir les effets. Mais c’est généralement en license libre, donc gratuit.

Donc pour la gratuité, ça y sera, mais ça ne sera peut-être pas le même luxe qu’un Visual. Mais je pense que pour débuter, ce n’est pas forcément très utile. Pour la légéreté, si tu fais ça avec un emacs et la console pour compiler, aucun risque, on peut difficilement faire plus léger.

Bon alors pour donner quelques détails de plus a ceux qui m’ont aidé :
Je connais déjà plutot bien l’html (mais je me suis limité à la base et dans un but non pratique : ie je n’ai pas étudier les feuilles de styles CSS et ce genre de choses, je sais juste comment taper du code html pour donner un résultat convenable). Dans la continuité des choses je compte donc dans un premier temps bien sur faire du php et/ou javascript. J’espère pouvoir avoir de bonnes bases avant l’été 2005.
Par la suite je suis censé rentrer en iut d’informatique pour y apprendre principalement du java/C/C++, donc si j’ai le temps d’ici la j’aimerais apprendre un peu les bases du C en commencant peut etre par du visual basic ou des choses de ce genre (d’ailleurs c’est possible sous nux ca ?).
Voila comment je compte commencer a apprendre a développer.
Quelques conseils a me donner ?

Oula, donc:
Pour le développement web, à part nvu pas de WYSIWYG. Il y a Quanta qui est pas mal si tu veux éviter l’emacs. Pour le reste, je ne sais pas trop, mais je crois que tu vas pas mal apprécier Emacs.

Visual Basic, non, ce n’est pas possible sous Linux. D’abord, c’est Visual quelque chose, donc venant de MS et je vois encore mal MS porter les environnements de développement qui font le succès de Windows auprès des dévs sous Linux.
Ensuite, c’est du Basic. C’est trèèèèèès loin du C. C’est très abstrait par rapport à la machine, au grand contraire du C. Par exemple, en C, tu gères la mémoire comme un grand. En basic, tu ne t’en occupes pas et c’est nettement plus simple. Ensuite, le C est un langage impératif. Le VB est ce me semble plutôt orienté objet, tout comme le C++, le Java et le C#. Et normalement, tu devrais apprendre le C avant n’importe quel autre langage de programmation orienté objet. Personnelement, j’aurais eu pas mal de difficulté à comprendre la POO si j’avais commencé la prog direct en java.

Je pense donc personnellement que tu devrais donc commencer par le C avant toute chose (ou un langage de prog impératif, mais sous Linux, le C est ton ami). Je dois avoir des liens vers des cours de C faits par des prof de fac si tu veux pas te payer un livre.

Le fait qu’il n’y ai pas d’éditeurs WYSIWYG ne me dérange pas du tout.
Par contre emacs j’ai eu l’occasion d’essayer une fois mais je lui ai préféré vim. Maintenant peut etre que je n’ai pas assez essayé je verrais bien.

Merci bien pour les précisions concernant le C le basic et toutes ces autres chose. De toutes facons en mettant a part le langage web j’ai bien envie d’apprendre le C/C++ pour devenir un l33t h4ck3rZ de la cour des grands. Plus sérieusement ca me fais pas peur du tout. La seule chose qui m’embète c’est par la suite la facilité ou non de passer a d’autres langages genre java ou C#. Ca m’embéterais assez de devoir tout réapprendre a chaque fois alors j’espère qu’il y aura quand meme certaines similitudes…

Edit : Encore un détail. Vaut il mieux se coltiner les cours dans l’ordre pour maitriser a fond le C ou alors il vaut mieux apprendre la base et travailler sur un projet concret ?

Ha, je pense que pour apprendre, rien de mieux que de se trouver un truc intéressant une fois que t’as les bases. Quand t’auras besoin, tu iras fouiller sur internet et les pages de man les fonctions un peu plus poussées du langage et chercher certains algos. C’est mon opinion toute personnelle et celle d’un copain qui nous owne tous notre mère en java quand je lui dis que je terminerais un bien un TP à la maison, il me dit que je ferais mieux de me trouver un projet personnel qui me botte bien à faire.

Pour passer de C/C++ à java ou C#, aucun problème, c’est très proche, la syntaxe est très proche et si t’as compris la programmation objet, ça ne devrait pas te poser de problèmes de passer au java et au C#. Ensuite, il y a toujours les spécificités du langage en lui même, ses particularités et tout ça, mais normalement, tu devrais reconnaitre pas mal de trucs entre ces quatres langages qui sont tous inspirés des autres par ordre d’appartion (C, C++, java et enfin C#).
Ha oui et pour Rox0ris3r en C/C++, je te conseille d’étudier quelque chose comme le code du noyau Linux pour le C et KDE pour le C++. Ha, heu, non, en fait les mecs qui programment le noyau Linux doivent juste être des demi dieux en C, donc, voilà le niveau à atteindre, je suppose.

Ha oui, sinon, ton post a plus de place dans SegFault qu’ici à mon avis. Il y a des vrais programmeurs professionnels comme GloP, Tuo, C0unt0 et compagnie qui trainent et qui sont bien plus expérimentés que moi dans ce domaine.

Merci bien pour toutes ces précisions, a vrai dire je pensais pas qu’on pouvait trouver un man pour toutes les commandes de C, mais en y réfléchissant c’est logique.
Je pense que je vais arreter la parce que au début je voulais juste savoir si linux était approprié à la prog et du coup j’ai pas pu m’empécher de dériver le thread pour assouvir ma soif de connaissance.
Et en plus jsuis passé padawan geek :stuck_out_tongue:
Merci :stuck_out_tongue:

Bon la tu touches forcement un sujet sensible et ou je suis pas necessairement objectif, mais je pensais pareil avant de bosser sur visual studio et .net. Je m’en fout :P, je donne quand meme mon opinion parceque je crois (ben forcement c’est la mienne) qu’elle vaut quelque chose de par mon experience passee avec linux (sur lequel j’ai bosse en pro quelques annees) et avec windows (sur lequel je bosse depuis que j’ai arrete de bosser sous linux :P).

[quote name=‹ AthenA714 › date=’ 12 Dec 2004, 11:50’]Bon voila je pose une question existentielle a tout les geeks programmeurs de la zone :
Linux est il facilement utilisable pour programmer ?[/quote]
Pas plus que windows. Clairement pas. C’est un mythe et de la FUD de linuxien ca… Si au premier abord ca peut paraitre vrai, quand tu te plonge vraiment dans le bordel d’un cote uo de l’autre ca tient pas debout. J’y croyais aussi quand j’ai commence a programmer, mais apres etre passe sous win « de force » je peux clairement affirmer que c’est 100% bidon. Oui, meme pour du C.

[quote]1) pouvoir bosser n’importe ou
2) la légéreté de linux
3) la possibilité de programmer dans des langages gratuitement (a confirmer car quand je vois le prix de certains éditeurs C/C++ ou .net ca me fait peur…)[/quote]
Il y a de nombreux editeurs gratuits qui tournent sous windows. Tout le SDK .net est gratuit, ainsi que le SDK java, ainsi que le compilateur C et C++. Si tu veux des « outils » tu peux faire tourner emacs, vi, ou une rimbambelle d’editeurs plus divers que varies qui sont aussi disponibles sous windows. Y compris visual studio, dont la version express par exemple est disponible gratuitement. Mais c’est loin d’etre le seul a fournir un environnement integre de developpement.

Tout depend de ce que tu veux faire. Si tu veux passer ton temps a bidouiller ton systeme et a te former a linux, fonce sur linux. Si tu es attire par un certain cote « geek » et une certaine forme de communautee (qui existe aussi sous win d’ailleur), fonce sur linux. Mais sache que tu peux aussi trouver la meme chose et plus sous windows. C’est pas parceque l’ecrasante majoritee des utilisateurs de win ne programment pas qu’une communautee n’existe pas. Quand sous linux tu as une gros % des utilisateurs qui savent aussi plus ou moins programmer alors que le % est bien bien plus faible sous win ne veut pas dire qu’en chiffres bruts, en ressources et en aide dispo, le total est pas largement comparable. Le kernel de windows est en C et en C++ lui aussi… l’argument « linux est base sur du C » donc c’est mieux tient pas debout. J’ai fait 3 ans de C sous plusieurs sortes de *nix, j’ai pas mate le code du kernel une seule fois…

Tout ca pour dire que il te faut faire ton choix pour des vrais bonnes raisons, et ca peut etre aussi bete que « linux ca me fait plus marrer parceque c’est plus roots ». Mais pas parceque « programmer sous linux c’est mieux et plus adapte que programmer sous win », parceque, ca, c’est trop du bidon… Et selon ce que tu veux faire, la plate forme et les outils que tu choisit, les resultats seront pas forcement plus rapide d’un cote ou de l’autre. Moi j’ai appri linux en tant que systeme parceque le systeme etait different de ce que je connaisais et ca m’a attire de voir quelque chose de nouveau, mais quand Ballmer fait le singe en criant « developpers developpers developpers » faut pas croire qu’il dit ca en l’air :stuck_out_tongue: C’est que faire des outils et des API faciles et adaptees pour rendre le devel plus attrayant avec les outils MS, c’est une des grandes volontee sur Redmond pour rendre et garder la plate forme windows attrayante. Si pendant quelques annees (autour de 2000) « internet » a enleve pour quelque temps le « focus » sur ce point particulier venant de MS, je peux te dire que c’est carrement plus le cas et que c’est pas loin d’etre la priorite numero 1 de faire de win la plate forme de choix pour developper des trucs. Tout le bordel avec C# et .Net en sont la preuve et je crois que pas grand monde peut nier qu’ils participent fortement a definir les standard de ce qu’est et ce que doit etre les standard de developpement d’appli pro en 2004…

Ouaip Glop, merci pour le petit dèj commercial :P.
J’ai juste une petite remarque, que ce soit sous Linux ou windows, pour moi cela ne change pas grand chose en termes de devel. Par contre, si tu veux apprendre, essaies de commencer tes petits projets à la root. Genre editeur de texte coloré, makefile ou .bat pour compiler, bien basique, quoi. Ca te permettra de t’en sortir sans environnement de dév. et de t’adapter beaucoup plus rapidement à n’importe quel environnement de dev.
Dès que tu as compris le truc, tu pourras passer à quelque chose de plus convivial pour des projets un peux plus gros.
Ah oui, autre chose, trouve toi un projet (même trop dur) et tente de le réaliser par tous les moyens. C’est comme ça qu’on avance, on apprend pas à programmer dans les livres (enfin un peu, mais ça fait clairement pas tout).

Tu vas avoir un portable livrée avec nux ? avec tout qui marche dedans ? Je peux voire l’offre et les spéc’ parce que c’est rare les portables 100% compliants

Sinon oui c’est pas dure de coder sous linux :stuck_out_tongue: Aprés c’est aussi une question de gout

Meme moi ca m’arrive de coder sous VS .Net (avec license) sans trop broncher j’aime pas les indent’ mais c’est perso c’est tout

Enfin voila …

Koubiak

Huhu meme pas commercial :stuck_out_tongue: J’ai rien a vendre moi, je recommendais que des trucs gratos. :stuck_out_tongue:

[quote name=‹ koubiak › date=’ 13 Dec 2004, 00:54’]Meme moi ca m’arrive de coder sous VS .Net (avec license) sans trop broncher j’aime pas les indent’ mais c’est perso c’est tout
[right][post=« 312394 »]<{POST_SNAPBACK}>[/post][/right][/quote]
C’est quoi le probleme avec les ident’? Tu sais que ce genre de trucs est tout configurable pour s’adapter a tes conventions de codage?

Sauf windows quoi… :stuck_out_tongue:

[quote name=‘AthenA714’ date=’ 12 Dec 2004, 23:04’]Merci bien pour toutes ces précisions, a vrai dire je pensais pas qu’on pouvait trouver un man pour toutes les commandes de C, mais en y réfléchissant c’est logique.
[right][post=“312314”]<{POST_SNAPBACK}>[/post][/right][/quote]

Mouais… les man c’est bien pratique quand tu connais la fonction dont tu cherches l’aide. Sinon sans son nom point de salut. Si tu n’as jamais fait de C je te conseil fortement d’acheter un livre ça t’évitera d’apprendre à coder n’importe comment. Si tu veux une référence de livre, le classique C ANSI Programming 2ème édition, de Brian W.Kernighan et Dennis M.Ritchie (Le K&R pour les intimes).

Et tu as bien raison vim ça poutre :P

[quote name=‘GloP’ date=’ 13 Dec 2004, 10:04’]C’est quoi le probleme avec les ident’? Tu sais que ce genre de trucs est tout configurable pour s’adapter a tes conventions de codage?
[right][post=“312397”]<{POST_SNAPBACK}>[/post][/right][/quote]

Je sais mais en defaut il fait pas un ident auto matique donc par exemple tu suppris un ligne et crac il te met un truc super mal indenté…

Enfin faudrait que je me mette a le configurer un jour.

KOubiak

Bon alors pour répondre a tout ce qu’on me dis :
Koubiak > oui je vais avoir un portable livré avec linux, celui ci. Par contre il me servira exclusivement a programmer donc je me fous un peu d’avoir 40 fps sous farcry, je dis ca parce que je te vois venir quand tu auras vu la radeon 9700 mobility, avec les drivers ati sous nux c’est pas gagné.

Glop > si je demande tout ca c’est effectivement parce que jusqu’a maintenant javais l’image typique de linux “programmer”. Mais maintenant que je veux apprendre a utiliser linux (j’ai une passerelle qui tourne sous debian mais je ne sais pas par quel miracle j’ai réussi a tout configurer), j’aimerais profiter de l’occasion que j’aurais avec ce portable d’apprendre a programmer. Donc je voulais d’abord vérifier que ce n’était pas un faux mythe que de programmer sous linux, meme si c’est pas a la hauteur de tout ce que j’ai déjà entendu et ce que j’espère ca me suffira. Mon choix premier de programmer sous linux est aussi du a une chose : je n’ai qu’un seul pc sous windows chez moi (enfin dans ma chambre quoi), et il me sert déjà a toutes les utilisations, musiques, video, dvd etc… Donc comme il est configuré aux ptis oignons pour tourner comme je l’aime (avec un ghost au cas ou) je préfére ne pas l’alourdir de sdk en tout genre. Par contre je ne savais pas que la plupart étaient gratuits, c’est une bonne chose a savoir ca. Et c’est tant mieux parce que a terme j’aimerais également programmer sous win car il doit etre plus adapté a certains langages comme le C# ou le .net. Maintenant je dis ca j’en sais trop rien, peut etre que ca va changer. Bref pour commencer je veux utiliser ce portable pour maitriser linux et avoir de bonnes bases en C.

Merlin > Merci pour la référence du bouquin j’y jetterai un oeil.

Kaneloon > T’inquiète pas des projets (trop durs) j’en ai pleins voir trop en tete. Ya de quoi m’occuper pour quelques dizaines d’années (un pti mmorpg par ci, un blog par la, des ptits softs pour gérer mon réseau de chez moi etc…).

Bon esprit! du moment que plus de monde se met a la programmation moi je suis pour. Ca ne peut que faire du bien la ou ca fait mal au final :stuck_out_tongue: linux, windows, OS2, asm, java, C++, whatever!

Tiens, tiens, on parle d’IDE, d’édieur et de compilo sous Nux et sous Windows, pour moi, Linux ou Windows c’est pareil pour programmer avec juste un petit avantage pour la console linux même si on peut s’en passer avec Eclipse, VS.NET ou autre IDE avancés.

J’en profite pour poser une petite question, je recherche un bonne éditeur gratuit pour C# sans partie design alacon© (parce que j’aime tout coder en brut moi même) qui fasse la complémentation automatique et qui gère aussi le HTML/XML correctement avec pleins d’option pour l’indentation automatique.
Bon je ne crois pas que ce soft existe, après avoir testé WebMatrix et SharpDevelop, j’ai repris mon bon vieux editeur java : Jext.

Au fait, puisqu’on parle d’IDE, il y a six mois, on avait pu télécharger des Visual machintruc Express 2005 en béta, c’est devenu quoi cette affaire? Gratuits et localisés, payants pour une misère, abandonnés? Parce que même en disant au Windows Update de mettre à jour les programmes en version béta, je n’ai strictement rien eu aucune mise à jour depuis le temps où j’ai téléchargé tout ça… début juillet dernier.