2010-09-13 10 views
20

Est-ce que quelqu'un a utilisé à la fois Boson et Thor? Thor est très populaire et a plus de suiveurs et de contributeurs que Boson, mais Boson semble beaucoup plus puissant que Thor et l'architecture est très bien pensée.Boson vs Thor pour les applications console

En Boson vous:

  • peuvent ajouter des méthodes qui sont utilisées à la fois dans la console et l'environnement rubis. Donc, vous n'avez pas à avoir les deux Thorfiles pour la console et les gemmes pour ruby.
  • peut avoir des alias.
  • ne pas avoir à installer vos fichiers de script, vous venez de les mettre dans ~/.boson/commandes. Je dois toujours lutter avec la désinstallation et l'installation de Thorfiles après chaque mise à jour (ce qui pourrait être chaque minute lors de l'édition du code source, très frustrant).
  • ont beaucoup plus de commandes de sortie que thor.
  • ne pas avoir à écrire les descriptions des arguments à la main comme dans Thor.
  • Travailler avec des modules, ce qui est mieux qu'avec les classes car vous pouvez inclure des modules dans d'autres modules.
  • Enveloppez automatiquement les extraits de code source (par exemple depuis Gist) à l'intérieur d'un module et cela fonctionne immédiatement avec Boson.
  • ont des vues différentes pour les résultats de votre méthode.
  • ne pas avoir à recoder quoi que ce soit dans vos extraits pour s'adapter à Thor, car il n'utilise que du code rubis natif (modules). Cela signifie que si vous ne voulez pas utiliser Boson un jour, vous n'avez pas à tout recoder, ce que vous devez faire si vous utilisez Thor.
  • Le API est mieux documenté - comme des tutoriels dans chaque classe.
  • Vous pouvez simplement inclure les modules "boson" dans votre script ruby ​​et les utiliser directement, quelque chose que je ne peux pas avec Thor, parce que c'est seulement pour Thor. Vous ne pouvez pas partager les méthodes Thor avec d'autres classes Thor (pas comme mixins)

J'ai remarqué tous ces avantages en lisant la documentation et en jouant avec Boson pendant quelques minutes. Dois-je utiliser Thor simplement parce qu'il est plus populaire (parce que je ne trouve rien d'autre où il brille sur boson) ou dois-je prendre le risque que Boson puisse être maintenu après un certain temps, puisque l'auteur est le seul contributeur ?

Bien que ce soit juste un gars, vous voyez comment il a réussi à coder à une vitesse rapide et avec une qualité exceptionnelle. Ce serait génial si plus de contributeurs comme lui contribuaient à cette bibliothèque. J'espère vraiment que plus de rubyists vont l'utiliser car il a beaucoup de potentiel pour être le framework de script pour toute l'automatisation du système. Comme un Rails pour le backend. Et l'auteur vous aide vraiment très rapidement lorsque vous déposez un problème. Thor ne travaille que pour le shell (ce que je suppose être son but) alors que boson comme je le vois a 3 fonctionnalités principales. Il vous permet d'avoir du code travaillant dans le shell, en ruby ​​(irb et scripts) et vous pouvez avoir de belles collections de tous vos codes Ruby, sans modifications.

J'ai toujours voulu qu'un cadre soit mon framework de script backend, et maintenant je n'ai pas besoin de réinventer la roue. Il semble que Boson pourrait l'être.

Est-ce que quelqu'un a utilisé ces deux bibliothèques et pourrait partager quelques réflexions?

Répondre

26

Avis de non-responsabilité: Je suis l'auteur de boson.

J'ai utilisé les deux et thor était ce qui m'a inspiré pour écrire boson. Alors que les deux ont des fonctionnalités qui se chevauchent, je les vois comme ayant des objectifs différents. Thor est un framework de script qui donne aux applications une interface en ligne de commande. The 116 gems (including rails) qui en dépendent sont une bonne preuve de cela. Au début, j'ai essayé d'utiliser thor pour gérer et utiliser des extraits, mais après un certain temps, l'espacement forcé, l'absence d'aliasing, l'écriture de lignes d'utilisation redondantes et la mauvaise recherche m'ont fait réaliser que le gestionnaire n'était pas optimisé pour gérer les snippets. J'ai donc écrit boson pour gérer le nombre infini d'extraits de ruby ​​que j'avais l'habitude de mettre dans ~/bin with this philosophy in mind. At 400+ commands, je suis capable de trouver instantanément et d'utiliser n'importe quel extrait de ruby ​​comme un exécutable à part entière. Il y a trop de fonctionnalités à parcourir ici, même si vous semblez connaître certaines des forces de Boson. Quant à être le seul contributeur, j'invite toute personne à apporter ses idées. S'il y avait une simple comparaison à faire entre les deux, je dirais que thor est centré sur la création d'exécutables pour les projets et les applications alors que boson est centré sur la création pour les utilisateurs.

+0

Bon compariosn. Je suis impatient de contribuer à ce projet à plein temps car il est centré le long de l'utilisateur. J'ai beaucoup de snippets que je veux utiliser directement dans le shell/console au lieu de copier et coller. –

+0

réponse étonnamment non-conflit d'intérêt d'un auteur. –

+1

Mise à jour: boson> = 1.0 a également un support similaire à celui des exécutables d'applications. Exemple dans [le readme] (https://github.com/cldwalker/boson#example-executable). Une comparaison de caractéristiques avec thor est [aussi dans le readme] (https://github.com/cldwalker/boson#comparison-to-thor) – cldwalker