Question

Je regardais autour de moi pour voir s’il existait un équivalent de Django / RoR en java.

J'ai trouvé:

Quelqu'un a-t-il déjà essayé ces frameworks ou en connaissez-vous un autre? Sont-ils plus rapides que Django / RoR?

Était-ce utile?

La solution

J'ai découvert Grails il y a environ un an et je n'ai pas regardé en arrière. Il faut beaucoup d’idées à Ruby on Rails (l’appellation originale était Groovy on Rails), et possède un riche écosystème de plugins / extensions. Grails et le langage Grails sous-jacent (super ensemble de Java) en font un plaisir à programmer - vous pouvez vraiment vous concentrer sur l'essentiel. Sa fonctionnalité GORM (une couche au-dessus de l'hibernation) est également très puissante et constitue, en plus du système de plug-in, l'une des deux raisons majeures de le vérifier (vous pouvez également l'utiliser dans vos applications java).

La version 1.2 étant sur le point de sortir, je pense que ses fonctionnalités et sa maturité sont suffisamment matures pour que tout développeur ait sa place dans la palette d'outils.

En ce qui concerne les performances, il est nettement inférieur à celui de Java pur, mais vous disposez de tout ce que vous avez de printemps / hibernation / J2EE pour l'optimiser, et vous pouvez toujours passer à Java pur pour certains éléments de code critiques. Des expériences récentes ont permis d’exécuter une partie du code Groovy à l’aide de la résolution statique de la méthode, ce qui, associé au support invokedynamic, devrait fournir d’énormes gains de performances.

Spring Roo et AribaWeb sont des exemples à vérifier en Java.

Mise à jour en fonction de qualifications supplémentaires

  

Évolutivité, productivité,   Documentation et ressources décentes   consommation

  • Évolutivité - vous obtenez la pile Java / Spring / Hibernate éprouvée, bien que je ne puisse pas dire que Grails en fournisse beaucoup lui-même.
  • Productivité - c’est la raison principale pour utiliser Grails. Vous avez une surcharge de performances, mais Grails est ce que vous utilisez lorsque le temps de développement / la productivité est plus important.
  • Documentation - Les documents Grails sont excellents et il y a au moins trois bons livres écrits uniquement sur Grails. La communauté est florissante et très utile.
  • Consommation des ressources - c’est le seul compromis. Grails (en partie à cause de la pile Java sous-jacente) nécessite beaucoup de ressources. Si je construisais quelque chose comme Google, Grails ne serait pas le choix. Cependant, dans toute application Web sophistiquée, vous feriez bien de choisir une solution de mise en cache, il en va de même ici.

Autres conseils

Stripes semble être assez léger et adopte la Convention sur la configuration.

Après avoir utilisé des jambes de force, un portillon, des rails & amp; Tapestry, je vous recommande de consulter Tapestry 5 .

Il prend en charge

  • dans le rechargement de la classe conteneur (vous n'avez donc pas à redémarrer votre application Web chaque fois que vous apportez une modification)
  • temps de développement rapide & amp; Productivité accrue - utilise un modèle à composants, avec câblage déclaratif
  • configuration minimale, la plupart du temps dans le code, convention sur config - etc ..
  • Aucune classe de base à étendre
  • Un langage d'expression à utiliser dans les fichiers de modèle
  • bon support ajax
  • excellent support de débogage, côté client et côté serveur
  • bonne intégration de l'accès aux données
  • une communauté active
  • écrit à partir de rien avec la performance à l'esprit. par exemple. mise en commun des pages (pour minimiser l'utilisation des ressources), compression des pages, élimination des espaces, tout le code dynamique est compilé en natif.
  • bon soutien de haricot et de forme - simplifiant les tâches courantes. Une base de données pouvant être triée peut être codée avec une seule ligne de code de modèle et un serveur minimal squelette.

le seul inconvénient est la documentation, qui est bonne, mais un peu laconique, bien que les groupes d'utilisateurs / listes de diffusion soient très actifs et que la plupart des questions reçoivent une réponse satisfaisante. vivement.

(Veillez également à ne regarder que le T5 - et non le T4,3,2,1 ..... car ils sont très différents de la version actuelle)

En savoir plus sur la raison pour laquelle ici .

Pensez à essayer Lift Framework . C'est vraiment génial.

Chaque fois que vous envisagez une pile d’applications (langage, framework, etc.), vous devez également prendre en compte ce que vous essayez de résoudre et le type de compétences en programmation dont vous disposez. J'ai constaté que les programmeurs Java plus expérimentés étaient très productifs avec les piles Groovy et Grails par rapport aux programmeurs plus juniors.

Vous avez mentionné les domaines suivants:

  • Evolutivité: en termes de quoi exactement? (pages vues / seconde, # transactions / seconde, etc ...) En général, Groovy & amp; Grails évoluera en ce qui concerne le rendu des pages. Cependant, comme pour toute pile d’applications utilisant ORM (dans le cas de Grails, vous avez GORM), vous devez tenir compte de la surcharge.
  • Productivité: l’un des principaux avantages ici: prototypage rapide, développement rapide, un jeu d'enfant avec Groovy & amp; Grails, bien qu’il soit utile de disposer de membres du personnel qui se sont développés à Java ou à Ruby pour comprendre ce que fait réellement le cadre Grails "à l’état de cache". Il existe une multitude de plug-ins pour l'interface utilisateur permettant de créer très rapidement des pages de type Web 2.0.
  • Documentation: de plus en plus d'ouvrages de référence sur la qualité sont écrits pour Groovy & amp; Grails. Les deux mûrissent très bien au cours des 2 dernières années. Les choses ne sont certainement pas très bien documentées en ce qui concerne la majeure partie du fonctionnement interne du framework Grails lorsque des erreurs / problèmes sont rencontrés (une grande partie des résultats du framework est obscure ou, au mieux, inexistante lorsqu'une erreur est rencontrée). Si vous êtes prêt à retrousser vos manches et à faire preuve d'ingéniosité pour parcourir les rouages ??internes, vous ne serez pas déçu de cette pile. Encore une fois, les programmeurs expérimentés trouveront cela comme une seconde nature, tandis que les plus jeunes pourront se lever parfois les mains de frustration.
  • Consommation de ressources: il y a une surcharge, mais avec la plupart du matériel trouvé aujourd'hui (local ou dans un nuage), je ne m'inquiéterais pas trop de la consommation de ressources physiques pour une instance d'application donnée.

J'espère que cela vous aidera.

Je ne connais pas le Play Framework, mais pour répondre à la deuxième question, Nous réalisons des projets avec le Webtoolkit de Google. Pourrait être intéressant de vérifier.
Bonne chance!

Que diriez-vous de JRoR

Je n'ai pas essayé moi-même, mais mes collèges aiment utiliser les bandes

Il existe un livre et tout le reste.

Spring Roo prétend être une solution.

J'ai réalisé un projet avec Grails et je l'ai trouvé très rapide pour certaines tâches, mais cela fait beaucoup de "magie". dans les coulisses qui rendent difficile le débogage.

De plus, je me suis retrouvé à relire sans cesse la documentation car je ne la sentais pas naturelle. Un exemple simple est le contrôleur où les actions sont définies en tant que champs (il est naturel pour moi de penser à une action en tant que méthode ...). Je peux dire quelque chose à propos de GORM où vous devez connaître certains mots particuliers qui, une fois placés dans des champs statiques, ont un effet magique, comme créer un champ transitoire ... Pas d’annotations, pas d’auto-complétion ... uniquement le manuel.

Quant à Play! Je l'ai trouvé incroyablement simple et rapide à développer, facile à apprendre et à mémoriser. La communauté semble plus petite que celle de Grail mais elle est plus active et plus rapide à répondre. Le seul inconvénient est qu'il ne s'appuie pas sur l'API de servlet, de sorte que certains filtres tiers ou d'autres éléments sont difficiles à intégrer mais pas impossibles. Il est important de noter que vous pouvez déployer une application Play sur n’importe quel serveur Web traditionnel et l’emballer comme une guerre.

À mon avis, Grails est formidable, mais pour être productif, vous devez posséder une grande expérience de ce logiciel. Sinon, vous perdrez beaucoup de temps avec les manuels. Donc, si ce n'est pas votre cas, je vous recommande de jouer! Spécialement si vous n'êtes pas familier avec Groovy

Je ne connais pas Play Framework, mais Spring MVC ou Struts réunis Hibernate offrira des fonctionnalités similaires.

Il existe de nombreuses autres options disponibles. En gros, vous avez besoin d'un framework MVC (Spring MVC, Struts, Wicket) et d'un outil ORM (Hibernate, iBatis). Bien entendu, vous devrez intégrer vous-même les composants nécessaires, mais cela a déjà été fait à maintes reprises et vous serez en mesure de trouver de nombreuses informations.

Je ne sais pas si Spring MVC et Hibernate offrent la même facilité d’utilisation que Ruby on Rails (en fait, c’est beaucoup plus compliqué ...). Play Framework ressemble beaucoup plus à Ruby on Rails, je pense, mais je ne l’ai pas fait moi-même et je n’ai regardé que le screencast et lu de la documentation à ce sujet; Mieux vaut essayer quelque chose comme Play au lieu de Spring MVC avec Hibernate. L'avantage de ce dernier est qu'il est très puissant et qu'il est capable de s'adapter à un modèle de données existant par exemple (d'après ce que je sais sur RoR, ce n'est pas très simple dans RoR). Un autre cadre que vous pourriez envisager est Groovy on Grails. Bien qu'il n'utilise pas Java (il utilise Groovy), il ressemble beaucoup à RoR. Il utilise Spring et Hibernate sous le capot (si je ne me trompe pas) et l’avantage de Groovy est que vous n’avez pas le typage statique strict de Java. Ruby on Rails et Django tirent largement parti de la nature dynamique du langage dans lequel il est implémenté, une fonctionnalité qui manque à Java en raison de son typage statique.

Edit: ah, vous avez déjà mentionné Grails dans votre question ...

Si Grails est une option (ce qui n’est en fait pas un java, mais un framework groovy), alors le Lift basé sur Scala un cadre serait également une option.

Une autre option est RIFE , qui essaie d'avoir la configuration minimale de RoR tout en restant en Java. Sur votre liste, seul Play Framework possède cette fonctionnalité, les autres sont sur la JVM, mais ne sont pas Java (si cela vous importe du tout).

Qu'en est-il de VRaptor ? - il utilise Spring comme conteneur DI et un moteur contrôleur / affichage similaire à Rails Action-Pack.

AribaWeb prend également en charge Groovy. Découvrez nos autres fonctionnalités sur http://aribaweb.org/ et découvrez notre approche en matière de rendre le développement web productif.

Nous utilisons intensivement le framework Stripes et cela fonctionne vraiment bien. C'est vraiment léger et cela vous oriente vers une conception propre de vos applications. En gros, il vous cache les parties ennuyeuses du développement, vous pouvez donc vous concentrer sur les choses amusantes (par exemple, le propriétés indexées ).

J'utilise http://www.ninjaframework.org/ pour les micro-services et autres est très proche de la plupart des paradigmes mvc, si vous utilisez rails, asp.net mvc ou nancyfx, vous êtes prêt à partir. C'est très proche de cette philosophie et vraiment génial et facile à tester. Seul inconvénient, il n’ya pas beaucoup de documentation, mais elle suit de près le modèle MVC. Il n'utilise rien de propriétaire dans le framework, il s'agit donc d'une solution purement basée sur Java. Donc, cela compense le manque de documentation.

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