Grâce à sa machine virtuelle, il est tout à fait possible de développer en Java sur un système d'exploitation différent du (ou des) système(s) cible(s).
Mais vous, sur quel système est installé votre environnement de développement ?
Version imprimable
Grâce à sa machine virtuelle, il est tout à fait possible de développer en Java sur un système d'exploitation différent du (ou des) système(s) cible(s).
Mais vous, sur quel système est installé votre environnement de développement ?
Personnellement, je développe sur du Windows, mais mes applications tournent à la fois sur du Windows, du Linux et du Solaris...
Pour ma part, je développe sous Windows, mais j'hésite à passer sous Linux pour la puissance du shell et la rapidité de certains outils (SVN par exemple).
J'ai voté Windows mais à vrai dire je trouve la question curieuse car il me semble que ce qui fait l'environnement de dev c'est plus l'EDI que le système (du moins quand on travail avec un netbean ou un eclipse et que l'on a pas besoin de trop d'outils externes).
Sinon j'ai entendu dire que les claviers Apple étaient plus adaptés au dev que ceux des PC. Info objective ou intox intégriste ?
Pour ma part, je travaille dans le milieu de la physique des particules, dans un milieu où UNIX a une grande part de marché. Je développe donc en Java avec Eclipse sous Linux (desktop) et sous Mac OS X (laptop).
Je n'ai jusqu'ici eu très peu de problèmes à faire du cross-platform en Java, à part une fois où un code multithread qui tournait très bien sur mes deux plateformes de développement et provoquait un deadlock sous Windows d'après une utilisatrice.
Il a fallu que je courre dans tout le laboratoire pendant 2 heures pour trouver une bécane Windows de libre afin de tester notre soft. :mrgreen:
Il s'est avéré qu'un de mes collègues avait fait appel à une méthode bas niveau de Swing alors que la documentation déconseillait fortement l'emploi direct de celle-ci. :aie:
@ludosoft : Les claviers Apple QWERTY sont parait-il pas mal. Les claviers AZERTY nécéssitent des combinaisons de 3 touches pour faire des caractères comme '[', ']' ou encore '|'. Alors, oui, avec l'habitude, on s'y fait, mais c'est quand même pas terrible.
Disons que pour du développement 'serveur', l'intérêt est peut être moindre.
Et encore, avoir un shell c'est parfois fort utile.
Mais pour le développement 'Swing', il y a tout de même des différences de ce que j'en sais.
De manière générale, bien que j'utilise principalement l'IDE, il m'arrive tout de même d'utiliser des logiciels tiers : editeur d'image, editeur xml, ...
Ceux-ci étant différent de l'un à l'autre OS.
Pour ma part, il m'arrive de développer sur du RedHat comme sur du Xp, après, c'est en fonction du projet. On a des pc avec un Master JAVA contenant Eclipse, les librairies spécifique et tous les petits outils qui rende le développement sous windows plus facile. Concernant RedHat, c'est à chacun de décider.
Hello
Question curieuse en effet. C'est plus l'EDI qui conditionne le développement pas tellement l'OS. D'où ma réponse: TOUT !
Plus sérieusement, en majorité je développe sous Linux (CentOS au taf (beurk!) et Debian/Ubuntu chez moi (ouizzz!)). Pourquoi ? Existence des EDI et surtout, puissance du shell, rapidité des commandes utiles à la prog, ... Mais, grâce à la virtualisation, je peux corriger des détails ou alors je le fais directement sur la machine cible (Mac par exemple).
Voilà,
@++
J'ai voté Linux car c'est là que je développe le plus en Java. Sinon Java est multiplateforme, c'est cela sa force. Toutefois, il faut respecter les normes de développements. Si vous voulez que votre code soit portable, il faut éviter les API propres au système d'exploitation donné.
Sur un clavier Mac, les caractères spéciaux tels que '+', '-', '[', '{', '}', ']', '|', '@', '#', '~', que nous utilisons tous les jours en Java ne sont pas à la même place que sur un clavier PC. Certains nécessitent des combinaisons de 2 ou 3 touches. Par exemple sur un clavier Mac azerty, pour faire un pipe '|', il faut taper MAJ+Alt+L. Sur un clavier Mac qwerty, c'est Maj+'\'
Je trouve donc sa question tout à fait légitime...
Moi je développe sur Windows XP, mais si j'avais le choix de prendre du unix-like (Linux ou Mac Os X) parce que Windows et sa manie de locker les fichiers ou les répertoires dès qu'un process est dedans... ça m'agace !
J'ai coché aussi "autres" parce que développer sans un environnement CLI potable est un enfer pour moi : donc j'installe systématiquement un cygwin sur Windows. Ca ne corrige pas tous ses défauts, mais au moins, on a la puissance d'un shell unix !
J'ai voté Mac os x.
Dommage qu'Apple soit un peu à la traine par rapport aux versions de Sun.
J'ai du attendre Snow Leopard sortie tout récemment pour enfin profiter de Java 6.
Pour les avantages, on a le look and feel Mac os x par défaut, et Java est mieux intégré dans le système: déjà installé, et les mises à jour sont plus transparentes.
Pour le clavier, j'ai un azerty, je ne le trouve pas plus pratique qu'un clavier PC, mais on s'y fait.
EDIT: Ceci dit, à titre professionnel, j'utilise Windows.
Pour moi c'est Windows, mon poste de travail étant fourni par la société...
Je trouve moi aussi la question curieuse... je développe sur windows mais je teste sur différentes plate-formes (unix, linux).
Pour ce qui est de l'EDI, il y a des différences sur certains plugins entre la version windows et linux, svn par exemple a tardé à être disponible dans la dernière version...
Sinon, force est de constater que ça tourne plus vite sous linux et qu'apparemment, ça nécessite moins de mémoire...
Bon, d'un autre côté, j'adore java parce que JUSTEMENT, je peux me foutre de l'OS et que d'un point de vue développement, il n'y a pas de valeur ajouté sur l'OS, c'est plus une question d'habitude...
Je suis super étonné de tous vous entendre dire qu'il n'y a pas de gain à développer en Java sous Linux Oo
Le gain est incomensurable. Toute notre boîte (ou presque) a quitté windows pour ubuntu et le gain est clairement visible :
- outils plus puissants (on passe pas 100% de sa journée sur son IDE même quand on fait que du développement)
- OS plus léger
- OS plus rapide
- OS plus stable
Bref, je connais pas un développeur Java passé a Ubuntu qui referait le chemin inverse.
J'ai voté Windows, boulot oblige.
Sans arguments c'est que du vent...Citation:
- outils plus puissants (on passe pas 100% de sa journée sur son IDE même quand on fait que du développement)
- OS plus léger
- OS plus rapide
- OS plus stable
Je travaille sous Ubuntu uniquement pour la puissance du shell et de l'installation rapide des logiciels. Pour le reste je vois pas de différence
Pour travailler sous Ubuntu et Windows,
le seul gain que je vois c'est au démarrage,
ensuite, les 2 fonctionnent de la même façon et sont tout aussi productifs (bon, sauf si tu as des shell dans ton projet :mrgreen: )
Autre point pour le clavier MAC/PC, le '|' sous clavier QWERTY sur PC peut se faire aussi avec 2 touches (Shift + \),
après tout dépend du clavier QWERTY que l'on a (ils ne sont pas tous pareils)
Je pense que la raison avancée n'est pas suffisante, Moi aussi dans ma boite on utilise Windows, mais vu que les mêmes outils existent aussi sous Linux, donc ça ne pose pas de problème. Mais en dehors de ce que je code au travail, je n'utilise que Linux. Mais si ZeRevo a besoin d'arguments, je peux donner les miens et par là, je rejoins totalement l'avis de waddle . Linux est très léger, rapide est stable... Mais aussi relativement mieux sécurisé, c'est le point essentiel pour moi. Pour l'exemple, je gère un serveur chez une association, que je n'ai pas redémarré depuis longtemps et pourtant il tourne au max, avec streaming audio et vidéo, gestion du direct pour une webRadio…etc.Citation:
Baptiste Wicht
C'est une des dernières raisons qui me retient sous Windows pour mon poste de développement.
J'utilise actuellement linux pour mon développement java, mais c'est pas question de java en elle même pcq, mais question de la puissance de Linux, sa richesse en terme d'outils open source qui me facilite la vie, et aussi car j'étais dés ma découverte du monde libre, l'un des défendeurs de sa philosophie.
Pour les sociétés, l'utilisation de Windows n'est pas parce que ce dernier est plus performant ou plus facile, c'est juste une question d'historique, de réputation, et surtout une peur de changement...:)
En tous les cas chacun a son choix, et sa politique d'entreprise, mais je pense pas que java en elle même qui décide l'utilisation de ce OS ou l'autre.
Je ne suis pas entièrement d'accord. Dans ma boite, la partie applicative du réseau est gérée par Windows (Active Directory, exchange...). Si l'entreprise ne passe pas massivement sous linux, c'est purement pour des raisons de praticabilité et non de gros sous ou de facilité...Citation:
Pour les sociétés, l'utilisation de Windows n'est pas parce que ce dernier est plus performant ou plus facile, c'est juste une question d'historique, de réputation, et surtout une peur de changement...
Là ou ça ce complique, c'est que la majorité des serveurs applicatifs sont sous redhat... Et là, développer sous Linux donne un sérieux avantage... (ssh, scp, shell et tout le toutim...)
Windows au boulot et sur ma machine principale, Ubuntu Linux sur mon netbook.
Je ne vois pas linteret de la question puisque lappli developpee tournera sur nimporte quel OS (sauf biensur qq exceptions).
Perso je trouve que sous windows les bundles sont bien foutus et il est tres facile de developper rapidement sans prise de tete.
Concernant les claviers, il est clair que les qwerty sont bcp plus adaptes au dev (selon moi) notamment grace aux () {} ; et autres qui sont plus simples dacces que sur un azerty.
Bonjour,
Comme certains, je trouve la question un peu bizarre : la plupart des développeurs sont tributaires de ce que leur impose leur société, et en tant que machine physique c'est très généralement Windows. Chose que j'ai toujours pour ma part trouvé incohérent car en général, la plate-forme cible est de l'Unix/Linux, ainsi que les serveurs d'infrastructure (référentiel, intégration continue). Et malgré la portabilité de java, ce peut être un problème. Les locks des fichiers comme il a été cité, certes, mais également la limite de 256 caractères de Windows (c'est toujours le cas sur Vista/7 ? ), sa non gestion de la casse des caractères, les encodages... Autant de menus détails qui plombent un développement.
En ce qui me concerne, si j'ai le choix (et c'est le cas pour ma machine pro, pas sur celle mise à disposition par mon client :( ), c'est un Linux sans hésiter. L'IDE tend à devenir l'environnement confiné du développeur, mais c'est à mon sens une erreur que de ne pas profiter de ce que propose le système autour. Pour un développement avec Maven, la ligne de commande reste fondamentale. Du coup, en un rien de temps et de configuration, j'utilise le système de notification du système pour me tenir au courant du résultat du build (et ne pas rester les yeux rivés sur le défilement du build), l'utilisation de paramétrages différents (par exemple tests java5, Java 6) ou les déploiements (serveurs d'appli ou ESBs par exemple) n'en sont que facilités, ainsi que la communication inter-machines etc, etc. A force je reste persuadé que la productivité entre les deux systèmes n'a rien à voir, Windows n'est pas un environnement pour développeurs autre que .Net.
Je tape aussi de mes dix doigts et j'ai aussi beaucoup de mal avec le qwerty, même si je ne pense pas que ça ait un rapport. Lors d'un précédent contrat, je suis resté un mois au CERN avec un clavier qwerty : je n'ai pas réussi à m'y faire. J'ignore combien de temps il faut pour que l'automatisme se fasse.
Mais on est un peu hors sujet, là. :aie:
Sous Windows, avec 2Gb de mémoire, j'ai en permanence ouvert (dans l'unique but du développement): Eclipse, Firefox, l'explorateur, Notepad++, un Remote Desktop, le client ClearCase et un antivirus.
Sous Linux, avec 1.5 Gb de mémoire, j'ai en permanence ouvert: Eclipse, Firefox, Nautilus, Gedit et le client ClearCase (et pas besoin de Remote Desktop, ni d'antivirus)
Je trouve Windows extrêmement bloquant : la fluidité des applications laisse réellement à désirer. Je ne parle pas de petit blocage d'une demi-seconde, mais bien de gros blocages de 5-10 secondes lorsque j'explore mes drives après avoir négligé l'explorateur durant 1 à 2 heures et parfois 1 minute lorsque j'explore les drives ClearCase. (Non, pas besoin d'aide pour cela : je parle de l'expérience ; si je voulais de l'aide, j'irais voir mon helpdesk). Lorsque je n'utilise pas Eclipse pendant 1/2 heure comme pour prendre la pause de midi, je dois parfois attendre 5 à 10 minutes qu'il se recharge depuis le Swap (où il ne devrait pas être, puisque j'ai souvent plus d'un Gb de RAM dispo)
Sous Linux, rien de tout cela, tout est fluide. Le système répond en permanence, utilise une mémoire raisonnée et une application reste réactive malgré que je ne l'utilise pas durant plus d'une heure.
Bref, pour développer, lorsque je dois me coltiner un Windows, je suis un peu effrayé.
Honnêtement, j'ai encore jamais trouvé l'équivalent de la suite Office sur Linux...
OpenOffice c'est vraiment pas comparable à Office et beaucoup moins stable. J'ai été obligé de l'utiliser pour écrire de gros documents (>50 pages) avec pas mal d'images de tableaux, de zones, etc... et à part planter et freezer, il ne faisait pas grand chose d'utiles, donc à mon avis, il n'y a pas pour le moment pas encore d'équivalent suffisant sur Linux.
Sinon, pour revenir au sujet initial, SVN est beaucoup plus rapide sur Linux que sur Windows, même si j'ai jamais compris pourquoi. Je gagne du temps en faisant booter ma machine sous Linux et lancer la commande SVN plutôt qu'en lançant la commande SVN depuis Windows :cry:
Un peu, mais pas vraiment puisque certains ont parlé de l'avantage d'un clavier qwerty...
Pour "martopioche", il y aurait un autre avantage de développer sur une machine Unix/Linux lié à la distinction majuscules/minuscules dans les noms de fichiers : si ça marche sur Unix/Linux -> ça fonctionnera sous Windows, l'inverse n'étant pas vrai.
Je te rejoins également sur le fait que bien souvent, la machine cible (pour les serveurs en tout cas) sera Unix/Linux
Faux justement : MaClasse et Maclasse dans le même répertoire (donc package mais mettons nous au niveau de l'os) fout la grouille sous Windows, pas sous *nix. Récupère le projet sous *nix, tu bosse. Récupère le sous Windows, tu passe la journée à comprendre comment corriger le tir.
Mauvais exemple à mon avis, les classes étant gérées par l'IDE qui lui m'interdira d'avoir ce cas...
Mon problème est plutôt lié à un nom de fichier ou de répertoire utilisé comme une ressource (comme une page jsp par exemple) et là, si ça passe sous Linux, ça passera avec Windows
On a pas à se passer de Office. Si vraiment il est obligatoire, il suffit d'utiliser virtualbox. De toute façon, il faudra bien le faire pour tester sous IE.
Windows ET Linux (Ubuntu, Debian) pour ma part.
C'est certes vrai que c'est surtout l'IDE qui occupe une place prédominante dans le choix de son environnement.
Néanmoins, on n'utilise pas que l'IDE quand on développe. Et pour ça, je trouve personnellement que Linux a une longueur d'avance (logique, étant avant tout façonné par des développeurs qui y contribuent tous les jours). La gestion de SVN, le lock sur les fichiers en lecture, le shell incomparable, les liens symboliques plus rapides à faire, les noms de fichiers majuscule/minuscule, les noms de dossiers commençant par un point (.svn), ... plein de petites choses qui sont finalement pratiques au quotidien.
Mais bon, utilisant un IDE dispo sur les différents OS, ça ne m'empêche pas non plus de développer également sous windows, surtout parce que Seven reste mon OS lancé par défaut sur ma machine perso pour son utilisation hors développement (cause prise en charge du flash, logiciels windows only, habitudes de madame, ...) et donc quand je choppe l'ordi, je reboote rarement.
Une dernière chose: je fait plutôt du Java en ce moment ; je pense que si je bossais a nouveau sur des projets en C++, windows aurait ma nette préférence, rien que pour Visual Studio qui n'est dispo que sur cette plateforme.
PS: pour le troll "MS Office ou linux", il existe [ame=http://fr.wikipedia.org/wiki/Wine]ine[/ame], hein ;)
On peut passer à Linux sans quitter Office. La machine virtual est l'une des solutions les plus simples. J'ai une Virtual Box sur laquelle je fais tourner XP et ça marche à merveille, et j'ai l'impression que XP démarre plus vite que d'habitude. C'est vrai qu'il y a rien d'installer dessus, sauf l'Editeur XML de developpez.com.
Il y A aussi la solution de Wime ou avoir Grub pour cohabiter plusieurs OS sur la machine.
En ce qui me concerne, j'utilise très rarement OpenOffice et Office, juste quand je rédige la documentation, mais cela représente 5% de la charge de travail d'un projet... Etant développeur, je pense que ce logiciel n'est pas important pour moi. Si j'ai à choisir entre garder Office ou utiliser le Shell de Linux, la réponse est sans attente.
Eclipse sous Linux (boulot, maison).
Parce que clairement ce n'est pas que l'IDE qui fait la différence, mais aussi tout ce qui est autour : démarrer des process en ligne de commande hors IDE (BDD, JVM spécifique du projet, simulateurs), faire des grep dans plein de fichiers, utiliser Maven en ligne de commande (même si on peut lancer Maven depuis l'IDE ou via les plugins dédiés ... au passage il faut vraiment que je migre sur autre chose que Maven, çà me saoule de + en + cet outil), automatiser des tâches quelconques autrement qu'en ANT, etc.
Du coup pour tout çà je suis bien content d'avoir accès à un shell et tous les outils qui gravitent autour.
A contrario ... il ne me manque rien du tout de ce que j'avais sous Windows avant. Ah si, peut être Toad, SQLDeveloper est quand même lourd, mais bon, il y a des alternatives pour les petites manips' largement suffisants (sqlworkbench, ou DBViewer sous Eclipse).
J'utilise a la fois Linux et Windows pour le developpement Java. C'est vrai que l'IDE Eclipse fait toute la difference quelque soit le systeme, d'ailleurs je n'ai pas trouve d'enormes differences entre Eclipse Linux et Eclipse Windows.
Pour ce qui est des OS, on utilise Suse Linux Entreprise au travail, et j'ai Windows 7 Pro et Kubuntu 9.10 sur mon portable personnel.
Alors :
- Si on parle de stabilite de Linux (notamment dans ses versions serveur, et/ou qui tournent sur des serveurs), alors Ok il est stable. Mais dans ce cas COMPARONS CE QUI EST COMPARABLE ! Comparons Linux Entreprise contre Windows Server !
- D'autre part, Windows Seven est excellent. Je n'ai jamais eu de problemes avec, ce qui n'est pas le cas de Kubuntu.
- Linux plus leger ? Je vous invite a observer le taux d'utilisation du processeur et de la RAM dans Linux puis de le comparer a Windows 7 (c'est perdu d'avance face au soldat XP :)). Faites un "top" dans le Shell. Vous allez vite dechanter... Personnellement, Seven prend 630 Mo apres demarrage, alors que Kubuntu, apres une fraiche installation, va deja taper dans les 800 Mo (Vista ? :aie:).
- Linux plus rapide ? Ah bon ? C'est le cas dans une situation bien precise alors, sinon Windows 7 est a mon avis plus rapide. Pour ce qui est du demarrage, Kubuntu est plus rapide, certes, mais apres quelques applications installees ( et pas des choses gourmandes comme Oracle, PostgreSQL), vous constaterez deja un certain ralentissement.
J'ai fait le choix de Linux pour sa philosophie, notamment celle d'Ubuntu, et du merveilleux outil qu'est le shell.
Un dernier truc pour les defenseurs du monde libre :
- Ce n'est pas parce qu'un logiciel est libre (et accessoirement gratuit) qu'il est mieux que son alter-ego payant
- Vous etes developpeur, travaillant dans le monde de l'informatique ? Bien. Si des personnes comme vous fournissent une alternative libre et gratuite a des produits/logiciels que vous concevez au travail, dites-moi de quoi allez-vous vivre ? :oops:
Pour celles et ceux qui ne sont pas developpeurs, imaginez que vous etes medecin (ce que vous voulez en fait) et que des personnes se proposent de fournir une alternative gratuite a votre travail ? Vous devenez quoi ?
Exemple concret : les societes qui delocalisent ailleurs car la main d'euvre est beaucoup moins chere (a defaut d'etre gratuite). Que deviennent les anciens employes ?