Votre entreprise envisage-t-elle de passer de Java à une autre technologie? [fermé]

9

Comme tous les développeurs Java le savent, Oracle a acheté Sun et l' avenir de Java ne semble pas très clair, d'autant plus qu'Oracle veut monétiser la JVM. Java en tant que langage est également devenu obsolète ces dernières années, la non-inclusion des fermetures en est un exemple (qui pourrait être inclus dans java 1.8). En même temps, certaines nouvelles technologies telles que Ruby, Scala et Groovy sont utilisées pour livrer des sites complexes.

Je me demande s'il y a des entreprises ou des organisations qui parlent, font des pointes ou commencent à utiliser une technologie différente, avec l'idée d'arrêter d'utiliser java pour des projets de terrain, de la même manière qu'il y a 15 ans, les entreprises ont migré du C ++, perl et d'autres technologies à Java. Je suis également intéressé de savoir quelles sont les impressions de ce qui se passe, par exemple: planifier de migrer vers une technologie différente dans 2 ans.

Pour être clair, je ne demande pas quelle technologie est la meilleure. Je demande si votre organisation envisage de quitter Java pour une autre technologie.

Augusto
la source
1
Groovy et Scala ne dépendent-ils pas de la JVM? Dans l'affirmative, ils sont également préoccupés par le fait qu'Oracle souhaite monétiser la JVM.
POSIX_ME_HARDER
Tu as raison. Cela aura un impact sur l'adoption de Scala, Groovy ou JRUby dans les entreprises qui souhaitent le jvm commercial au lieu du jvm ouvert. Je laisserai la question originale intacte car je pense que certaines entreprises pourraient être ravies de payer pour la JVM commerciale afin d'utiliser une langue différente
Augusto
En tant que développeur Java, je conteste votre déclaration "comme tout développeur Java le sait". Je pense que l'avenir de Java est à la fois a) clair et b) brillant. Je suis sûr que certaines personnes voudront peut-être payer un supplément pour le package de support "premium" d'Oracles, mais pour ceux d'entre nous qui prévoient de s'en tenir à la version gratuite et open-source de Java (qui ne disparaîtra pas!), Alors c'est quelque peu hors de propos.
mikera
Mikera, vous mentionnez l'open source, mais certains des développeurs Java influents qui dirigeaient des projets open source dirigent désormais des projets dans d'autres langues, de sorte que leur "énergie" est détournée de Java. Vérifiez tous les cadres incroyables qui existent pour Scala, Groovy ou Ruby. Je n'ai pas de chiffres pour appuyer cela, mais il pourrait être intéressant de vérifier combien de "lignes de code" ont été engagées pour les référentiels open source dans les différents langages courants et les tendances.
Augusto

Réponses:

9

Pas du tout - en fait, j'investis massivement dans Java en tant que plate-forme dans mon entreprise (une startup développant des applications SaaS et des outils pour l'exploration de données).

Voici les raisons:

  • Choisir Java comme plate - forme ne signifie pas que vous devez utiliser Java comme langage. Nous utilisons Clojure comme langage de développement d'applications principal, passant parfois en Java si nécessaire. Mais d'autres langages JVM comme Scala et Groovy sont également très bien.

  • Personnellement, je ne m'inquiète pas pour Oracle . La principale implémentation de Java continuera presque certainement d'être open source ( OpenJDK ) et disponible gratuitement. Si Oracle a fait quelque chose de stupide, alors d'autres grandes entreprises (je pense qu'IBM et Google en particulier) ont trop investi dans Java pour s'en sortir, et elles pourraient facilement continuer à développer Java sans l'aide d'Oracle.

  • La JVM est un excellent environnement d'exécution . Multiplateforme, très hautes performances, très bonne technologie d'optimisation JIT. Il est suffisamment proche de la vitesse native pour que je ne me soucie pas de la quantité fractionnaire qui est plus lente que C / C ++, et cette surcharge est plus que compensée par une récupération de place appropriée et un environnement d'exécution de bytecode géré, etc.

  • Java possède un grand écosystème de bibliothèques open source . En fait, je dirais que c'est le meilleur écosystème de toutes les langues. Cela signifie que la plupart des "travaux lourds" en termes d'infrastructures ont déjà été effectués, avec une qualité extrêmement élevée. Et le fait que la plupart des choses dont vous avez besoin soient open source signifie que vous n'avez pas le coût (en termes d'argent et de temps de gestion) pour obtenir des licences.

  • Eclipse est un excellent IDE et fournit une fantastique chaîne d' outils pour le développement d'applications d'entreprise robustes. Nous utilisons l'intégration Maven, JUnit, Git / SVN et une foule d'autres outils disponibles en tant que plugins Eclipse. Tout cela "fonctionne tout simplement".

Enfin, quelles sont les autres options?

  • .NET est la seule plate-forme avec des capacités comparables et j'aime personnellement C #, mais il vous enferme dans les technologies Microsoft (pire qu'Oracle / IBM IMHO) et n'a pas la même étendue d'écosystème open-source. Très bien pour les boutiques Microsoft, mais pas si vous voulez contrôler votre propre destin technologique. Et oui, Mono est mignon, mais je ne peux pas me permettre de parier mon entreprise sur une plate-forme qui peut ou non être en mesure de maintenir un niveau de compatibilité de travail avec le courant principal .NET.

  • Ensuite, il y a tous les autres grands langages qui sont très bons dans ce qu'ils font (par exemple Ruby, Python, PHP, Javascript) mais n'offrent pas un équivalent convaincant et complet de la plate-forme Java. Le risque est que vous deviez commencer à coller beaucoup de choses ensemble dans une architecture un peu moins belle. Pas un problème pour créer des sites Web, des applications rapides et sales, mais moins attrayants pour le développement de produits à long terme.

  • C / C ++ est idéal pour la programmation de systèmes et les jeux, mais tout simplement trop complexe / coûteux / rigide pour le développement d'applications Web modernes.

  • Et puis il y a les belles langues que j'aime comme Haskell, qui sont fantastiques d'un point de vue académique mais qui n'ont tout simplement pas l'adoption / l'écosystème industriel nécessaire pour en faire un choix de plateforme crédible. Je peux également obtenir la plupart des avantages de la programmation fonctionnelle moderne en exécutant Clojure sur la JVM .....

Alors oui, c'est une décision complexe. Mais j'ai pris la décision Java avant toutes les autres options après beaucoup de recherches et de réflexions considérables. Je prendrais toujours la même décision aujourd'hui.

MISE À JOUR

Quelques mots sur le choix de Clojure sur la JVM comme choix de langue. Les principales motivations pour cela étaient:

  • Concurrence - Clojure a une histoire de concurrence unique, alors regardez cette vidéo qui décrit certains des concepts de base. Il peut évoluer de manière fiable vers des architectures massivement multicœurs en utilisant la mémoire transactionnelle logicielle . Et il parvient à le faire sans trop de frais généraux (sans verrou!), Ce qui est un exploit d'ingénierie tout à fait remarquable.
  • Programmation fonctionnelle - Clojure est un langage fonctionnel qui met l'accent sur l'immuabilité et les fonctions d'ordre supérieur. Ce n'est pas aussi purement fonctionnel que Haskell, mais c'est avant tout un langage FP. Certaines personnes disent que cela vous aide à écrire de meilleurs programmes.
  • Productivité du programmeur - Clojure obtient tous les avantages de productivité de la philosophie Lisp code-is-data. En pratique, cela signifie des capacités macro incroyablement puissantes et une syntaxe simple mais extrêmement flexible que vous pouvez utiliser pour définir vos propres DSL pour tout problème que vous rencontrez.
  • Besoin d'un langage dynamique adapté au développement et aux scripts rapides - Clojure peut être utilisé dans un cycle de construction-test-déploiement standard, mais il est en fait plus naturel d'utiliser un REPL pour développer de manière interactive, en modifiant l'environnement de code en cours d'exécution au fur et à mesure. Par exemple, j'utilise Incanter pour pouvoir tracer des graphiques et visualiser des données à la volée au fur et à mesure que je développe pour voir les résultats des analyses par lots.
  • Interopérabilité Java - L'interopérabilité Java de Clojure est très efficace. Les objets Clojure sont des objets Java et vice versa, il est donc trivial d'appeler des API et des bibliothèques Java chaque fois que vous en avez besoin. Cela vous donne tous les avantages de l'ensemble de l'écosystème Java des bibliothèques et des outils.
  • Bonne communauté - La communauté de Clojure est petite mais dynamique, amicale et en croissance rapide. Beaucoup de grands projets open source déjà, tels que Incanter (calcul statistique) ou Ring / Compojure (framework de serveur Web) ou Counterclockwise (plugin Eclipse IDE)
mikera
la source
Mikera, c'est exactement ce que je demandais. Votre entreprise quitte Java comme langue principale pour le développement d'applications et utilise Clojure à la place. Je suis d'accord avec vous, que la JVM ne disparaîtra pas , en particulier avec certaines entreprises investissant dans d'autres langues qui s'exécutent sur la JVM. Pourriez-vous nous en dire un peu plus sur ce qui a motivé la décision d'utiliser clojure comme langage de développement principal?
Augusto
Bien sûr, j'ai ajouté quelques commentaires sur les raisons pour lesquelles Clojure en particulier (j'ai également considéré Scala qui était également très prometteur, mais Clojure a gagné par une marge étroite en raison de sa
lisp
Merci d'avoir expliqué pourquoi votre entreprise a décidé d'utiliser le clojure!
Augusto
7

Tout dépend du client.

Java aura toujours sa propre petite niche où les gens vont y graviter pour une raison ou une autre, pour les mêmes raisons que les gens gravitent vers .php ou .net, mais en fin de compte cela dépend des exigences et des préférences du client.

Si un client dit ... je veux que cette application soit en java ... allons-nous dire non? probablement pas ... s'ils disent que nous ne nous soucions pas vraiment ... allons-nous l'écrire en java? probablement pas, mais c'est juste de la spéculation.

Nous avons des applications écrites en java qui ont une longue histoire, mais il semble que le client remplace méticuleusement TOUT par la marque windows .... oracle to sql server ... unix / linux avec server 2008 ... et php et java avec .net.

Si cela se produit, alors oui ... sauf si un nouveau client arrive et dit bon ... nous voulons que cela soit écrit en java ... nous utiliserons .net.


la source
Un grand détaillant automobile américain fait quelque chose de similaire, il commence à construire la plupart des projets greenfield en rubis plutôt qu'en Java.
Augusto
1

Tout d'abord, je ne travaille pas dans une société de logiciels.

Ok, nous utilisons Oracle comme base de données principale avec toutes nos informations importantes stockées dessus. Pour cette raison, nous prévoyons de continuer à utiliser Java pour tout ce qui concerne Oracle. L'acquisition de Sun par Oracle est un coup de pouce pour nous de continuer à utiliser Java pour tout ce qui concerne Oracle.

Mais, toutes les applications de bureau sont écrites en C # car tout est basé sur Windows.

sange
la source
0

Votre entreprise envisage-t-elle de passer de Java à une autre technologie?

Pour répondre à votre question. Non.

Comme tout développeur Java le sait ...

Dans les entreprises de toute taille significative, ce ne sont généralement pas les développeurs qui décident de questions telles que l'opportunité pour l'entreprise de s'éloigner de Java et d'aller vers autre chose. Et pour les types qui prennent ces décisions, d'autres facteurs que ceux que vous avez énumérés sont importants.

... l'avenir de java semble assez flou, d'autant plus qu'Oracle veut monétiser la JVM.

Au contraire, je pense que l'avenir est clair. L'évolution de Java se poursuivra à un rythme lent mais régulier, et les principales technologies SE et EE continueront d'être gratuites. Pour moi, le seul véritable domaine d'incertitude est ce qui se passera avec le bunfight Oracle vs Google. Mais d'une manière ou d'une autre, je m'attends à ce qu'Android / Davlik prospère comme alternative à Java ME ... mais uniquement pour les plateformes mobiles.

Java en tant que langage a également été périmé ces dernières années, la non-inclusion des fermetures en est un exemple (qui pourrait être incluse dans java 1.8).

Cela peut contrarier les développeurs, mais la «caducité» est en fait une conséquence du fait que Sun / Oracle prête attention à ce que les entreprises veulent ... un langage / une plate-forme avec une stabilité à long terme.

Parallèlement, certaines nouvelles technologies telles que Ruby, Scala et Groovy sont utilisées pour fournir des sites complexes.

Encore une fois, du point de vue de la gestion, le jury ne sait pas si ces technologies sont meilleures à tous les niveaux.

  • Les augmentations de productivité revendiquées sont-elles vraiment démontrables à long terme?
  • La performance est-elle encore là? Évolutivité? Outils et bibliothèques tiers?
  • Peuvent-ils recruter du personnel expérimenté?

Une décision au niveau de l'entreprise de passer à une nouvelle langue a des coûts et des risques importants, surtout s'il existe une quantité importante de code existant dans la langue «héritée».

Stephen C
la source
@Augusto - J'ai répondu à votre question; voir première phrase. Es-tu content maintenant?
Stephen C