Question

Après avoir examiné chacun de ces deux projets, il semble que les deux soient TRÈS similaires. Les deux fonctionnent au-dessus de la CLI, les deux ont une syntaxe de style python et utilisent .NET au lieu des bibliothèques python standard.

Alors, quelles sont les différences entre eux et les avantages de chacun?

Était-ce utile?

La solution

La principale différence que je vois est que Boo est typé de manière statique, ce qui signifie que le type d'une variable est déduit lors de sa première affectation et qu'il est fixé à partir de là. comportement dynamique du code Python normal.

IronPython est maintenant officiellement maintenu par Microsoft et cible le nouveau Dynamic Language Runtime de la version 2.0. Je suppose qu'en raison de sa nature typée statiquement, Boo pourrait être plus rapide. Je n'ai pas beaucoup de "vrais" expérience avec cela si ...

IronPython réimplémente également une grande partie de la bibliothèque standard Python afin que vous puissiez exécuter de nombreux logiciels python sans modification sur IronPython (par exemple, Django ).

Autres conseils

Boo est typé de manière statique, mais comporte une saisie optionnelle de canard (ce qui fonctionne assez bien, selon mon expérience). Boo est également spécialement conçu pour être "convivial pour les poignets". - en d'autres termes, pour minimiser le besoin d'utiliser des combinaisons de touches Maj. Il dispose d’un bon support IDE dans SharpDevelop .

Comme il est évident, Boo s’inspire beaucoup de Python, mais est également conçu pour tirer pleinement parti des fonctionnalités .NET.

En ce qui concerne les performances, Boo se sent légèrement plus rapide qu’IronPython, et en particulier il manque le retard de démarrage perceptible d’IronPython.

Boo est encore un langage immature et manque de la communauté de Python. Personnellement, je serais un peu méfiant à l'idée de l'utiliser en production. De plus, je ne suis pas d'accord avec tous les écarts qu'il a faits avec Python, comme se débarrasser du soi explicite dans les classes.

Je n'ai pas encore utilisé IronPython, mais voici ce que je sais à propos de Boo ...

  • Boo a été inspiré par Python et présente de nombreuses similitudes syntaxiques. Pour connaître les différences, voir http://boo.codehaus.org/Gotchas+for+Python+Uthers+Users
  • Boo a été écrit spécifiquement pour le CLR
  • Il est typé de manière statique, ce qui présente plusieurs avantages
    • Il peut être compilé dans une DLL et référencé par des projets VB et C #
    • vous obtenez la complétion de code dans les IDE
  • Le langage lui-même s'il est extensible. Vous pouvez écrire des "macros syntaxiques". et réellement ajouter de nouveaux éléments à la langue. Cela en fait un bon candidat pour écrire des DSL.
  • Il n’est pas encore à 1.0, alors que IronPython l’est. La langue traverse toujours des douleurs de croissance, mais est toujours très utilisable.

J'ai utilisé Boo pour des choses comme:

  • Script des travaux planifiés. C'est une excellente alternative aux fichiers VBScript, BAT, surtout si vous accédez à des API .NET. Depuis lors, je suis principalement passé à Powershell, mais il est spécifique à l'OS et a une syntaxe plus lourde. J'utilise donc toujours Boo pour certaines choses.
  • Écriture des tests unitaires
  • Langage de script intégré

J'ai écrit des applications à la fois dans Boo et IronPython. Pour moi, IronPython a été le choix le plus robuste et une grande partie de ce que j'ai écrit dans les ports CPython sans modification. Tous les projets récents sont purement IronPython si ciblés pour .Net Framework.

Depuis que Jim "a fait défection" Microsoft, IronPython a été élevé au rang de langage de premier plan. Il y a même Visual Studio pour cela.

Je suis d'accord avec VolkA ici. Être capable de faire fonctionner Django est énorme. C'est un tel cadre incroyable, que Boo aura du mal à le refaire. Aujourd’hui, c’est davantage une question de cadre que de langage, plutôt que de construction. Et Boo n'apporte pas beaucoup d'amélioration par rapport à Python dans les constructions qu'il prend en charge.

À mon avis, la principale différence est que IronPython est une implémentation d'un langage mature - Boo est plus jeune et moins connu.

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