Pour avoir développer en JAVA durant la majorité de mes études, je dois dire que personnellement je trouve que c'est un super langage que je vois au-dessus du C/C++ au niveau de l'apprentissage.
En C/C++, tu dois gérer davantage de détails inutiles pour parvenir au même résultat qu'en JAVA (je ne parle pas de QT ici xD)
Envoyé par
Spleeen
- Java est naze niveau perf. Clairement tu dév avec, tu te fous des perfs.
Pour le même algorithme général, C est quasi 10 fois plus rapide. 7 fois pour C++. C# peut générer un vrai binaire, en perdant le multiplateforme. Mais Java n'est pas multiplateforme dans la pratique, donc bon.
Ah et pour ceux qui parlait de l'optimisation en ligne de code JAVA/C/C++/C#. Petit site qui parle du nombre de ligne de code par points de fonctions utilisé par certains gestionnaire de projet pour estimé la longueur d'un programme. (quoi que je suis d'accord que l'estimation est une chose que je doute un peu vu que sa dépend du programmeur)
http://www.qsm.com/resources/functio...anguages-table
JAVA : 53
C# : 54
C : 97
C++ : 50
Envoyé par
tralloc
Bonjour,
La verbosité, parlons en. En effet je préfère des mots assez explicite que des sigles qui ne veulent rien dire, et ça je n'y toucherait pas.
Oui, le nom des méthodes/function en JAVA sont clairs et précise contrairement a d'autre langages.
Envoyé par
tralloc
Par contre tout ces getters/setters sont bien lourds par exemple, et il y a de nombreuses choses qui pourraient être empruntées à python, scala, ... qui permettraient d'améliorer le langage.
Personnellement, j'adore les get/sets et même en C/C++, dans nos classe on doit utiliser des get/sets si je m'abuse. Du moins, dans tous les cours que j'ai vu c'était comme ça.
Il y a que le .NET (en langage réellement connu, car j'ai pas le souvenir d'avoir déjà vu une offre d'emploi qui parle de scala,python ou d'autre trucs du genre) qui offre vraiment les propriétés qui font le get/set à l'intérieur qui est sertes plus optimale au niveau du codes, mais pas nécessairement plus claires si tu as du traitement à faire.
Mais bon, tous ça est laisser à la discrétion du programmeur.
Envoyé par
tralloc
Mais surveillons ce malicieux C#, qui sait s'adapter plus vite aux évolutions du temps (il est aussi plus jeune). Je pense qu'ils se valent (sauf pour la portabilité) mais que Java a encore son mot à dire.
Oui C# est bien, mais il n'est openSource ni multiplateforme. Contrairement au JAVA.
Envoyé par
xarkam
Pourrais-tu s'il te plait, nous montrer un mauvais exemple de code Java comme tu le fait ici pour c# ?
Oui, je suis dev c# et je n'utilise jamais var dans des déclaratif (même si resharper le veux)
C'est pareil que le java, typage fort. Quoi que depuis la 4.0 on a le déclaratif Dynamic (
http://msdn.microsoft.com/fr-fr/magazine/ee336309.aspx)
Personnellement, s'il y a du code que je qualifie de mauvais codes, c'est réellement l'utilisation d'un type générale si je peu le dire ainsi (var, Dynamic) qui peut remplacer n'importe qu'elle type.
Si les langages sont typé ce n'est pas sans raison. Donc utilisé les type, certes si tu code en JS,PHP tu as pas le choix, mais en prenant ces langages tu t'attends a devoir codé comme ça, donc ces logique. Même si c'est le mal.
Envoyé par
Grom61736
Okay, tu as gagné, le C/C++ est plus rapide.
Prends une bonne grosse application programmée par des dizaines de personnes voir plus. Bizarrement, l'avantage de la gestion de la mémoire se transforme en désavantage avec une gestion de la mémoire catastrophique car faite à l'arrache.
Alors oui, on a le "ah mais non, moi monsieur je programme bien"... Toujours est-il que ce n'est pas le cas de tout le monde.
Il est clair que si tu veux faire une application où tu vas aller dans les moindre recoin pour grapiller des ms et de la mémoire, vaut mieux pas être dans un langage haut niveau maintenant, pour l'application en entreprise (ce qui permet à un langage de vivre) avec plein de gens pas aussi doué que toi, oui, le GC est plus doué que la moyenne...
Tiens ça me fait penser à une histoire qu'un de mes profs avait raconter. Lorsqu'il était sur le marché du travail en développant en C/C++ avec une grosse équipe. L'application avec tellement de fuites de mémoire et de ralentissement qu'un des programmeurs a été chargé de développer lui même un «pseudo-garbage collector» dont le résultat ne fut pas 100% optimale mais bon ^^
Envoyé par
Carhiboux
Du code sale en java, il y en a aussi je n'ai pas
var toto = "rastatpopulos" n'est pas si horrible que cela. On voit vite de quoi il s'agit.
Maintenant, si j'ai une déclaration du type :
var titi = monObjet.maMethode();
Là je suis plus embêté. Et oui, l'IDE me fournit des outils pour savoir, mais il faut chercher un peu. L'information n'est pas immediatement accessible.
J'aime autant (mais j'admets volontiers tout la subjectivité de la chose) :
String titi = monObjet.maMathode();
Justement pour moi c'est ce qui fait la différence entre un bon et mauvais programmeur. La lisibilité de son code, du code devrait ce lui comme une histoire. Si je peu le dire ainsi.
String username = CurrentSession.getUsername();
Si tu lis comme une phrase/histoire :
Créer une variable username qui est égales à la valeur Username de la session courante.
Mais bon, tous ça varie en fonction des programmeurs et des normes d'entreprises.
Envoyé par
Spleeen
- Pas de surcharges d'opérateurs... non mais allô quoi !
La tous ce que je vois, c'est un fan de C/C++, car désoler mais la surcharge d'opérateur ne sert pas a grand chose a mon avis, mis-à-part faire un code qui n'est pas hyper claires.
Prenons par exemple un classe Employé avec les variables Experience.
Personnellement si j'ai le choix entre surcharger l'opérateur «+» ou créer une méthode textuel (ajouterExperience), j'aime réellement mieux une méthode textuel que un opérateur qui ne veut rien dire.
Envoyé par
deusyss
Ajouté à cela le rachat de sun par oracle, les proces de ce dernier envers ceux utilisant java (cf android de google), le "soi-disant" quiproquo de cet été sur la javadoc passé sous licence proprio, les antécédent mysql et open office, ...; bref pour moi, Java est condamné dans les 2 à 5 ans à venir.
Oui malheureusement le rachat risque de briser l'openSource et d'amener JAVA a sa perte... Je suis d'accord pour le mal, car java est très bien.
Envoyé par
deusyss
Pour le remplacer? Python, associé à du C. Ce couple permet de repondre à tous les besoins, il n'y a alors rien d'autre à connaitre pour moi.
Pourtant comme j'ai dis je vois rarement voir jamais d'offre d'emploi : PYthon, C, C++.
Majoritairement, c'est : .NET / Java / Delphi
Je parle pas du Web, là.
Envoyé par
ptah35
Quand tu manipuleras le nom, tu sauras parfaitement qu'il s'agit d'une chaîne parce que dans le cas d'espèce "rastapopulos" est une manifestement une chaîne et que même quelqu'un qui n'a jamais programmé en C# est capable de dire.
L'inférence de type permet d'éviter de la redondance, mais si le code n'est pas clair alors on peut choisir de ne pas l'utiliser.
Oui à la déclaration c'est une chaine, mais le problème a déclarer sans typé reste que la valeur peut-être modifier par n'importe quoi. Et que s'il se passe quelques chose de «croche» dans l'application, ça peut transformer ta variable String et lui affecté une valeur numérique ou autre.
On n'est jamais sur a 101% de ce qui ce passe dans notre application.
Partager