Je sais que c’est un doublon , cependant, le monde de Grails a beaucoup évolué depuis que cette question a été posée il y a plus d’un an, tout comme le support IDE dans Eclipse, alors ne le fermez pas aveuglément.
Je pensais que la réponse était oui et je me suis lancé dans un nouveau projet avec Grails 1.2.0 et j’ai flirté avec les bits Groovy / Grails de l’ intégration STS Eclipse .
Je pense que la question mérite d’être revue après une année d’évolution de Grails, alors que la réponse était définitivement mitigée.
En tant que développeur Web Java expérimenté, j’ai ces questions et j’apprécierais que mes hypothèses soient contestées:
Merci
EDIT: J’apprends au fur et à mesure que je progresse et j’ai quelques critiques importantes à formuler à propos de la vie avec le framework – plutôt que des capacités du framework elles-mêmes. Je les ajoute parce que je pense qu’ils devraient être des considérations et sont basés sur mon expérience et mon opinion, et peuvent aider une personne qui essaie de décider si elle doit aller au graal. Je peux également montrer mon manque d’expérience avec le cadre, donc rien de tout cela ne signifie des critiques directes. Je suis un développeur expérimenté et c’est ce que j’ai trouvé:
Le débogage est vraiment difficile . En fait, c’est presque impossible, surtout en tant que débutant dans le framework, c’est-à-dire lorsque vous avez le plus besoin de votre ami fidèle au débogueur. J’ai passé beaucoup plus de temps que je ne devais suivre les problèmes d’erreurs syntaxiques dans certaines parties du code pour faire référence aux champs de domaine qui provoquent des défaillances silencieuses quelque part dans la stack.
La journalisation est franchement affreuse . Vous avez deux modes, “rien d’utile” et “une quantité démesurée de trucs inutiles”. Mon journal de débogage était de 128 Mo après une seule demande de page et ne contient rien sur mon erreur. À mon avis, toute la question de l’exploitation forestière doit être réexaminée dans le cadre.
L’IDE STS Eclipse est de valeur marginale . En dehors de la syntaxe, ce n’est pas très utile. Vous ne pouvez pas déboguer le code, c’est donc un éditeur glorifié. Les indications de code sont inégales et il n’y a pas de support GSP pour autant que je sache. C’est aussi le plug-in Eclipse le plus lent que j’ai sur mon bureau – environ 2 minutes pour démarrer. C’est incroyablement lent. Je suis revenu à un éditeur de texte (dont vous remarquerez tous les vidéos de didacticiels en ligne) et à certains ajouts de syntaxe personnalisés.
J’ai de sérieuses inquiétudes quant à la performance . Un peu trop tôt pour le dire, mais je me retrouve déjà à peaufiner la firebase database à cause de la mise en veille prolongée. Il faut peut-être s’y attendre, mais je dois vraiment garder mon modèle de domaine simple pour que les conventions génèrent des requêtes performantes.
Et un dernier point, la convention selon laquelle votre modèle de domaine logique et votre modèle de firebase database physique doivent être identiques ne constitue pas un défaut intelligent et ne sera probablement jamais le cas dans le monde réel. Je sais que vous pouvez séparer les deux, mais cela crée une certaine complexité qui, à mon avis, pourrait être évitée si les conventions étaient étendues. Il existe une documentation inadéquate sur la composition et ce que vous devez faire pour que cela fonctionne dans la pratique .
J’utilise Grails depuis plus de 4 mois et je vais essayer de vous faire part de mon expérience personnelle et de son utilisation.
Est-ce que Grails en vaut la peine vs Ruby ou autre?
Bien sûr, la réponse n’est pas «oui» ou «non», mais cela dépend . Cela dépend de vos besoins (avez-vous besoin d’être dans le monde Java?), De vos préférences (préférez-vous le développement orienté domaine, préférez-vous Groovy …)? Cependant, je peux répondre que Grails est une alternative sérieuse aux Rails. Je crois que quelle que soit votre application Rails, vous pouvez également le faire avec Grails. Mais selon la nature de votre projet, cela peut prendre plus ou moins de temps. Encore une fois, si vous connaissez Rails mais pas Grails, Rails est l’option la plus sûre.
A-t-il surmonté son buggy start?
Oui Si vous jetez un coup d’œil à mes premiers messages (sur ce site ou sur d’autres sites), je me plaignais beaucoup des bogues de Grails. Mais, il vous suffit de vous rappeler que Grails est un peu rude (pas trop d’utilisation de l’inheritance de domaine, par exemple) et une fois familiarisé avec le framework, vous ne rencontrez pas trop de mauvaises sursockets. Je ne dis pas que Grails n’est pas un buggy. C’est certainement plus que Rails. Mais aussi, il est plus utilisable que le buggy . Un conseil pour cela: utilisez le moins de plugins possible . Parce que beaucoup d’entre eux sont bogués et que certains ne sont pas compatibles entre eux. Donc, n’incluez pas le plug-in grails à moins que vous ne soyez certain que le plug-in grails est à jour, non intrusif et testé (par vous-même).
Est-ce que cela confère vraiment des avantages de développement rapides?
Oui Vous n’avez presque pas besoin de gérer la conception de firebase database. La configuration est presque terminée pour vous depuis le début grâce à Convention over Configuration. Votre application est facilement maintenable. Le seul inconvénient que je vois est le développement frontal qui n’est pas aussi riche que d’autres technologies (comme Rails ou ASP)
Est-ce qu’il fonctionne pour les applications de production du monde réel?
Je ne peux pas dire parce que je ne suis toujours pas allé sur mon site Web, mais je suis assez confiant puisque sky.com utilise Grails et que les sites attirent un trafic important – environ 7 millions de pages vues par jour . Là encore, les performances dépendent beaucoup de l’architecture de votre application et des décisions de conception.
Le plug-in Eclipse est-il meilleur et convenait-il?
Aucune idée. J’utilise IntelliJ mais je suppose que ce n’est pas beaucoup mieux qu’il y a un an, selon les messages de plainte que je vois sur le royaume de Grails.
J’espère que ça aide.
A commencé un projet Rails récemment, avait fait des trucs avec Grails.
Mon principal atout avec Rails est qu’il ya beaucoup de choses complètement opaques avec le dev (que je déteste), et cela a tendance à augmenter lorsque vous commencez à append plus de plugins / generators / libs / etc, car pour les combiner vous devrez réparer quelque chose. Vous avez l’impression que les rails + plugins ne sont qu’un hack géant de DSL qui commence à se briser si vous utilisez une mauvaise combinaison de plugins et de versions .
Avec Grails , bien que l’écosystème soit beaucoup plus petit, tout a tendance à être relativement cohérent. L’approche DSL n’est pas très utilisée, et en utilisant une conception conventionnelle mais ennuyeuse (je veux dire en utilisant des classes, des interfaces, etc. au lieu de DSL), il est beaucoup plus facile de comprendre le fonctionnement de la plomberie.
En procédant à une comparaison 1: 1, voici comment ça se passe:
Voici un exemple:
Conclusion:
Cela en vaut la peine!
Nous utilisons Grails dans plusieurs projets, tous avec beaucoup de succès pour les raisons suivantes:
Facile – C’est l’un des frameworks les plus simples que nous ayons jamais utilisés
Réutilisation du code hérité – Tout ce que nous avons à faire est d’obtenir notre code hérité et de le lancer dans le dossier lib ou src et c’est fait. Tout simplement génial pour nous.
Structure de firebase database héritée – C’est un outil génial si vous souhaitez générer des visualisations de données sur des bases de données héritées.
Maintenant, à propos de la viabilité:
Bugs: nous n’avons pas rencontré trop de bogues depuis la version 1.1 (la version 1.0 était trop difficile pour nous)
Outils: Netbeans s’améliore vraiment sur ce front, mais il n’est même pas proche d’autres outils comme Intellij IDEA (un excellent support!). On peut en dire autant d’Eclipse.
Portabilité: nous n’avons jamais rencontré un seul problème sur nos projets.
Nous avons déjà une demi-douzaine d’applications Grails en production, et bien que Grails soit différent des frameworks Java et nécessite un certain temps d’apprentissage, il a été payant car nous avons utilisé des techniques Agile. Détails:
Cela dit, comme avec toutes les nouvelles technologies, je vous recommande de faire des prototypes, des revues de code, de programmer des paires et peut-être aussi de consulter.
Cela en vaut vraiment la peine. Je l’utilise depuis plus d’un an maintenant et j’adore ça. J’avais l’habitude de ne pas utiliser ces outils rad, mais cela a changé ma façon de travailler. Avec la version 1.2, il s’est encore amélioré avec de meilleures informations de trace de stack (en particulier pour les GSP).
Le seul problème que j’ai eu avec la mise à l’échelle a été l’hibernation et son cache, ce qui n’est vraiment pas un problème de grails. Même ceux que je n’aime pas hibernate en général, la façon dont le graal est enveloppé avec GORM est une œuvre d’art pour moi. L’aspect fermeture des critères est merveilleux pour travailler avec.
Je n’ai pas encore trouvé quelqu’un qui est expert à la fois Grails et Rails et préfère Grails.
Si vous connaissez bien les deux, alors vous préférez certainement Rails.
Grails attire généralement les développeurs Java qui craignent un changement de plate-forme.
Dans ce cas, je pense que JRuby est probablement une meilleure façon d’adopter une approche agile sur l’ancienne version de jvm.
Ayant récemment utilisé Grails pour un projet, je souhaite partager nos expériences par rapport au développement d’applications J2EE standard.
Est-ce que cela confère vraiment des avantages de développement rapides?
Certainement, c’est le cas. Même si le chemin d’échafaudage est abandonné tôt et que les conventions ont priorité sur les besoins propres, la période de démarrage est très courte, car nous n’avons pas à nous soucier de nombreuses technologies différentes. Ce type de légèreté nous permet de travailler non seulement plus rapidement, mais aussi plus précisément et plus proprement.
Ecrire des balises n’a jamais été aussi facile – alors que JSF s’est d’abord demandé si cela en valait la peine, avec Grails, nous le faisons tout simplement. Travailler de manière testée et atteindre un taux de couverture élevé est également très facile, même si les différents scénarios de test et stratégies de simulation sont parfois incohérents et bogués.
Passer de Java à Groovy est un grand plaisir, nous adorions avoir des littéraux, des fermetures, des constructeurs, des listes et des cartes, pour jeter notre implémentation de cartes en Java et écrire du code compact, significatif et ciblé.
Ce qui ralentit la vitesse de développement est le support IDE pas si parfait, qui vaut également pour le plug-in IntelliJ, que nous utilisons. La mauvaise documentation, souvent ancienne et même erronée, dispersée à différents endroits (déjouant la promesse “la recherche est terminée”) entrave aussi le développement rapide. Nous avons donc souvent dû recourir à la lecture du code source – par la suite effrayés par les hiérarchies de classe Spring sous-jacentes.
Le débogage est vraiment difficile. Je n’ai jamais trouvé cela être un gros problème. Vous pouvez soit attacher un débogueur et parcourir, soit coller une charge de println / logs dans le code pour déterminer ce qui se passe.
La journalisation est franchement affreuse. Je suis d’accord que les traces de stack fournissent généralement 4 pages d’informations inutiles, avec une ligne occasionnelle qui est informative. Cependant, c’est un petit prix à payer pour un cadre aussi impressionnant.
L’IDE STS Eclipse est de valeur marginale. Eclipse a pissé un mauvais soutien pour Grails. Utilisez IntelliJ si possible. Je suis un serré, mais si mon entreprise me le permettait, je paierais volontiers l’argent pour IntelliJ.
J’utilise Grails depuis les tout premiers jours en 1.0-beta et je ne peux que vous recommander de commencer à prendre Groovy / Grails au sérieux si vous venez de la boutique Java.
Si vous êtes un magasin Java et que vous considérez Ruby Rails, arrêtez Grails. Si grails ne fonctionne pas pour vous, vous pouvez toujours démarrer Rails.
Je partagerai mon expérience de trois ans en utilisant Grails dans presque dix applications. Je ne peux pas comparer avec Ruby on Rails alors je vais répondre à vos autres questions.
A-t-il surmonté son buggy start?
Est-ce que cela confère vraiment des avantages de développement rapides?
Le plug-in Eclipse est-il meilleur et convenait-il?
Est-ce qu’il fonctionne pour les applications de production du monde réel?
Le plug-in Grails Eclipse est de la merde. Il plante sans raison et ne supporte pas vraiment la flexibilité de Groovy. NetBeans et IntelliJ seraient beaucoup mieux, mais je ne les ai pas encore essayés.
Est-ce qu’il fonctionne? Bien sûr que oui. Même Ruby on Rails fonctionne, tant que vous lancez suffisamment de serveurs sur le problème. Je ne sais pas comment Grails se compare aux différents frameworks Java.
Est-ce que cela confère vraiment des avantages de développement rapides? Bon, il me manque encore beaucoup de bonnes choses Ruby / Rails. Il ne reconnaît pas les parameters de requête Date et Enum automatiquement (encore une fois, Rails a également des problèmes avec les dates), TimeCategory devrait faire partie de la configuration standard mais ne l’est pas. Mais il y a aussi beaucoup de choses qui nécessitent une configuration remarquablement réduite.
Ce n’est pas tout à fait le cas pour Rails (j’ai particulièrement hâte à Rails 3), mais il est beaucoup plus agréable de travailler avec de nombreux frameworks Java. Malgré tout, la magie sous la surface va beaucoup plus loin que dans Rails. Par exemple, le système de Contraintes est très puissant, mais construit sur une énorme couche de trucs de spring impénétrables, et vraiment inflexible si vous souhaitez utiliser cette même puissance de manière légèrement différente. Rails est plus facile à corrompre, IME.
Est-ce que ça vaut le coup? Oui. Est-ce un meilleur choix que quelque chose d’autre? Ça dépend.
Je vous suggère d’essayer pour vous-même. J’aime la flexibilité de Grails et la vitesse de développement. Cependant, comme vous pouvez le voir, l’expérience des autres personnes diffère. Je veux pouvoir développer des applications rapides pour mes clients en utilisant la plate-forme Java et j’ai trouvé que Grails fonctionnait très bien pour nous.
J’ai aussi trouvé le frontend très flexible à développer. Je pense aussi que vous devez faire preuve de bon sens et choisir soigneusement vos plug-ins. Je m’en tiens aux plugins supportés par springsource.
Dans mon expérience, Grails apporte quelques fonctionnalités très intéressantes sur la table, ce qui en fait un outil d’apprentissage et d’utilisation.
Java comme la syntaxe et le sucre syntaxique groovy. comme le meilleur des deux mondes. Vous pouvez commencer immédiatement avec Java au lieu d’apprendre la syntaxe d’un nouveau langage comme Ruby, puis, lentement, vous pouvez passer à la syntaxe groovy qui est robuste, facile et intuitive.
Pour les chefs de projet, à moins qu’il y ait des raisons impérieuses de “ne pas utiliser” les graal pour une raison quelconque (résistance à partir du haut, pour adopter une nouvelle technologie ou autre), je ne vois aucune raison le moins essayé
Pour répondre aux préoccupations concernant le débogage, ce n’est pas si difficile. Le débogage est facile si vous utilisez Netbeans IDE. Cela m’amène à un autre point à mentionner. Après quelques expériences avec tous les IDE, nous avons constaté que Netbeans était le plus approprié pour faire le travail. Il prend mieux en charge l’achèvement du code, la mise en évidence de la syntaxe et le débogage, etc. À mon avis, STS n’est pas suffisant pour cela.
Le plug-in Eclipse est-il meilleur et convenait-il?
Il s’est nettement amélioré au cours de la dernière année. En décembre, j’ai assisté à la Groovy & Grails Exchange à Londres. Il y a eu une bonne discussion concernant l’intégration de Groovy & Grails dans Eclipse / SpringSource STS qui a été enregistrée, voir la vidéo .
De mon sharepoint vue, Eclipse a gagné beaucoup de terrain. Actuellement, IntelliJ semble être un peu en avance, mais cela pourrait changer dans les prochains mois.
En ce qui concerne le plug-in eclipse, il continue à arriver, mais vous pouvez utiliser la version eclipse de Spring Source (SpringSource Tool Suite)
http://www.springsource.com/products/sts
C’est assez décent comparé aux versions précédentes des plug-ins, et depuis que Spring Source a acquis la société responsable des grails et des groovy, vous pouvez vous attendre à ce que STS devienne meilleur rapidement
Personnellement, j’ai appris RoR et je l’ai utilisé pour quelques projets domestiques, mais ensuite je suis passé à Grails, principalement parce qu’il fonctionne sur la JVM et j’espère donc pouvoir utiliser la pléthore de programmes de performance / profilage Java, ce qui devrait aider à identifier goulets d’étranglement dans le code avant qu’ils ne deviennent un problème.
En général, je n’ai pas trouvé trop de différence dans la qualité des IDE utilisés par RoR vs Grails. Bien que, pour être juste, je programme sous Linux et je n’ai pas essayé TextMate pour le développement de RoR. Lorsque j’utilisais RoR, j’ai utilisé Netbeans.
En ce moment, je programme en utilisant STS et je trouve que c’est un plaisir à utiliser avec Grails, bien que je trouve toujours que la détection / complétion de la méthode pourrait être améliorée.
Je suis un développeur Java à plein temps, mais j’utilise les rails pour mes projets de loisir. Il y a un an, nous avons évalué les grails pour un projet au travail. Mon expérience avec Grails m’a laissé un peu déçu et c’est la raison pour laquelle j’ai commencé à enquêter sur les rails. Ayant utilisé les deux, mon impression est que, même si groovy n’est pas loin derrière le rbuy en tant que langue, les rails offrent une expérience nettement améliorée sur les grails. Tout simplement, les rails semblent résoudre des problèmes beaucoup plus réels, en particulier lorsque vous tenez compte du nombre de bonnes pierres disponibles. Je pense à des choses telles que la recherche, la gestion des versions, les applications rss, les applications non-crud, l’intégration avec les services cloud, etc. À la fin du mois, les rails 3 auraient dû être libérés. Nous avons en fait décidé d’utiliser maintenant des rails au travail. En fin de compte, le grails est plus facile à prendre en main pour les développeurs Java, mais il manque finalement le raffinement nécessaire pour couvrir un plus large éventail de besoins.
Je dirais non Il est encore trop gonflé, à mon humble avis, pour la plupart des utilisations, surtout si vous voulez juste prototyper quelque chose. Nous n’avons pas besoin de tout ce code, de toutes les dépendances intégrées aux grails pour créer une application Web. Vous n’avez pas besoin de spring à chaque fois que vous souhaitez mettre en place une application Web. Regardez ce que vous essayez d’accomplir avant d’append un monde plein de dépendances à votre stack. Je pense qu’il est important de savoir en quoi consiste votre application.
Je recommande de regarder quelque chose comme le ratpack, qui est beaucoup plus léger, presque comme un sinatra pour le rbuy.
Je tiens à souligner deux autres considérations, l’utilisation de la mémoire et le marché du travail. L’application Grails prend beaucoup de mémoire, notamment en mode de développement, par exemple 600 Mo pour une application de taille moyenne. Lorsqu’il est déployé en mode de production, par exemple un fichier de guerre dans Tomcat, l’utilisation peut être d’environ 500 Mo. Ceci est en partie hérité de l’utilisation de Java.
En ce qui concerne le marché du travail et pour autant que je sache, il y a peu de demande pour les programmeurs Grails dans les annonces de postes vacants, par exemple, Django et Ruby on Rails.
De mon expérience à fin 2013.
Avantages
Les inconvénients
A-t-il surmonté son buggy start?
C’est toujours horrible. Je ne connais pas leur début, mais la migration de Grails 2 à Grails 3 est toujours un cauchemar et ils brisent plus qu’ils ne résolvent.
Est-ce que cela confère vraiment des avantages de développement rapides?
J’ai passé une heure à faire les tests de Grails pour produire quelque chose dans la console (cela ne fonctionne pas immédiatement), même en Java, vous ne passerez pas autant de temps à sortir quelque chose des tests.
Est-ce qu’il fonctionne pour les applications de production du monde réel?
Je ne connais toujours pas une seule compagnie célèbre qui construit quelque chose avec Grails.
Le plug-in Eclipse est-il meilleur et convenait-il?
Je ne sais pas pourquoi quelqu’un utilise encore Eclipse, mais le support d’IntelliJ pour Grails 3 est tout simplement inutilisable.
Donc, répondant à la question principale:
Grails (maintenant) en vaut-il la peine?
Si vous ne pouvez pas vous permettre la licence Microsoft Access, peut-être. Pour de vrais projets, je restrais loin de Grails. C’est juste un enfant mort-né, en fait.