
Mais alors qu'est-ce que c'est Java 2 ?
nitro :
En terme de langage, Java 5 réduit nettement l'écart avec C#, et c'est plutôt bien.
Quesoft
:Kevin Kofler :
D'ailleurs, c'est affreux, l'API du Java. Pas mal de trucs qui se font en un appel de fonction en C se font en 3 créations d'objets et une dizaine d'appels de méthodes en Java. Travailler avec les dates par exemple. C'est immonde. Et en plus, là où il y avait des interfaces simples, elles ont été deprecated en faveur d'interfaces immondes (par exemple, on est maintenant obligé de passer par un objet GregorianCalendar pour convertir des dates en chaînes de caractères et vice-versa- je comprends qu'ils veuillent gérer d'autres types de calendriers, mais à ce moment-là, il faut prévoir un calendrier par défaut, parce que voir tous les programmes charger des objets GregorianCalendar, c'est débile, d'autant plus que les programmes ont tous GregorianCalendar codé en dur, alors c'est moins adaptable à d'autres calendriers, pas plus...).
Je pense que sur un PC moderne, même sur un P133, ont peut se permettre le tradeoff (facilité d'entretien et de modification VS rapidité d'exécution et taille), du moins pour un langage compilé. Sur TI68K, je t'accorde qu'un API comme celui du JDK est mal adapté. Avec celui du Moka, j’ai tenté de faire un compromis entre rapidité d’exécution, taille et similitude avec l’API de Java. Je crois avoir réussi pour la rapidité, qui est acceptable, mais il y a encore place à l’amélioration pour la taille …
Tout ça pour dire qu’effectivement, sur plate-forme TI on a pas les mêmes considérations que sur PC.
squalyl^2 :
char buffer[80]; scanf ("%s", buffer);
squalyl^2 :
pardon j'ai oublié le null
nitro :
Le C# est un standard ECMA et ISO, dont il existe plusieurs compilateurs autres que ceux de Microsoft. Il existe notamment deux implémentations libres : Mono et DotGNU.
nitro :
Des machines virtuelles .NET il y en a plusieurs, pour différentes plateformes. X86, PowerPC, S390 et SPARC sont supportés en JIT, et on peut ajouter HPPA, StrongARM, IA-64, Alpha et Mips en interpréteur.
nitro :
T'as pas l'air de t'être renseigné suffisamment toi...
Pollux
:Quesoft :
Vrai. En fait, faille de sécurité, j'irais pas jusque là ... D'un autre côté, le prog C peut planter si on écrit après le buffer - et à la limite on pourrait exploiter cette faille pour exécuter du code, c’est vrai.
Ou comment se contredire en deux phrases...
Pollux
:Il est plus proche du Java que du C++ dans son implantation du paradigme, même si il est beaucoup plus similaire au C++ que le Java.
Ou comment se contredire en une phrase(bon, je veux bien que pour celle-ci tu aies mal choisi tes mots)
Kevin Kofler :
Sauf que ta reponse est totalement à côté de la plaque (en plus du fait que je ne suis pas d'accord, mais c'est une autre histoire...): là, ce n'étaient pas du tout des considérations d'efficacité, mais justement d'utilisabilité du point de vue du programmeur! Tu trouves plus simple de construire 3 objets et d'appeler plusieurs méthodes sur chacun que d'appeler une fonction, toi?
Kevin Kofler :
Comme quoi on n'a pas besoin de programmation orientée objet pour éviter les buffers de taille fixe, on peut très bien s'en sortir en C. C'est juste la librairie standard C qui est très vieille par endroits.
alexis :
Moi tout ce que je vois dans les réponses postées dans ce topic, c'est que beaucoup de personnes parlent de java(et accessoirement .net) sans vraiment connaître de quoi il s parlent, ils le connaissent vaguement.
Les gens savent vaguement ce que Java propose, ce qu'est J2EE. Des personnes parlent sans savoir ce qu'est java 2 ou java 5, bref ca ne m'étonne pas d'entendre ici des absurditées! Au final il y a beaucoup de parlotes de la part de personnes qui connaissent mal le sujet et du coup peu de remarques pertinantes (à part Nitro )
alexis :
Au fait dans Java il n'y a pas de générique, d'autoboxing, de redéfinition d'opérateurs et tout le tra lala avant la version 1.5, car ca favorise les erreurs et malentendus sur la signifaction du code. Ce n'est que mon point de vue. Même si je trouve que ces améliorations sont les bienvenues![]()
alexis :
Au fait dans Java il n'y a pas de générique, d'autoboxing, de redéfinition d'opérateurs et tout le tra lala avant la version 1.5, car ca favorise les erreurs et malentendus sur la signifaction du code. Ce n'est que mon point de vue. Même si je trouve que ces améliorations sont les bienvenues![]()
Quesoft
:Pollux
:Il est plus proche du Java que du C++ dans son implantation du paradigme, même si il est beaucoup plus similaire au C++ que le Java.
Ou comment se contredire en une phrase(bon, je veux bien que pour celle-ci tu aies mal choisi tes mots)
Cette fois, je m’exprime mal, mais je ne me contredis pas. <snip>
Sasume
:Pollux :Tu parles du langage ou de l'API ?
Moi tout ce que je dis c'est que Java est mal foutu, ce qui n'est pas nouveau
Perso, le langage je le trouve plutôt bien comparé au C++.
Sasume
: Je n'ai pas énormément d'expérience pour juger, mais en tout cas, moi je trouve que le langage java est vraiment mieux foutu que le C++. Le truc vraiment bien par rapport au C++, c'est qu'on ne passe pas son temps à jongler entre références et pointeurs. Et puis le GC aussi, c'est vraiment bien pratique.
Sinon, c'est quoi les propriétés par rapport à un attribut classique ?
Pollux :
Ben faudrait savoir : y a 5 ans les programmeurs étaient trop cons pour comprendre du code avec des génériques, et depuis ils sont devenus intelligents ? [...]
Pollux
:Sinon, c'est quoi les propriétés par rapport à un attribut classique ?
Je ne sais pas ce que tu entends par attribut, mais par propriété j'entends simplement du sucre syntaxique pour transformer "bla.y = bla.x.length" en "bla.setY(bla.getX().getLength())"
Kevin Kofler :
C'est d'ailleurs la même chose en C++. La "solution" est que toutes les conventions de programmation C++ et Java disent de ne jamais mettre une variable en public, mais de toujours utiliser des accesseurs (getter, setter), même s'ils sont triviaux (return var; ou this->var=var;), afin de permettre de mettre des accesseurs plus complexes plus tard.