Frage

Nach dem an jedem dieser beiden Projekte angesehen haben, scheint es, dass beide sehr ähnlich sind. Sowohl auf dem CLI laufen, beide Python-Stil Syntax haben, verwenden beide .NET anstelle der Standard-Python-Bibliotheken.

Also, was sind die Unterschiede zwischen ihnen und Vorteile der einzelnen?

War es hilfreich?

Lösung

Der Hauptunterschied wie ich es sehe, ist, dass Boo statisch typisiert ist, den Typ einer Variablen Bedeutung auf seine erste Aufgabe wird abgeleitet und wird von dort fixiert -. Während Iron die „reale“ dynamische Verhalten von normalen Python-Code hat

Ironpython ist offiziell von Microsoft erhält jetzt und zielt auf die neue Dynamic Language Runtime in der Version 2.0. Ich vermute, weil es statisch typisierte Natur Boo schneller sein könnte. Ich habe nicht viel „echte“ Erfahrung mit, dass, obwohl ...

Iron reimplementiert auch viele der Python-Standard-Bibliothek, so dass Sie viele Python Software ohne Änderung auf Ironpython (zB Django ).

Andere Tipps

Boo ist statisch typisiert, hat aber optional Ente eingeben (die ziemlich gut, in meiner Erfahrung funktioniert). in anderen Worten, die Notwendigkeit zu minimieren Shift-Taste Kombinationen verwenden - Boo ist auch speziell auf seine „wrist freundlich“ gestaltet. Es hat eine gute IDE-Unterstützung in SharpDevelop .

Wie ziemlich offensichtlich ist, nimmt Boo eine Menge Inspiration aus Python, ist aber auch gut nutzen .NET-Funktionen nutzen entworfen.

Performance-weise, Boo fühlt sich geringfügig schneller als Ironpython, insbesondere fehlt die spürbare Startverzögerung von Ironpython.

Boo ist noch eine unreife Sprache, und es fehlt die Gemeinschaft von Python. Ich würde persönlich ein bisschen vorsichtig sein, um es in der Produktion verwendet wird. Auch ich nicht mit allen Abfahrten einig, dass es aus Python, wie loszuwerden expliziten Selbst in Klassen gemacht hat.

Ich habe nicht noch verwendet Ironpython, aber hier ist, was ich über Boo wissen ...

  • Boo wurde von Python inspiriert und hat viele Ähnlichkeiten Syntatic. Für Unterschiede finden Sie unter http://boo.codehaus.org/Gotchas+for+Python+Users
  • Boo wurde speziell für die CLR
  • geschrieben
  • Es ist statisch typisiert, was mehrere Vorteile hat
    • Es kann auf eine DLL und referenziert von VB und C # -Projekten kompiliert werden
    • Sie erhalten Code-Completion in IDEs
  • Die Sprache selbst wenn erweiterbar. Sie können „syntaktischen Makros“ schreiben und tatsächlich neue Elemente in die Sprache hinzuzufügen. Dies macht es einen guten Kandidaten für DSLs zu schreiben.
  • Es ist noch nicht bei 1,0 noch, während Ironpython ist. Die Sprache ist immer noch durch Wachstumsschmerzen, aber es ist immer noch sehr brauchbar.

Ich habe Boo für Dinge verwendet wie:

  • Scripting geplante Aufträge. Es ist eine großartige Alternative zu VBScript, BAT-Dateien, vor allem, wenn .NET APIs zugreifen. Seitdem wechselte ich meist zu Powershell, aber es ist OS-spezifische und hat eine schwerere Syntax, so dass ich Boo noch einige Dinge verwenden.
  • Schreiben von Unit-Tests
  • Eingebettete Skriptsprache

Ich habe schriftliche Anträge in beiden Boo und Ironpython. Für mich war Iron die robustere Wahl und vieles von dem, was ich in CPython Ports ohne Änderungen geschrieben habe. Alle bisherigen Projekte waren reine Ironpython gezielt wenn für .Net Framework.

Da Jim „abtrünnig“ zu Microsoft hat Ironpython zu einer Top-Tier-Sprache erhoben worden. Es gibt sogar Visual Studio für es.

Ich bin damit einverstanden hier mit Volka. Die Möglichkeit, Django zu laufen ist groß. Es ist nur ein so erstaunlicher Rahmen, dass Boo eine harte Zeit redoing es haben wird. Heute ist es eher eine Frage der Rahmenbedingungen, die eine Sprache bietet, als es das Konstrukt ist, die es bietet. Und Boo bietet nicht viele Verbesserungen gegenüber Python in den Konstrukten unterstützen.

Der wesentliche Unterschied, meiner Meinung nach ist, dass Ironpython ist eine Implementierung einer reifen Sprache - während Boo ist jünger und weniger bekannt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top