Question

Je suis un programmeur Java expérimenté qui, au cours des deux dernières années, a programmé pour la nécessité en C # et Javascript. Maintenant avec ces deux langues J'ai utilisé des fonctionnalités intéressantes comme les fermetures et la fonction anonyme (en effet avec le c / c ++, j'avais déjà utilisé des fonctions de pointeur) et j'ai beaucoup apprécié la façon dont le code est devenu plus clair et mon style plus productif. En réalité, la gestion des événements (modèle de délégation d’événements) est plus claire que celle utilisée par Java.

À mon avis, il semble que Java ne soit pas aussi innovant que par le passé ... mais pourquoi ???

C # évolue (avec beaucoup de nouvelles fonctionnalités), C ++ 0x évolue (il supportera l'expression lambda, les fermetures et beaucoup de nouvelles fonctionnalités) et Je suis frustré qu'après avoir passé beaucoup de temps avec la programmation Java, celle-ci se décompose sans aucune explication et le JDK 7 n'aura rien d'innovant dans les fonctionnalités du langage (oui, il optimisera le GC, le compilateur, etc.), mais le langage lui-même. aura peu de changement évolutionnaire important.

Alors, comment sera l'avenir? Comment pouvons-nous encore croire en Java? Gosling, où es-tu ???

Était-ce utile?

La solution

Je ne suis probablement pas aussi bon que certains programmeurs qui ont laissé leurs commentaires, mais avec mon niveau d'intelligence actuel, voici ce que je pense -

Si un langage rend la programmation plus facile / plus expressive / plus concise, n’est-ce pas une bonne chose? L’évolution des langues n’est-elle pas une bonne chose?

Si C, C ++ sont d’excellents langages parce qu’ils sont utilisés depuis des décennies, pourquoi Java est-il devenu si populaire? J'imagine que c'est parce que Java a aidé à résoudre certains problèmes gênants et à réduire les coûts de maintenance. Combien d'applications à grande échelle sont maintenant écrites en C ++ et combien en Java?

Je doute que l'argument de ne pas changer quelque chose soit mieux que de changer quelque chose pour une bonne raison.

Autres conseils

C n’a pas beaucoup changé depuis des années, mais il reste l’un des langages les plus populaires. Je ne crois pas que Java doive ajouter du sucre syntatique pour rester pertinent. Croyez-moi, Java est là depuis longtemps. Bien mieux pour Java serait les génériques réifiés.

Vous n’avez pas à croire en Java, si vous n’aimez pas ça, choisissez un autre langage, il y en a beaucoup. La survie de Java dépend de l'intérêt commercial et de la possibilité d'atteindre ses objectifs. Pas si c'est cool ou pas.

Je pense que vous passez à la phase classique de désillusion que la plupart des programmeurs Java partent en voyage dans l’expérience C #. J'ai repris confiance en java, tout simplement parce que même si la langue ne change pas beaucoup, il y a donc beaucoup de choses à faire pour que Java soit un écosystème. J'aimerais aimer avoir des méthodes de fermeture et des méthodes appropriées, mais à la fin de la journée, je me débrouille quand même. Le dynamisme pur de Java dépasse encore celui de C #, même si peu de choses se passent au niveau de la langue.

Si vous souhaitez utiliser la plate-forme Java , sans les limitations de le langage Java , vous devriez certainement jeter un coup d'œil à certains langages JVM de nouvelle génération. . Groovy, Scala et Clojure gagnent du terrain dans de nombreux secteurs (par exemple, Twitter est écrit en scala).

Vous pouvez jeter un oeil à ceci:

Sun fera-t-il jamais le pas à "Java 3"? [fermé]

Je pense qu’au moins une partie de l’innovation s’applique à d’autres langages ressemblant à des scripts qui fonctionnent également sur la même machine virtuelle, puis à Java, à l’arrière-plan, et à d’autres nouvelles fonctionnalités intéressantes dans différents langages pour créer toutes les options possibles. sifflets.

De plus, un langage ne peut pas vraiment laisser sa marque s'il change constamment: combien de changements radicaux et combien de fois ont été apportés en C et C ++?

Un langage mature est également stable.

Consultez les propositions Java 7 , et en particulier les < a href = "http://blogs.oracle.com/darcy/entry/project_coin_call_for_proposals" rel = "nofollow noreferrer"> Pièce du projet travail (la langue change). Ce dernier intègre des éléments tels qu'une meilleure initialisation de la collection, une inférence de type pour les génériques, etc.

Bien sûr, il est important de prendre en compte la plate-forme Java ainsi que le langage Java. Des langages tels que Scala / Groovy / Clojure sont en progrès et (bien sûr), ils peuvent exploiter les bibliothèques Java disponibles.

J'ai entendu Gosling parler de cette question et (j'espère ne pas trop modifier son message), il a dit quelque chose comme: il y a une limite à ce que vous pouvez et devriez mettre dans la langue, L'avenir de la programmation réside dans les outils que nous allons utiliser.

J'ai tendance à être d'accord avec lui, beaucoup des fonctionnalités demandées pour Java enlèvent tout son sens au principe de la programmation orientée objet, mais si vous constatez qu'elles fonctionnent pour vous, d'autres langues peuvent également être déployées sur la plate-forme java. , votre langue devrait donc pouvoir coexister avec votre connaissance de la pile Java.

Java semble être resté immobile pendant un certain temps, mais il y a eu beaucoup d’innovations dans d’autres langages fonctionnant sur la machine virtuelle, tels que Scala et Clojure, et je soupçonne qu’ils se trouvent là où se trouve l’avenir. Ce n’est pas le langage Java qui compte, c’est la machine virtuelle ...

Cela dit, il y a beaucoup à dire pour une langue qui ne soit pas une cible en mouvement. Même si j'aime C #, il semble qu'il y ait une nouvelle version chaque année. Bien que Java ait ajouté certaines fonctionnalités de C # (telles que des annotations), il est bon de ne pas entrer dans un langage "course aux armements". avec C #

Le langage actuel doit être presque gelé, car cela permet également aux versions antérieures de Java de progresser. Nous avons des clients qui utilisent Java 1.4 (qui est pris en charge par le fournisseur). En mettant les progrès et le développement dans les bibliothèques, ils sont également disponibles pour ces scénarios.

Pensez Cobol!

Java n’a jamais été "innovant". Cela a commencé comme un paralysé, "convivial pour les programmeurs". C ++, puis a commencé à réintroduire lentement les fonctionnalités manquantes qui existaient depuis très longtemps dans d’autres langages de programmation. Seulement que ces "nouveautés" vieilles de plusieurs décennies ont été mutilés afin de les adapter aux limitations de la machine virtuelle.

Mais je ne comprends peut-être pas votre notion d '"innovante".

Java est toujours le langage n ° 1 pour le moment: -)

http://www.tiobe.com/index .php / content / paperinfo / tpci / index.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top