Grails en vaut-il la peine?

C’est une demi-question, une demi-question.

Est-ce la peine d’utiliser Grails? J’essaie de développer une application Web relativement simple basée sur une firebase database. Mon expertise est en Java, donc naturellement Grails semblait être un bon choix. Au début, j’ai pensé à utiliser Spring, JPA et Hibernate, mais je l’ai déjà utilisé auparavant et j’ai rencontré toutes sortes de tâches de configuration et de codage fastidieuses. Grails se présente comme résolvant cela.

Ma plus grande frustration avec Grails est toutes les petites choses qui ne fonctionnent pas. Ce que je veux dire, c’est que cela ne fonctionne pas comme on le penserait intuitivement. C’est très rugueux sur les bords. Je rencontre constamment des problèmes. Parfois, mon manque de compréhension de Grails – d’autres fois j’ai découvert des bugs Grails légitimes.

Un problème majeur est le manque d’intégration de Eclipse. Il y a un plugin Groovy et Grails, mais il ne fait pas grand chose d’autre que la coloration syntaxique. Appeler Groovy depuis Java et vice-versa est très difficile à configurer . Ne pas avoir un bon support IDE est un problème majeur.

Qu’est-ce qui se passe est que je m’assois en essayant de développer mon application Web. En fin de compte, je me rends compte que j’ai passé environ 85% de la journée à résoudre les problèmes liés à Grails. Si ce ne sont pas des problèmes Eclipse, alors c’est un chargement , une extraction dans la vue , des relations un-à-plusieurs , un comportement de bogue de fichier vide bizarre , un bogue étrange de propriété / lecture – et ainsi de suite. Ceci est juste un exemple des problèmes que j’ai rencontrés aujourd’hui. Mon dernier sit-in avec Grails a entraîné toute une série de problèmes différents.

Je me demande parfois si cela en vaut la peine. Je suis curieux de savoir si d’autres ont vécu cela. Y a-t-il des personnes utilisant Grails pour créer une application Web? Y a-t-il d’autres frameworks de développement Web rapide que je devrais envisager?

    Nous avons eu une équipe de 12 personnes tous expérimentés développeurs Java expérimentés qui ont appris Grails à partir de 0.6B et nous travaillons toujours sur des projets basés sur Grails. Je ne retournerais pas volontairement à Java, et nous sums tous soulagés d’avoir exploré la façon de se déplacer rapidement avec une application Grails.

    C’était une lutte, ce n’était pas facile et il y avait / est frustration.

    Néanmoins, nous avons livré quelque chose très rapidement compte tenu de nos efforts en cours. Il existe des bogues, dont beaucoup ont des solutions de contournement.

    J’ai entendu parler de plusieurs exemples de développeurs qui sont bons en Java essayant de plonger dans des incantations profondes et complexes de projets Grails. Nous avons évité toute Java et sums allés purement Grails et Groovy. Nous nous sums assurés que nous avions commencé simplement, accumulé la complexité de manière aussi maniable et pratique que possible. Nous n’avons pas osé plonger au plus profond et espérer que nos connaissances sur Java suffiraient à nous porter.

    Nous avions finalement créé quelque chose d’énorme et complexe qui fonctionnait de manière fabuleuse et le faisait beaucoup plus rapidement que l’écriture d’une version Java / Spring / Hibernate pure; et c’est sans soutien IDE décent et une situation bien pire en termes de bugs qu’aujourd’hui.

    En ce qui concerne le support Eclipse, le seul véritable IDE à utiliser pour Grails / Groovy est Intellij – malheureusement, le support Eclipse est loin derrière. J’étais un amoureux d’Eclipse et je suis loin d’être un converti Intellij. bien que.

    Oui, Grails est immature comparé au spring peut-être. Ou Hibernate. Et je parierais qu’au cours des 1,5 premières années de leur existence, ils étaient tout aussi chargés de problèmes.

    En tant que tel, il vous incombe de veiller à ce que la complexité rest au ssortingct minimum, de tester au préalable soigneusement (à notre avis) et de parvenir progressivement à la complexité et avec soin.

    Il n’y a pas de solution de code rapide avec Java une fois que vous impliquez Spring / Hibernate dans la stack. La complexité que Grails incarne reflète la complexité propre à Spring / Hibernate. Si vous pensez que le temps passé avec Java est plus efficace, je ne dirais pas le contraire. J’ai toujours mes WTF, mais maintenant que la courbe d’apprentissage raide est derrière moi, je pense que je vais continuer avec Grails.

    J’apprécie beaucoup écrire des applications de grails pour deux raisons:

    • Je n’ai pas besoin d’utiliser Java
    • Je peux utiliser Java

    Je pense qu’après s’être familiarisé avec Grails, on fait ses choses très rapidement et élégamment.

    Voilà pour le côté positif. Le côté négatif est la performance, qui me frappe sur deux aspects: le déploiement et le développement testé.

    Je n’ai pas réussi à exécuter plus de 3 applications de grails sur un seul serveur (loué), car j’ai rapidement atteint les limites de mémoire et de performances. Il y a tout simplement trop de frameworks inclus.

    De plus, le testrunner de grails ne vaut pas ce nom. Lorsque je lance des tests unitaires, ils doivent être effectués en un instant, pas dans les 10 à 20 ans. Je me retrouve donc à écrire de la logique métier en langage simple, car je peux la tester beaucoup plus rapidement. Mais je suppose que cela peut être résolu avec une meilleure intégration dans l’IDE (eclipse).

    Je pense que le soutien de Spring à Grails va être un grand coup de pouce. Si quelqu’un peut dépasser CRUD sur le Web, ce sont ces gars-là.

    Je pense aussi que cela atteint une masse critique. Il y aura plusieurs nouveaux livres sur le marché en 2009. Je pense que cela aidera le taux d’adoption.

    Je suis entièrement d’accord avec les sentiments originaux des affiches.

    Nous sums un magasin Java + Spring et en avons profité pour essayer Grails. Nous avons d’abord créé une très petite application de test qui s’est avérée assez simple à réaliser et qui a très bien fonctionné. Les principaux problèmes rencontrés ici étaient dus à notre manque de connaissance de Groovy et de Grails.

    Suite à ce succès (renforcement de la confiance), nous avons décidé de tenter un projet légèrement plus grand. Cela a été une expérience beaucoup plus douloureuse. Comme mentionné par d’autres, nous avons découvert toutes sortes de bugs et de problèmes qui n’étaient pas immédiatement apparents en surface. Les cycles de redémarrage de l’application deviennent extrêmement pénibles et à moins que vous ayez une très bonne couverture de test, c’est un cauchemar de faire tout type de re-factorisation.

    Il est vraiment frustrant d’avoir un code qui échoue sans un seul message d’erreur! Ça ne marche pas et vous ne savez pas pourquoi?

    J’aime la facilité d’utilisation des plugins pour JMS, Quartz et Remoting pour en nommer quelques-uns. Supprime beaucoup de XML fastidieux.

    J’aime presque la simplicité de GORM, bien que nous ayons également eu plusieurs problèmes.

    Je n’aime pas la nature vaguement typée de Groovy et le fait que vous ayez à exécuter votre application pour pouvoir attraper un tas d’erreurs me rappelle trop PHP ou Rails.

    En fin de compte, nous nous demandons s’il est possible d’écrire un logiciel complexe gérable à l’aide de Grails …

    Nous avons une application Grails sur le sharepoint commencer la production … alors nous verrons.

    Nous utilisons grails + sur la couche Web + java avec hibernate et spring sur la couche de service. Ce sont les trois couches classiques (Web, logique, données) où le Web est graal et la logique est implémentée en Java. Comme d’habitude en Java, nous utilisons des objects bean qui représentent les données entre différentes couches.

    Cela fonctionne plutôt bien et c’était la meilleure solution pour notre cas car les objects du haricot étaient déjà présents, ainsi que la structure de la firebase database. De par notre expérience, je pense que grails a une grande valeur en tant que couche de présentation Web, mais je rest fidèle à java pour écrire les règles de gestion et pour conserver les données de l’application. simple.

    Nous utilisons eclipse pour développer l’application grails et son intégration médiocre, comme on l’a dit ici. Mais, à la suggestion d’autres développeurs, nous exécutons l’application grails à partir de la ligne de commande et n’utilisons qu’eclipse pour enregistrer les fichiers source, et cela fonctionne plutôt bien, car l’application est mise à jour à la volée.

    Je ne me sens pas encore à l’aise pour utiliser les grails ailleurs que dans la couche de présentation.

    Je suis totalement avec toi! Grails se sent toujours si dur sur les bords que c’est presque une blague de le comparer à Rails. Si au moins le rapport d’erreur était un peu mieux. Mais je suppose que cela est probablement aussi dû à l’énorme quantité de bibliothèques qu’il utilise sous les couvertures. Un mot: stacktrace! Je ne suis pas non plus un grand fan de l’approche model-> db (Rails a db-> model). L’échafaudage laisse également beaucoup de place à l’amélioration. Ensuite, “pas de redémarrage requirejs” ne fonctionne pas non plus comme prévu. (Je ne suis pas sûr de ce qui est pire – devoir redémarrer tout le temps ou parfois trouver des comportements étranges qui disparaissent quand vous redémarrez) Et ne me lancez pas sur GORM. (Quand cela prend des heures pour trouver ce que ce serait un simple SQL, vous commencez à vous demander si cet ORM vous fait vraiment gagner du temps) Peut-être aussi longtemps que c’est simple.

    Je veux dire: c’est toujours l’un des meilleurs choix d’un framework quand on vient du monde java. (Tant de choses inutiles qui s’appellent elles-mêmes un framework web) … ça a du potentiel. Je souhaite juste que cela n’ait pas été construit sur tant d’autres choses complexes.

    Quoi qu’il en soit, espérons que ces choses seront sortingées. En ce moment, je me moque de playframework.org, qui semble également très élégant et prometteur.

    J’ai beaucoup plus d’expérience avec Ruby on Rails qu’avec tout ce qui se passe dans le monde Java, alors je viens d’une autre perspective. Globalement, Grails est beaucoup plus rugueux que Rails, en partie en raison de son manque de maturité, et en partie parce qu’il repose sur deux frameworks extrêmement complexes (Spring et Hibernate). Rails a également une communauté beaucoup plus grande.

    Mais Groovy en tant que langue a fait d’énormes progrès et c’est un plaisir de travailler avec. Grâce aux améliorations apscopes à Groovy 1.6, Grails est un peu plus rapide que JRuby sur Rails, et vous obtenez un support XML incroyablement performant via GPath. Il y a beaucoup de fonctionnalités intéressantes que vous obtenez en étant sur la JVM (comme la concurrence et des tonnes de code threadsafe), mais sans avoir à se soucier de Java (un langage que je ne me soucie pas beaucoup), donc j’ai vraiment Difficile de me convaincre d’utiliser quelque chose sur l’IRM.

    Python semble tentant, cependant, je dois admettre.

    En ce qui concerne vos problèmes Eclipse, je ne peux pas vous aider. J’utilise Vim et Emacs, principalement parce que je ne supporte pas les IDE. Pour les langages dynamics comme Groovy, Ruby et Python, cependant, je ne pense pas que les IDE apportent vraiment de réels avantages, car il n’y a pas vraiment de place pour la génération de code ou la nécessité de comstackr. Peut-être essayer de travailler sans IDE pendant un moment et voir si les choses sont plus douces?

    Donc, oui, je pense que Grails en vaut la peine. Ils ont fait un super boulot pour que les choses fonctionnent aussi vite qu’ils le font, et les équipes de Grails et de Groovy sont vraiment très dévouées.

    Cela vaudra la peine quand ils auront fini le plugin eclipse. Le plus tôt sera le mieux je dis. Essayer de vendre du groovy à mon patron ne sera pas simple tant que cela ne se produira pas.

    J’étais un utilisateur d’Eclipse avant de commencer à utiliser Grails. Il est vite apparu que ça ne allait pas le couper. J’ai donc essayé Intellij et NetBeans. À l’époque, Intellij était meilleur en ce qui concerne Groovy et Grails. Cependant, NetBeans était gratuit et cela me suffisait. Depuis lors, toutes les trois ont eu de nouvelles versions ou de nouveaux plugins. J’utilise toujours NetBeans à cause du coût d’Intellij. Avec l’acquisition de G2One par Spring Source, l’une des attentes est un soutien accru pour Groovy et Grails dans Eclipse. Cela sera nécessaire pour une adoption accrue.

    Utiliser Grails pour un nouveau projet est merveilleux. Une grande partie du bagage Enterprise Java n’est plus nécessaire. Je peux imaginer que tenter de transférer quelque chose serait difficile, car tant que vous ne comprendrez pas où se situent les forces et les faiblesses d’un framework, il est difficile de l’utiliser efficacement. Il est promis que le support JSP sera plus facile dans Grails 1.1, je ne sais pas si utiliser une version bêta en essayant de modifier un nouveau framework est une bonne idée. Le test a également subi une révision majeure pour la nouvelle version. Si le temps le permet, vous pouvez envisager d’attendre car la version 1.1 devrait arriver très bientôt.

    Si vous avez l’occasion d’essayer Grails dans un autre IDE lorsque vous démarrez un projet à partir de rien, je pense que vous le verrez sous un jour différent.

    Je trouve que le plus grand avantage de Grails est que je n’ai plus besoin de la firebase database – le schéma est automatiquement créé / mis à jour, et la persistance est en grande partie pour moi (plus besoin d’écrire des requêtes SQL). C’est un énorme soulagement. L’autre chose plutôt agréable est qu’une fois que vous avez défini les modèles pour les contrôleurs et les vues, l’ajout de nouveaux objects de domaine est assez rapide. Bien que je soupçonne que vous ferez des changements continus pour vos vues au moins, les adaptant à celles existantes.

    Quant à l’IDE – il semble qu’IntelliJ soit la meilleure option, mais je suis content d’utiliser Netbeans 6.5. J’utilise MyEclipse pour tous les autres développements, mais Netbeans dispose désormais d’un meilleur support pour Grails.

    Je viens juste de commencer à utiliser grails sur un nouveau projet … ne pas avoir à écrire de fichiers XML, tout en ayant la puissance de Spring et d’Hibernate, c’est vraiment incroyable.

    Utilisez IntellijIDEA pour l’IDE cependant, j’ai effectivement découvert Grails via l’IDE (je pourrais être biaisé, je déteste l’ éclipse).

    Totalement. Il y a tellement de frameworks Java que la barre est assez haute pour les nouveaux arrivants, et c’est un testament pour Grails que cela a été possible dans un espace aussi encombré.

    Il y a encore quelques tranchants qui sont nets, mais ce ne sont qu’une question de temps avant qu’ils ne soient résolus, le projet sous-jacent est TRÈS valable.

    Grails peut être trop volumineux pour votre type d’application (en fonction des nombreux fichiers créés lors de la première initialisation et des ressources nécessaires). Si vous cherchez quelque chose de simple, Grails n’est peut-être pas ce que vous cherchez. Si vous cherchez quelque chose de simple et fonctionne, je pense que django peut bien faire votre travail. Jetez un coup d’œil à la simplicité (nombre de fichiers requirejs) pour créer des applications CRUD à partir de son didacticiel . À partir de là, vos applications peuvent (relativement) être facilement adaptées à vos besoins et à vos exigences.

    Je ne suis pas sûr qu’ils seront capables de faire en sorte que Grails soit à la hauteur de vos connaissances. Et de droit, je veux dire aborder tous les détails (petits et grands) qui, au final, le rendent fragile et fragile. Je ne suis même pas sûr qu’il y ait une véritable équipe de développement (c’est-à-dire plus de 2 personnes) derrière elle.

    Chaque fois que je répète une caractéristique de mes projets Grails, en essayant d’améliorer quelque chose, c’est le même stream de travail: tout tombe en morceaux, alors c’est une centaine de cycles de test ‘google’, alors vous trouvez la raison ce que vous voulez et vous faites autre chose.

    En fin de compte, vous êtes frustré parce que vous ne voulez même pas toucher à tout ce qui fonctionne. Et les choses qui ne vont pas bien, vous les laissez tomber!

    J’envisage de passer à Rails via JRuby. Cela peut être le meilleur des deux mondes: une infrastructure Web capable avec une communauté active et importante, une équipe de développeurs dédiée, une plate-forme qui ne repose pas sur des frameworks complexes et douteux comme Spring ou Hibernate, un cycle de publication rapide et ambitieux. Et JRuby parce que franchement, tant de ressources Java dans mon sac à dos, je ne peux pas simplement les jeter.

    Si votre expertise est en Java comme vous le dites. Vous devriez jeter un oeil à Play Framework – c’est un framework Web inspiré de Ruby on Rails avec un cycle de développement très court – enregistrez simplement votre fichier source Java et mettez à jour votre navigateur Web. Et si vous voulez essayer une autre langue, Play Framework a un module qui vous permet d’utiliser Scala à la place.

    J’aime Play Framework car il est facile à comprendre et performant. Vous pouvez également utiliser JPA et Hibernate pour la couche ORM si vous le souhaitez.