8
votes

vaut la peine d'apprendre Groovy?

La question que je demande, vaut-t-elle d'apprendre une nouvelle langue comme Groovy? Parce que si j'apprends Groovy, on ressent que je code dans Groovy et pas Java. Et comment Smart est que lorsque je dois être bon en Java pour coder les applications de bureau à l'avenir. Donc, si j'utilise beaucoup de Groovy pour des applications Web, je vais simplement être pire et devra recommencer à être bon en Java lorsque je code les applications de bureau droit?

Alors, pourquoi ne pas rester juste avec Java et être bon à une seule langue au lieu d'avoir à basculer entre 2 langues et leur syntaxe. Parce que ce serait tellement déroutant ...


5 commentaires

Les personnes couramment couramment couramment cinq ou six langues et aucune preuve que l'apprentissage d'un de plus est préjudiciable aux autres. Une autre hypothèse de votre question est que vous «devrez-vous être bonne dans Java pour coder les applications de bureau». Si c'est dans quelques années de plus, la prochaine application que vous ne sera même pas à Java!


Supposons que vous ne connaissiez que Cobol, et le choix était d'apprendre Java. Auriez-vous toujours préféré ne pas apprendre une nouvelle langue? Si vous auriez appris une nouvelle langue dans l'affaire Cobol, ce qui est différent de cette situation pour vous faire éviter?


Retardant comme langue-agnostique, car cela n'a rien à voir avec Java ou Groovy


Cela doit sûrement être un double de l'idée "Quels sont les avantages de connaître un portefeuille de langues"?


@Pascal Cuoq: Vous devez connaître différentes personnes de celles que je connais! Au travail, je suis entouré de gens qui connaissent à peine une langue ! C'est un grand environnement d'entreprise, je dois admettre, avec une sécurité d'emploi presque tenue - de sorte que les gens ne se dérangent pas beaucoup de compétences.


12 Réponses :


3
votes

La plate-forme Java commence lentement à changer de direction sur l'une où la JVM est ciblée par plusieurs langages sources (une astuce .Net se distingue depuis le jour 1, mais il prend Java un pendant le rattrapage). Le format Java7 Classfile ajoute même une nouvelle instruction pour rendre ces langues dynamiques fonctionner plus rapidement.

Si vous voulez vous garder à jour, apprendre Groovy est un bon moyen de le faire, sans abandonner tous vos investissements dans la plate-forme Java.

En outre, Groovy (et Grails) est maintenant maintenu par Springsource, sa popularité ne sera donc qu'augmenter.


3 commentaires

Le JVM a soutenu plusieurs langues depuis sa création et il y a eu des langues alternatives JVM depuis longtemps, par ex. Jruby existe depuis 2001 et Jython depuis 1997


Je n'ai pas prétendu le contraire. Mais ils n'ont eu aucun soutien explicite de la JVM jusqu'à présent. Java7 ajoute un Invokespecial INSTRUCTION BYTECODE permettant aux langues dynamiques d'être mieux optimisées.


Je pense que Devs a pu créer une nouvelle langue sur JVM depuis son deuxième jour. De plus, le cadre de printemps peut également être utilisé sur plusieurs langues, pour des exemples, Java et Groovy



7
votes

Pourquoi ne codez-vous pas aussi vos applications de bureau à Groovy? Juste parce que Groovy est le choix d'un cadre Web (Grails) ne signifie pas que vous ne pouvez pas l'utiliser pour les applications de bureau.

En effet, c'est génial pour les applications de bureau aussi. C'est plus une question de langues dynamiques ou statiques ...

À mon avis, il est assez bon d'avoir pour chaque tâche la bonne langue à portée de main. Alors allez-y et apprenez Groovy - le résultat sera que vous manquerez Groovy Caractéristiques lorsque vous essayez d'utiliser Java à nouveau; -)


5 commentaires

Ok je ne savais pas ça. Avec une langue statique, on signifie que vous devez définir les types de données des variables? Et avec une langue dynamique que vous n'êtes pas obligée?


Correct. En fait, les termes formels sont "statiquement typés" et "dynamiquement dactylographiés".


@Carl: Si vous voulez être pédant, "dactylographie typing" est une contradiction.


Je ne le pense pas. Type dynamique IIRC signifie que le compilateur déduit son type pendant l'exécution. Donc, ils sont typés de manière dynamique.


@skaffman: Je ne cire que pédantique seulement quand cela m'aide à faire ressembler quelqu'un d'autre. Donc, dans ce cas, je passerai volontiers;)



13
votes

Quote:

Alors pourquoi je ne sois pas juste avec Java et être bon à une langue au lieu de avoir à basculer entre 2 langues et leur syntaxe.

Cela ressemble à une question plus générale sur l'apprentissage de langages de programmation que d'apprendre une nouvelle langue (Groovy) qui fonctionne sur la machine viruelle Java.

Voici une question:

Supposons que vous appreniez une langue étrangère parce que vous souhaitez parler de plusieurs langues afin que vous puissiez converser avec beaucoup de gens. Vous apprenez l'allemand en ce moment, mais vous vous en tirez bien, mais vous voulez aussi apprendre l'espagnol. Seriez-vous juste soudainement oublier l'allemand si vous commencez à apprendre l'espagnol? Si vous êtes vraiment inquiet de ce que vous feriez, que feriez-vous?

Si vous alliez apprendre Groovy, mais que vous ne voulez pas oublier comment écrire Java, alors pourquoi ne pas continuer à utiliser les deux langues en même temps?

Une des choses à propos d'être un programmeur va apprendre à s'adapter aux nouvelles technologies au fur et à mesure de leur arrivée. C'est une bonne chose de pouvoir apprendre de nouvelles langues, car il s'agira d'une compétence qui va être très utile dans un champ qui change constamment.


0 commentaires

4
votes

Je dirais en général dans ce domaine, il est toujours bon d'apprendre. J'essaie constamment d'apprendre de nouveaux concepts à ajouter à ma boîte à outils, tout en améliorant les éléments essentiels que je m'intéresse comme Java. J'ai récemment acheté un livre sur l'apprentissage Clojure - une autre langue fonctionnelle pour la JVM.

L'inconvénient pour apprendre quelque chose sans l'utiliser tous les jours est que certains détails ne colle pas dans votre tête. Cela dit, je suis content d'avoir passé du temps avec le clojure; Les choses importantes coincées et je sais que je peux rapidement rechercher les détails si et quand je dois. Vous voudrez peut-être adopter une approche similaire à Groovy.


0 commentaires

2
votes

Tout d'abord, je suis une question très subjective.

À mon humble avis, il convient de l'apprendre une nouvelle langue surtout s'il varie en paradigmes (comme c'est le cas avec Groovy). Je suis assez jeune moi-même, alors pour moi apprendre une nouvelle langue n'est pas un problème, mais la façon dont je le vois si vous aimez la langue, vous estimez que le codage dans la langue x sera rentable que vous devriez l'apprendre.

Cela ne fera pas de mal à votre CV. Cela ne fera pas de mal à votre tête (beaucoup). Le seul problème est que vous l'utiliserez-vous. Vous devez utiliser une langue pour y devenir bien. Si vous allez l'apprendre maintenant et que jamais l'utiliser demain, il ne vaut probablement probablement pas la peine d'apprendre.


0 commentaires

0
votes

Il est toujours bon d'apprendre une nouvelle langue pour être un meilleur programmeur. Groovy est un choix naturel pour Java Programmer - facile à apprendre et vous pouvez toujours utiliser votre liste de connaissances Java.

Groovy est une langue dynamique, après avoir essayé d'apprendre tout langage fonctionnel (comme Scala). Avec cette expérience, vous verrez Java de différentes perspecitve. Une certaine tâche douloureuse en Java sera triviale à Groovy / Scala.


3 commentaires

Vous pouvez les mélanger dans votre code comme JavaScript et JQuery?


Oui, c'est le pouvoir. Vous pouvez appeler Groovy formulaire Java et Java de Groovy. Avoir plus de «outils» vous donne un choix de choisir un outil de bon outil pour un emploi.


@noname: JQuery n'est pas un langage de programmation, c'est une "classe" écrite en JavaScript. Vous ne mélangez rien quand vous utilisez jQuery en JavaScript.



1
votes

Apprendre quelque chose de nouveau ne prend pas quelque chose que vous savez déjà. Vous êtes peut-être un peu rouillé lorsque vous revenez à Java, mais cela reviendra de très vite.

aussi -

Je ne suis pas un gars Java, mais je crois que Groovy cible la JVM. Si tel est le cas, la programmation à Groovy vous fera un meilleur programmeur Java, car vous ciblerez toujours le même cadre que Java (la langue), vous continuerez donc de continuer à acquérir de l'expérience avec les bibliothèques Java. Connaître les bibliothèques disponibles est ce qui compte vraiment, pas à quel point vous connaissez bien les détails de chaque minute d'une langue particulière.


0 commentaires

47
votes

Groovy est un joli scriptable et plus facile à utiliser Java « knockoff » - et je ne veux pas dire que péjorativement. tandis que Java est un langage à compiler, déployés et exécutés (souvent) sur les serveurs d'entreprise où les questions de performance, Groovy est un langage où vous pouvez créer rapidement un programme pour faire quelque chose. Souvent, que quelque chose est assez simple, il est donc une heure ou de l'effort de codage d'un jour. Souvent, le code est exécuté une fois seulement, puis jeté. Parce que Java a plus boilerplate et formalisme, vous pouvez faire ce genre de programme plus rapidement et donc plus efficacement dans Groovy.

Cependant, juste pour vous donner une idée, Groovy est un piétinant de nouveau venu sur le gazon de divers autres, mieux établies les langages de script:

  • Perl est l'un des grands-pères des langages de script; Il est rare qu'un serveur Unix s'installé sans Perl, et les scripts Perl sont l'élément vital de nombreux serveurs. Cependant, Perl est un langage d'écriture seule qui ressemble à un bruit de ligne aux non-initiés. Il y a plus d'une façon de faire tout, si les styles divergent radicalement. codage Perl a tendance à être un désordre bits.

  • Python est un plus frais, langage de script propre que Perl, et est de nos jours préférés par beaucoup comme un langage de script. Il est amusant de programme, il fait bouger les choses et parce qu'il a été pendant quelques années, beaucoup de gens le savent. Python se trouve derrière / à l'intérieur d'un certain nombre d'utilitaires système Linux.

  • feuilles Groovy Perl et Python dans la poussière quand (a) l'environnement fait déjà l'utilisation d'une machine virtuelle Java et / ou il y a une exigence d'utiliser le code Java existant, y compris les bibliothèques. Jusqu'ici tout va bien. Groovy n'est pas extrêmement rapide, mais plus rapide que Python. Dynamiquement typé, il est « amusant » et « facile » à programmer d'une manière que Java est pas.

  • Mais est venu Scala. Scala est comme Java sur les stéroïdes. Il est statiquement typé il est donc pas tout à fait comme « fun » à programme Groovy, mais il a l'inférence de type pour que vous puissiez souvent laisser tomber le type et le compilateur peut les comprendre. Scala travaille vraiment dur pour tirer le meilleur parti des types; il fait des types génériques beaucoup plus transparente que Java. Il distribue avec beaucoup de Java passe-partout, donc les programmes Scala sont généralement environ 30% plus court que les programmes Java similaires. Scala fonctionne très bien sur la machine virtuelle Java et les interfaces avec le code Java. Il fonctionne aussi à peu près aussi rapidement que Java, dont la plupart des autres langues ne le font pas.

  • Enfin, pour historique, il y a Clojure. Clojure est un dérivé Lisp, il a un style de programmation très différent des langues que vous souhaitez connaître autrement, et il brûle par beaucoup de parenthèses! Mais Clojure fonctionne sur la machine virtuelle Java, est très compatible avec tout le reste de Java, et il est typé dynamiquement. Vous pouvez l'utiliser comme un langage de script ou de la traiter comme un langage compilé ... il est à vous. Je trouve amusant de programme, et le fait que c'est une force de langage fonctionnel presque pur vous à penser de nouvelles façons sur la programmation. Ça fait mal votre tête au début, mais si vous survivez c'est un exercice très utile parce que vous apprenez quelques techniques qui deviendront plus pertinentes (je pense) dans la programmation future.

    En résumé, il serait probablement vous faire du bien (cheveux mis sur la poitrine, si je peux me permettre machiste) d'apprendre une ou plusieurs de ces langues « alternatives » / « script ». Vous pouvez les trouver utiles. Habituellement, quand il y a quelque chose à être piraté rapidement dans mon projet, je reçois le travail parce que tous mes collègues savent que Java, et au moment où ils ont fini de mettre en place leur cadre de classe Je suis déjà fait.


9 commentaires

Merci beaucoup pour les croquis miniatures!


C'est l'une des meilleures réponses que j'ai lues. Pouces vers le haut.


Très bonne réponse. La partie sur le créateur de Groovy Lraising Clojure est incorrecte, La citation était à propos de Scala :" Je peux dire honnêtement si quelqu'un m'avait montré la programmation à Scala Book de Martin Odersky, Lex Spoon & Bill Venners de 2003, je n'ai probablement jamais créé Groovy. "


@Samuellindblom: Merci pour la tête! Édité.


@Carlsmotricz Wow j'aime vraiment votre réponse, car je dois apprendre Groovy pour mon stage. Mais sur une note latérale, recommanderiez-vous Clojure et / ou Scala si je souhaite apprendre ou expérimenter et comprendre la programmation fonctionnelle?


@Abdul: Dans Scala, la programmation fonctionnelle est une option, mais vous pouvez écrire un code totalement impératif si vous le souhaitez. À Clojure, vous êtes surtout obligé de programmer fonctionnellement. Cela rendra vos premières marches plus difficiles, peut-être, mais vous apprendrez FP plus rapidement. Sauter dans l'eau froide et tout ça. D'autres alternatives «très fonctionnelles» (que je n'ai pas essayées) seraient f #, ocaml ou haskell.


Comme maintenant, nous écrivons 2017, y a-t-il quelque chose que vous allez étendre ou mettre à jour cette excellente réponse?


@ Tamásg.: Bonne question, merci! Ok, j'avais oublié de mentionner Lua, une langue minuscule que l'on peut utiliser comme langue de script et rubis, un plus grand et plus populaire, parfois utilisé parfois pour les scripts. R est principalement destiné aux statistiques mais a connu une hausse météorologique dans ce secteur. Personnellement n'aime n'aime pas JavaScript mais c'est devenu la langue à savoir, c'est en train de prendre le monde! Script inclus. Groovy, quant à lui, a eu une réception tiède. J'aime aller! Il est strictement compilé, mais si rapidement que certaines personnes l'utilisent comme une langue de script.


@Carl Smotricz: Merci!



3
votes

aller de Java à Groovy n'a pas beaucoup de travail. NON où près de ce qui serait nécessaire pour passer à une langue moins javeshish comme le clojure.

J'aime beaucoup Groovy pour les applications uniques et pour script de code Java existant. Je l'ai utilisé pour analyser les données des appels de repos et nourrir les données à une file d'attente JMS. Je l'ai utilisé pour créer des données de test brouillées pour un partenaire de nos données de production. Pour des choses comme ça, c'est incroyable.

Si l'objectif est d'apprendre une langue dynamique à ajouter à la boîte à outils, Python et Ruby sont de bons choix. Ils fonctionnent sur la JVM et ont des versions indigènes. Les deux sont bien supportés sur un grand nombre de plates-formes.

Si l'objectif est d'apprendre une autre langue JVM, Groovy est un excellent choix. Scala et Clojure seraient également bons choix.

J'avais l'habitude de coller à la règle «apprendre une nouvelle langue chaque année» du programmeur pragmatique, mais c'était avant que j'avais des enfants. Maintenant, j'apprends un nouveau jouet de construction tous les six mois.


0 commentaires

-1
votes

Si vous recherchez une aide en ligne, consultez ces sites Web:


0 commentaires

1
votes

Je trouve que, en apprenant de nouvelles langues, je finisse toujours par apprendre de nouvelles façons de penser aux problèmes. Chaque langue vous guide en résolution de problèmes de la manière la plus facilement exprimée par la langue. L'apprentissage de nouvelles langues ne vous rend plus fort tout autour parce que vous apprenez de nouvelles façons de résoudre des problèmes.

Vous devrez peut-être vous réorienter avec les bibliothèques après une longue période d'une langue, mais même ce n'est pas une énorme épreuve - juste plus fréquentes de recherches Google, etc.

Les avantages, cependant, en valent la peine. J'ai récemment fait une programmation fonctionnelle pour la première fois et cela m'a vraiment appris de différentes manières de penser à certaines situations. Je me trouve maintenant en utilisant certains des aspects fonctionnels de C # et cela rend mon code beaucoup plus propre dans certains cas. L'essentiel est; Si vous allez faire cela pour gagner sa vie, vous allez vouloir apprendre plus d'une langue, avez-vous déjà rencontré un mécanicien qui ne connaissait qu'une marque et un modèle de voiture?


0 commentaires

0
votes

Vous pouvez programmer une application de bureau avec Griffon dont la langue de choix est Groovy, le donnez-le à essayer


0 commentaires