Précédent   Forum du club des développeurs et IT Pro > Général Développement > Débats sur le développement - Le Best Of

Débats sur le développement - Le Best Of Décideurs : Le meilleur des débats sur les choix de technologies pour le développement. Ce forum est réservé aux professionnels.

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: Quel est le meilleur des deux langages selon vous ?
Je suis intéréssé par Java et C# 221 20,20%
C# 327 29,89%
Java 353 32,27%
J'apprécie le fait d'avoir l'alternative Java ou C# 104 9,51%
Ni l'un ni l'autre 35 3,20%
Sans opinion 45 4,11%
Autre avis ? (précisez...) 9 0,82%
Votants: 1094. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse
 
Outils de la discussion
Vieux 24/12/2008, 15h04   #181
bricecol
Membre expérimenté
 
Avatar de bricecol
 
Brice Colucci
Développeur informatique
Inscription : avril 2007
Messages : 363
Détails du profil
Informations personnelles :
Nom : Brice Colucci
Âge : 24

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : avril 2007
Messages : 363
Points : 571
Points : 571
Envoyer un message via MSN à bricecol Envoyer un message via Skype™ à bricecol
J'aime JAVA tout simplement car c'est un langage objet exceptionnel (très bien pensé et c'est un plaisir de l'utiliser). J'aime être libre dans mes choix et j'apprécie le partage des connaissances... Je n'aime pas les langages trop abstraits qui font un peu l'effet masque (cf VB.NET). En gros, j'aime savoir ce que je fais et comment c'est fait.

C# est plus rapide que JAVA (des fois...), mais arrêtons de nous voiler la face, tout le monde sait que c'est du copier/coller de JAVA SANS son incroyable portabilité bien sûr. VOILA ce qui explique (en partie) la différence de vitesse... M$ pour et avec M$... Petite question : avez-vous plus confiance en les développeurs M$ qu'en les experts en programmation et en sécurité internationals ?

Pour moi, JAVA est beaucoup plus mûr et M$ a pondu VS pour essayer de ne pas tout perdre de se côté là et pour s'en convaincre, il suffit de se renseigner et de se remémorer l'histoire même de M$... Peut-on nier le fait que Bill soit un rapace ?

Si vous aimez le développement l'informatique bien étudié et si vous tester ces différents langages, vous pencherez normalement vers JAVA. Enfin, qui peut me dire que le coût des licences M$ est négligeable ? Voyons, restons sérieux...

Malgré tout ce qui a pu être dit, je persiste et je signe : JAVA est meilleur en moyenne que tout langage de M$. La seule chose que j'apprécie sur VS, c'est le formatage automatique du code source et quelques petits effets sympathiques.

In fine, chacun fait ses choix !

PS: J'ai développé un framework de création d'application graphique pour le CNRS, des projets J2EE et des librairies VB.NET.
bricecol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2008, 15h12   #182
vtrone
Membre Expert
 
Avatar de vtrone
 
Homme
Inscription : novembre 2005
Messages : 1 900
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2005
Messages : 1 900
Points : 2 028
Points : 2 028
Citation:
Envoyé par bricecol Voir le message
C# est plus rapide que JAVA (des fois...), mais arrêtons de nous voiler la face, tout le monde sait que c'est du copier/coller de JAVA SANS son incroyable portabilité bien sûr.
Mouais... Sans vouloir faire de troll, Java n'est pas un copie/collé de C++.... ?
Citation:
Envoyé par bricecol Voir le message
Pour moi, JAVA est beaucoup plus mûr
Normal vue la différence d'âge..

PS : je ne fais ni Java, ni C#, ni C++...
vtrone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2008, 15h24   #183
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 661
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Développeur Java/Web
Secteur : Transports

Informations forums :
Inscription : avril 2002
Messages : 12 661
Points : 22 460
Points : 22 460
Citation:
Envoyé par kuzco Voir le message
Mouais... Sans vouloir faire de troll, Java n'est pas un copie/collé de C++.... ?
Non loin de là !
Si les deux langages partagent la même syntaxe de base (hérité du C), cela aboutit à une approche de la POO très opposé sur de nombreux points... (mais c'est un autre débat).

De même qu'on ne peut pas parler de "copie" pour le C# !
Oui c'est un concurrent sur le même domaine que Java, mais malgré ma méconnaissance de C#, je sais qu'on y retrouve également beaucoup de notion différente de Java. Maintenant ces différences et ces choix ont pus être pris en considération de l'expérience apporté par Java... mais c'est tout à fait normal !



Par contre bricecol : ton argumentaire me semble peu crédible et assez trollesque... sûrement à cause de tout ces "M$" qui traine et qui te décrédibilise encore plus

a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java Présentation de Java SE 7 (commentaires)
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2008, 15h36   #184
vtrone
Membre Expert
 
Avatar de vtrone
 
Homme
Inscription : novembre 2005
Messages : 1 900
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2005
Messages : 1 900
Points : 2 028
Points : 2 028
Citation:
Envoyé par adiGuba Voir le message
Non loin de là !
Si les deux langages partagent la même syntaxe de base (hérité du C), cela aboutit à une approche de la POO très opposé sur de nombreux points... (mais c'est un autre débat).

De même qu'on ne peut pas parler de "copie" pour le C# !
Oui c'est un concurrent sur le même domaine que Java, mais malgré ma méconnaissance de C#, je sais qu'on y retrouve également beaucoup de notion différente de Java. Maintenant ces différences et ces choix ont pus être pris en considération de l'expérience apporté par Java... mais c'est tout à fait normal !
Voilà un argument plus constructif, merci pour ce point de vue...
vtrone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2008, 10h46   #185
Keihilin
Inscrit
 
Avatar de Keihilin
 
Inscription : février 2004
Messages : 861
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : février 2004
Messages : 861
Points : 1 029
Points : 1 029
Envoyer un message via MSN à Keihilin Envoyer un message via Skype™ à Keihilin
Citation:
Envoyé par adiGuba Voir le message
Par contre bricecol : ton argumentaire me semble peu crédible et assez trollesque... sûrement à cause de tout ces "M$" qui traine et qui te décrédibilise encore plus
+1

Citation:
Envoyé par bricecol Voir le message
Pour moi, JAVA est beaucoup plus mûr et M$ a pondu VS pour essayer de ne pas tout perdre de se côté là...
Par ailleurs, cette tendance à joyeusement confondre .Net et Visual Studio ne participe à crédibiliser cet avis, CNRS ou pas .

Citation:
Envoyé par bricecol Voir le message
La seule chose que j'apprécie sur VS, c'est le formatage automatique du code source et quelques petits effets sympathiques.
Preuve supplémentaire, s'il en fallait une, que tu es visiblement passé complètement à côté du sujet. Mais bon, ça a au moins le mérite d'être drôle.

Citation:
Envoyé par bricecol Voir le message
mais arrêtons de nous voiler la face, tout le monde sait que c'est du copier/coller de JAVA SANS son incroyable portabilité bien sûr.
Dans cette phrase, "toute le monde" est à prendre dans le sens "les développeurs du dimanche qui ne voient pas plus loin que le bout de leur nez et qui s'arrêtent aux similarités de syntaxe pour tirer des conclusions idiotes" ? N'est-ce pas ?

Que Microsoft ai observé et appris de Java pour créer .Net ne fait aucun doute, mais comme l'a souligné adiGuba de nombreuses choses qui peuvent sembler similaires sont implémentées de manière très différentes (à tort, à raison, ou sans réelles conséquences).

D'autre part, comme cela a déjà été évoqué ici, .Net bénéficie d'un rythme d'évolution plus soutenu que Java ce qui a pour effet d'avoir un peu inversé les points de référence; Java peut maintenant aussi "apprendre" de .Net et peut être même "copier" (OMG!) si le choix d'implémentation d'une fonctionnalité dans .Net est jugée bonne par la communauté Java.
Keihilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2008, 16h50   #186
Bourgui
Membre chevronné
 
Homme Rémi BOURGAREL
Développeur .NET
Inscription : juin 2006
Messages : 425
Détails du profil
Informations personnelles :
Nom : Homme Rémi BOURGAREL
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur .NET
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : juin 2006
Messages : 425
Points : 604
Points : 604
Je vais rajouter mon petit grain de sel, vu que ce débat est très passionnant et que j'ai plus ou moi touché aux deux technos (java 4 mois pour une appli desktop réseau et c# 1 an et demi d'asp.net et un zeste de desktop).

Coté syntaxe, il n'y a pas de "meilleur" java est plus correct je pense sur l'objet (le "virtual" par exemple est une abération) que c# qui va permettre d'ici peu de faire ce genre de choses :
Code :
1
2
3
4
5
6
7
8
public string ma_fonction_string(this string toto){
....
}
public void Main(){
string test =" haha";
string res = test.ma_fonction_string();
}
La ça fout le bordel et ça casse tout, c'est moche et inmaintenable, mais le problème de notre métier c'est que tout est utilisé et qu'un jour ou l'autre je vais voir ce genre de saleté.

Donc j'aurais tendance à préférer java parce qu'il est un peu plus contraignant , et dans un projet ou tout type de developpeur sont réunis, c'est pas de trop.

Coté techno (sinon on s'arrète a la syntaxe).

Les perfs j'ai pas assez d'expérience en desktop c# pour en juger, mais c'est vrai que les petite appli que j'ai faite n'avait pas des freezes comme celle java, mais la on touche swing plus que la techno java.

Par contre la ou Java deviens ma technos préférée c'est sur le fait que ce n'est pas un framework ! on est pas en boite noire costemment, à décompiler les dll pour savoir comme ça se fait que mon programme bug des qu'il entre dans une fonction de .net, et en asp.net encore plus.

Coté IDE, pour ma part c'est Eclipse VS Visual Studio

Pas photo : Eclipse les yeux fermée sur un pied et sans les mains ! Visual Studio génère du code de partout, sans pour autant pouvoir l'éditer, il copie / colle très mal, le Team Foundation bugue vraiment pas mal , le wysiwyg est très très très lent, les possibilités de refactoring sont très limitée, il y a 40 style de projets on s'y retrouve jamais ("Projet Web ou site web ? that's the question").

Mais java l'emporte tout de même haut la main (pour moi) pour les points suivent :
- apache : l'équipe de IIS devrait etre fondu a la soude puis mangée puis refondue puis éparpilllée sur une planète qu'on aurait fondue, alors qu'apache c'est de la crème a administrer
- communauté (beaucoup trop d'évangeliste microsoft sur la toile, l'example type est la folie qu'il y avait pour link to sql a la sortie, ça parlait que de ça, ils ont arrété depuis qu'on s'est rendu compte que ça servait a rien).
- le nom ("c tiret" contre "ile du pacifique" ou "café" c'est ridicule)
- la proximité avec le monde de l'open source qui le tire vers le haut, c'est pas visual stduio qui va se sentir mis en danger par la concurence.
- il n'est pas lié a d'autre produits, c'est l problème de microsoft il veulent faire une toile entre tout leur machin


Enfin voila.
Bourgui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2008, 17h26   #187
Keihilin
Inscrit
 
Avatar de Keihilin
 
Inscription : février 2004
Messages : 861
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : février 2004
Messages : 861
Points : 1 029
Points : 1 029
Envoyer un message via MSN à Keihilin Envoyer un message via Skype™ à Keihilin
Citation:
Envoyé par Bourgui Voir le message

Coté syntaxe, il n'y a pas de "meilleur" java est plus correct je pense sur l'objet (le "virtual" par exemple est une abération) que c# qui va permettre d'ici peu de faire ce genre de choses :
Code :
1
2
3
4
5
6
7
8
public static string ma_fonction_string(this string toto){
....
}
public void Main(){
string test =" haha";
string res = test.ma_fonction_string();
}
Pas d'ici peu...les méthodes d'extension sont déjà disponibles en C# 3.0.

J'étais un peu dubitatif la première fois que j'ai vu ça, et j'ai également rapidement pensé aux abus que cela pouvait provoquer.

Après quelques mois d'utilisation, j'ai largement modifié mon jugement ! Ce n'est au final qu'un sucre syntaxique, et comme tout les sucres syntaxiques, mal utilisé c'est pénible, mais utilisé intelligemment, c'est vraiment très très pratique et cela peut même rendre le code bien plus lisible.

Citation:
Envoyé par Bourgui Voir le message
Par contre la ou Java deviens ma technos préférée c'est sur le fait que ce n'est pas un framework ! on est pas en boite noire costemment, à décompiler les dll pour savoir comme ça se fait que mon programme bug des qu'il entre dans une fonction de .net, et en asp.net encore plus.
7 ans que je travaille sur des projets .Net, et des bugs dans le framework lui-même j'en ai pas croisé des masses...

Notons quand même que les sources de .Net sont maintenant disponibles en consultation et que l'on peut donc désormais se passer de décompilation pour comprendre le fonctionnement de telle ou telle fonction.

Citation:
Envoyé par Bourgui Voir le message
Coté IDE, pour ma part c'est Eclipse VS Visual Studio

Pas photo : Eclipse les yeux fermée sur un pied et sans les mains ! Visual Studio génère du code de partout, sans pour autant pouvoir l'éditer, il copie / colle très mal, le Team Foundation bugue vraiment pas mal , le wysiwyg est très très très lent, les possibilités de refactoring sont très limitée, il y a 40 style de projets on s'y retrouve jamais ("Projet Web ou site web ? that's the question").
Visual Studio est comme Eclipse : extensible. Donc les critiques sur le copier/coller ou le refactoring ne tiennent pas puisqu'avec quelques plug-ins on arrive à faire tout ce que l'on veut.

Concernant les designer wysiwyg, il est vrai que celui d'asp.net a toujours été une catastrophe, à tel point que même s'il s'est largement amélioré au fil des versions, je connais très peu de développeurs qui l'utilise encore.

Citation:
Envoyé par Bourgui Voir le message
- apache : l'équipe de IIS devrait etre fondu a la soude puis mangée puis refondue puis éparpilllée sur une planète qu'on aurait fondue, alors qu'apache c'est de la crème a administrer
Hors sujet, Apache != Java, de même que IIS != .Net.

Citation:
Envoyé par Bourgui Voir le message
- communauté (beaucoup trop d'évangeliste microsoft sur la toile, l'example type est la folie qu'il y avait pour link to sql a la sortie, ça parlait que de ça, ils ont arrété depuis qu'on s'est rendu compte que ça servait a rien).
Oui, c'est sûr que l'objectivité des évangélistes microsoft n'est pas toujours à toutes épreuves...
Mais bon, de là à dire que LINQ ne sert à rien, il y a de la marge...

Dès que l'on touche à la problématique de réunir OO et relationnel, aucune solution n'est parfaite à 100%. LINQtoSQL est juste une solution parmi d'autre, mais ce n'est de loin pas la pire...


Citation:
Envoyé par Bourgui Voir le message
- il n'est pas lié a d'autre produits, c'est l problème de microsoft il veulent faire une toile entre tout leur machin
C'est effectivement le but de Microsoft d'offrir une solution globale, et .Net est une brique de cette solution. Il s'agit clairement de philosophies différentes qui comportent chacune des avantages et des inconvénients, mais ce n'est pas là un critère pour juger des qualités de l'une ou l'autre des technologies...
Keihilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2008, 03h41   #188
Jimalexp
Membre habitué
 
Inscription : septembre 2008
Messages : 236
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 236
Points : 116
Points : 116
Citation:
Envoyé par bricecol Voir le message
C# est plus rapide que JAVA (des fois...), mais arrêtons de nous voiler la face, tout le monde sait que c'est du copier/coller de JAVA SANS son incroyable portabilité bien sûr. VOILA ce qui explique (en partie) la différence de vitesse... M$ pour et avec M$... Petite question : avez-vous plus confiance en les développeurs M$ qu'en les experts en programmation et en sécurité internationals ?
Pas nécessairement. Je tenais cet appriori lorsque le Java avais fais son apparition. Depuis, j'ai découvert que le Java a évolué et qu'il a été optimisé pour certaines opérations (comme d'autres langages sur machine virtuelle) de sorte que dans certains cas de figure les performances sont assez voisines.

Mais il est vrai que l'avantage principal du Java est sa portabilité. Cela signe sans doute l'avenir en terme d'applications. Par exemple, saviez-vous que Eclipse a été conçu en Java ?

Citation:
Envoyé par Bourgui Voir le message
on est pas en boite noire costemment, à décompiler les dll pour savoir comme ça se fait que mon programme bug des qu'il entre dans une fonction de .net, et en asp.net encore plus.
Tu pourrais m'en dire plus ?
__________________
Développeur en devenir.

A la recherche de toute source approfondissant Merise, UML, Java, l'objet, les design patterns hors GOF et le développement en général.

Recherche également des informations sur les techniques de développement et les bonnes pratiques en terme de programmation en entreprise.

"On en apprends beaucoup plus par la confrontation que par la conciliation"
Jimalexp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2008, 16h33   #189
gouessej
Membre confirmé
 
Avatar de gouessej
 
Homme
Inscription : juin 2006
Messages : 257
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Seine Saint Denis (Île de France)

Informations forums :
Inscription : juin 2006
Messages : 257
Points : 253
Points : 253
D'après Richard Stallman :
Citation:
Mono is a free implementation of Microsoft's language C#. Microsoft has declared itself our enemy and we know that Microsoft is getting patents on some features of C#. So I think it's dangerous to use C#, and it may be dangerous to use Mono. There's nothing wrong with Mono. Mono is a free implementation of a language that users use. It's good to provide free implementations. We should have free implementations of every language. But, depending on it is dangerous, and we better not do that.
C# n'est pas vraiment portable, Microsoft ne propose pas d'environnement pour programmer en C# ailleurs que sous Windows à ma connaissance et utiliser Mono n'est pas sans risque légal. Au moins, avec Java, on a un JDK de Sun pour Linux, Solaris et Windows d'un côté et un JDK d'Apple pour Mac OS X de l'autre. On a aussi l'OpenJDK, je connais des gens qui arrivent à s'en servir sous OpenBSD donc on va encore plus loin en terme de portabilité.

Citation:
Envoyé par kuzco Voir le message
Java Quick Start apparu dans la version 1.6.0_u10 devrait améliorer ce point (je n'ai pas encore testé).
Le Java Kernel et Java Quick Start ne sont pas encore très au point, c'est pas assez stable selon moi mais ça devrait s'arranger. C'est quand même bien, seulement 3 Mo à télécharger la première fois, ça rapproche de Flash (2.2 Mo je crois).

J2EE vs c#.net

d'après le lien .NET en moyenne 2 à 3 fois plus rapide que J2EE !
C# plus performant que Java
le seul avantage de Java est la portabilité ?
c qoi ça ? si la comparaison est juste pourquoi on utilise Java donc ?
c'est périmé ?[/QUOTE]
Il y a une différence entre J2EE et J2SE et de toute façon, va jeter un oeil sur le blog de James Gosling, il y a un lien vers une étude de l'INRIA pour comparer Fortran et Java. De même, sur wikipedia, dans "java performance", on précise bien que Java fait parfois mieux parfois pire que C/C++ donc je pense que c'est vrai aussi pour C#. Je ne vois pas pourquoi C# serait plus rapide que Java.

J'aime bien ce benchmark :
http://bytonic.de/html/benchmarks.html
C# peut-il aller plus vite que C/C++ sur certaines machines?
gouessej est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2008, 18h40   #190
deadalnix
Membre Expert
 
Inscription : juillet 2006
Messages : 1 522
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 522
Points : 1 727
Points : 1 727
Les cas ou java/C# sont plus rapides que du langage natif sont quand même très marginaux. Et pour peu qu'on se fasse une gestion de la mémoire maison, cet avantage s'écroule

Cela dit, ces langages ont bien d'autres avantages : API bien fournie, code rapide a faire, plus simple a débugguer, etc . . .
deadalnix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2008, 20h40   #191
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 494
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 494
Points : 32 279
Points : 32 279
Envoyer un message via MSN à Médinoc
Citation:
Je ne vois pas pourquoi C# serait plus rapide que Java.
Déjà, quand le langage lui-même supporte des concepts permettant d'éviter une allocation mémoire dynamique à chaque manip, ça aide.
Voir les types valeur complexes (comme DateTime), et le passage par référence, qui permet à une fonction de retourner deux valeurs sans qu'une allocation dynamique soit nécessaire...

Tu auras beau améliorer les performances de ton allocateur, ça sera toujours plus lent que sans...
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2008, 21h20   #192
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 661
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Développeur Java/Web
Secteur : Transports

Informations forums :
Inscription : avril 2002
Messages : 12 661
Points : 22 460
Points : 22 460
Citation:
Envoyé par Médinoc Voir le message
Déjà, quand le langage lui-même supporte des concepts permettant d'éviter une allocation mémoire dynamique à chaque manip, ça aide.
Voir les types valeur complexes (comme DateTime), et le passage par référence, qui permet à une fonction de retourner deux valeurs sans qu'une allocation dynamique soit nécessaire...
En java on manipule des références : donc bien que tous les passages se fassent par copie cela revient au même ou presque (on copie une référence et non pas l'objet ).

[edit] Donc je ne comprend pas où tu vois les allocations "à chaque manip"...

Citation:
Envoyé par Médinoc Voir le message
Tu auras beau améliorer les performances de ton allocateur, ça sera toujours plus lent que sans...
En Java comme en C#, dans la majorité des cas, le coût de l'allocation est dérisoire en comparaison des autres langages. Tout cela pour une simple raison : il n'y a pas d'accès au système et donc aucune interruption...


a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java Présentation de Java SE 7 (commentaires)
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2008, 21h37   #193
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 978
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 978
Points : 18 177
Points : 18 177
Citation:
Envoyé par adiGuba Voir le message
En java on manipule des références : donc bien que tous les passages se fassent par copie cela revient au même ou presque (on copie une référence et non pas l'objet ).

[edit] Donc je ne comprend pas où tu vois les allocations "à chaque manip"...


En Java comme en C#, dans la majorité des cas, le coût de l'allocation est dérisoire en comparaison des autres langages. Tout cela pour une simple raison : il n'y a pas d'accès au système et donc aucune interruption...


on dirait surtout que tu n'as pas compris (voulu comprendre ?) les propos cités ci-dessus
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2008, 22h09   #194
adiGuba
Expert Confirmé Sénior
 
Avatar de adiGuba
 
Homme
Développeur Java/Web
Inscription : avril 2002
Messages : 12 661
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

Informations professionnelles :
Activité : Développeur Java/Web
Secteur : Transports

Informations forums :
Inscription : avril 2002
Messages : 12 661
Points : 22 460
Points : 22 460
Citation:
Envoyé par gorgonite Voir le message
on dirait surtout que tu n'as pas compris (voulu comprendre ?) les propos cités ci-dessus
Si je ne me trompe pas, les types valeurs correspondent à un type primitif dont les valeurs peuvent être limité, et auquel on peut associer des méthodes comme un vrai objet. J'en comprend très bien l'intérêt et les avantages que cela peut apporter... mais pas vraiment au niveau de l'optimisation de l'allocation mémoire

Mais je ne dis pas non à un exemple


Quand au passage par référence : s'il s'avère très utile en C++ où on manipule des objets, il l'est bien moins en Java où l'on manipule des références, et où le passage d'un objet à une méthode n'implique pas une recopie de l'objet...

a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java Présentation de Java SE 7 (commentaires)
adiGuba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2008, 11h20   #195
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 494
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 494
Points : 32 279
Points : 32 279
Envoyer un message via MSN à Médinoc
Types valeurs: Le plus simple, c'est de regarder le type DateTime de .Net, ou l'équivalent en java. Dans les deux cas, ces types sont immuables.
Imagine que je veuille une date deux heures, trois minutes et dix secondes après "maintenant".

En .Net: DateTime dt = DateTime.Now.AddHours(2).AddMinutes(3).AddSeconds(10).
Je ne connais pas la syntaxe java, mais je sais qu'elle est similaire. Maintenant, au niveau performance:
  • En .Net, DateTime est un type valeur qui correspond tout simplement à un long, donc aucune allocation dynamique n'a eu lieu. C'est comme si chaque fonction avait retourné un long.
  • En Java, à chaque opération on a fait un new Date, donc une allocation dynamique.


Pour le passage par référence, c'est encore plus simple: Écris-moi une fonction java qui retourne deux long. Puis essaie de la réécrire pour qu'elle retourne deux long sans qu'aucune allocation dynamique soit faite.
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2008, 12h48   #196
gouessej
Membre confirmé
 
Avatar de gouessej
 
Homme
Inscription : juin 2006
Messages : 257
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Seine Saint Denis (Île de France)

Informations forums :
Inscription : juin 2006
Messages : 257
Points : 253
Points : 253
Citation:
Envoyé par deadalnix Voir le message
Les cas ou java/C# sont plus rapides que du langage natif sont quand même très marginaux. Et pour peu qu'on se fasse une gestion de la mémoire maison, cet avantage s'écroule
Marginaux? Je ne crois pas, l'exemple que je viens de donner est un jeu vidéo en 3D certes aux graphismes "vieux" en comparaison des standards actuels mais s'inspirant du moteur d'un jeu commercial et l'INRIA a fait des tests poussés sur du calcul intensif (voir "Current State of Java for HPC").

Citation:
Envoyé par Médinoc Voir le message
[*]En Java, à chaque opération on a fait un new Date, donc une allocation dynamique.
Si tu veux bosser sur un long, tu fais getTime() sur une date que tu as déjà ou bien System.currentTimeInMillis() et tu as ce qu'il faut.

Sinon, tu peux faire :
Code :
1
2
3
4
Calendar c=Calendar.getInstance();
c.roll(Calendar.HOUR,2);
c.roll(Calendar.MINUTE,3);
c.roll(Calendar.SECOND,10);
et dans ce cas, tu as une seule allocation, pas une allocation par opération.
gouessej est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2008, 14h20   #197
Keihilin
Inscrit
 
Avatar de Keihilin
 
Inscription : février 2004
Messages : 861
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : février 2004
Messages : 861
Points : 1 029
Points : 1 029
Envoyer un message via MSN à Keihilin Envoyer un message via Skype™ à Keihilin
Désolé de couper dans les échanges sur les types valeur, mais j'aimerais quand même répondre à ça :

Citation:
Envoyé par gouessej Voir le message
C# n'est pas vraiment portable, Microsoft ne propose pas d'environnement pour programmer en C# ailleurs que sous Windows à ma connaissance et utiliser Mono n'est pas sans risque légal. Au moins, avec Java, on a un JDK de Sun pour Linux, Solaris et Windows d'un côté et un JDK d'Apple pour Mac OS X de l'autre.
Le risque légal me paraît quand même très très faible.
Le SDK .Net est gratuit depuis le début (seul Visual Studio hors versions express est payant), C# est standardisé, et les sources du framework ont été ouvertes...un retour en arrière me semble très peu probable.

Concernant le disponibilité multi-plateforme, Microsoft a fait un choix assez clair dès le début. .Net s'inscrit dans une stratégie globale d'unification et comme un "argument" de vente de solutions d'entreprise complètes. Ce n'est pas sur les ventes de licences Visual Studio que Microsoft fait son chiffre, donc .Net n'est pas un but en soit, c'est un moyen.

Partant de là, il est parfaitement logique (commercialement parlant) de ne pas gaspiller du temps et des ressources pour proposer du multi-plateforme.
Rappellons quand même que le but final, chez MS comme chez Sun, est de faire des bénéfices; les stratégies sont justes différentes.

Citation:
Envoyé par gouessej Voir le message
De même, sur wikipedia, dans "java performance", on précise bien que Java fait parfois mieux parfois pire que C/C++ donc je pense que c'est vrai aussi pour C#. Je ne vois pas pourquoi C# serait plus rapide que Java.
Parce que même si .Net et Java reposent sur le même principe, les implémentations diffèrent sur quelques points (boxing/unboxing, virtual, etc...), il est donc normal que l'on puisse observer des différences.

Par ailleurs, et je ne sais pas si l'argument a déjà surgit dans ce débat, je me demande si la fameuse portabilité de Java n'a justement pas un revers de médaille au niveau des perfs...

De manière intuitive je pense que plus on cherche la portabilité, plus les besoins d'abstraction sont grands, et un accroissement de l'abstraction est rarement synonyme de performances accrues...
Keihilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2008, 15h11   #198
bricecol
Membre expérimenté
 
Avatar de bricecol
 
Brice Colucci
Développeur informatique
Inscription : avril 2007
Messages : 363
Détails du profil
Informations personnelles :
Nom : Brice Colucci
Âge : 24

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : avril 2007
Messages : 363
Points : 571
Points : 571
Envoyer un message via MSN à bricecol Envoyer un message via Skype™ à bricecol
Je tiens à préciser quelques points essentiels concernant mon précédent message.

Premier point : Je n'ai jamais nié le fait que
je préfère JAVA aux langages .NET
et je
n'ai jamais prétendu être objectif
,
bien au contraire. Donc les remarques du genre
"mauvaise argumentation" ou alors "peu crédible"
non pas lieu d'êtres ici, je pense.

Deuxième point : Je fais tout à fait la différence entre un
environnement de développement et un langage de programmation
.
Mais il y a malheureusement des personnes prétentieuses
qui aiment jouer avec les mots, alors qu'elles ont tout à fait
compris ce que j'ai voulu dire et qui me font donc passer pour un idiot...

Dernier point : Je n'ai pas la prétention de me croire meilleurs que
les autres développeurs simplement parce que j'ai travaillé un peu
dans la recherche
et je n'apprécie pas qu'on le sous-entende.
J'ai spécifié ce détail dans le but d'exprimer le fait que j'ai déjà
utilisé les deux technologies.

Je terminerai sur le fait que je déteste les personnes qui cherchent
à tout pris à descendre les autres en jouant sur les mots, les faux sous-entendus ou insinuations blessantes ainsi que celles qui coupent
les cheveux en quatre. Je ne pense pas avoir blessé qui que ce soit,
ayez donc un minimum de respect envers cela.

Bonne journée.
bricecol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2008, 15h28   #199
gouessej
Membre confirmé
 
Avatar de gouessej
 
Homme
Inscription : juin 2006
Messages : 257
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Seine Saint Denis (Île de France)

Informations forums :
Inscription : juin 2006
Messages : 257
Points : 253
Points : 253
Citation:
Envoyé par Keihilin Voir le message
Le risque légal me paraît quand même très très faible.
Le SDK .Net est gratuit depuis le début (seul Visual Studio hors versions express est payant), C# est standardisé, et les sources du framework ont été ouvertes...un retour en arrière me semble très peu probable.
Là n'est pas le problème. A ma connaissance, 89% des postes client sont sous Windows, moi je ne parlais pas de ça, j'évoquais les risques autour de Mono pour développer en C# sur d'autres systèmes d'exploitation.

Citation:
Envoyé par Keihilin Voir le message
Parce que même si .Net et Java reposent sur le même principe, les implémentations diffèrent sur quelques points (boxing/unboxing, virtual, etc...), il est donc normal que l'on puisse observer des différences.

Par ailleurs, et je ne sais pas si l'argument a déjà surgit dans ce débat, je me demande si la fameuse portabilité de Java n'a justement pas un revers de médaille au niveau des perfs...

De manière intuitive je pense que plus on cherche la portabilité, plus les besoins d'abstraction sont grands, et un accroissement de l'abstraction est rarement synonyme de performances accrues...
C'est de l'intuition pour l'essentiel,
Citation:
l'intuition et le bon sens ne font pas la science
(je crois que c'est de Claude Allègre). J'ai montré un benchmark avec les limites que ça a. Si Java peut aller légèrement plus vite que des langages natifs sur des exemples non triviaux (un jeu vidéo en 3D), il est légitime que je pose la question concernant C#. imadin a cité un benchmark fait dans de mauvaises conditions avec une vieille machine virtuelle (1.4 c'est pas tout jeune), une méthode de mesure discutable (currentTimeMillis est peu précise sous Windows) et une option de compilation inutilisée depuis des lustres pour dire que Java est 2 à 3 fois plus lent que C#, voilà la question que je vous pose :
Comment Java pourrait être 2 à 3 fois plus lent que C# si Java peut aller légèrement plus vite que des langages natifs? Si c'est vrai, ça veut dire que C# est 2 à 3 fois plus rapides que des langages natifs, non? Ca ne paraît pas tiré par les cheveux?
gouessej est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2008, 15h32   #200
Keihilin
Inscrit
 
Avatar de Keihilin
 
Inscription : février 2004
Messages : 861
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : février 2004
Messages : 861
Points : 1 029
Points : 1 029
Envoyer un message via MSN à Keihilin Envoyer un message via Skype™ à Keihilin
Citation:
Envoyé par bricecol Voir le message
Premier point : Je n'ai jamais nié le fait que
je préfère JAVA aux langages .NET
et je
n'ai jamais prétendu être objectif
,
bien au contraire. Donc les remarques du genre
"mauvaise argumentation" ou alors "peu crédible"
non pas lieu d'êtres ici, je pense.
Ah ? Et tu ne penses pas qu'il y a un petit paradoxe entre avouer ne pas être du tout objectif et s'offusquer à propos des critiques sur l'argumentation ?


Citation:
Envoyé par bricecol Voir le message
Deuxième point : Je fais tout à fait la différence entre un
environnement de développement et un langage de programmation
.
Heureux de l'apprendre car cela n'était pas évident dans ton premier message.

A l'avenir, si tu ne veux pas donner de fausses impressions, je te suggère d'éviter de citer la coloration syntaxique de VS comme point technique "sympa" de .Net...

Citation:
Envoyé par bricecol Voir le message
Mais il y a malheureusement des personnes prétentieuses
qui aiment jouer avec les mots, alors qu'elles ont tout à fait
compris ce que j'ai voulu dire et qui me font donc passer pour un idiot...
On ne se permettrait pas, d'autant plus que tu y arrives très bien tout seul.

Citation:
Envoyé par bricecol Voir le message
Je ne pense pas avoir blessé qui que ce soit,
ayez donc un minimum de respect envers cela.
Le respect ça commence par ne pas débarquer dans un débat en ayant oublié son objectivité à la maison et en lançant des lieux communs erronés et des trolls à tout va, le tout ponctué de M$ dans chaque phrase.

Bonne journée à toi aussi.
Keihilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h35.


 
 
 
 
Partenaires

Hébergement Web