Frage

Ich bin gespannt, wie .NET Python und Ruby-Anwendungen auswirken wird.

Werden Anwendungen in Ironpython / IronRuby geschrieben auf die .NET-Umgebung so spezifisch sein, dass sie im Wesentlichen spezifisch worden Plattform?

Wenn sie eine der .NET-Funktionen nicht verwenden, was ist dann der Vorteil von Ironpython / IronRuby über ihre nicht .NET Pendants?

War es hilfreich?

Lösung

Ich kann nichts über IronRuby sagen, aber die meisten Python-Implementierungen (wie Ironpython, Jython und PyPy) versuchen, so getreu die CPython Umsetzung wie möglich zu sein. Ironpython ist schnell zu einem der besten obwohl in dieser Hinsicht immer, und es gibt viel Verkehr auf dem Planeten Python über sie.

Die Hauptsache ist, die Entwickler ermutigen, Code zu schreiben, der anders ist von dem, was sie in CPython ist der Mangel an C Erweiterungsmodule wie NumPy schreiben würden (Dies ist ein Problem in Jython und PyPy als auch).

Ein interessantes Projekt auf dem Auge zu behalten ist IronClad, die Sie Rufmodule C-Erweiterung aus Ironpython lassen. Dies sollte schließlich bedeuten, dass Sie Code unter CPython entwickeln können, was auch immer Module, die Sie mögen, und es wird auf Ironpython unmodifizierten ausgeführt werden.

http://www.resolversystems.com/documentation/index.php/Ironclad

So Ihre Fragen zu beantworten:

Es sollte einfach genug sein, Ironpython-Anwendungen zu schreiben, die auch auf CPython arbeiten, aber ich würde darauf abzielen, wahrscheinlich in die andere Richtung zu gehen um: CPython Programme, die auch auf Ironpython arbeiten. Auf diese Weise, wenn es nicht funktioniert, dann ist es wahrscheinlicher, ein bekannter Fehler mit einer bekannten Behelfslösung sein.

Der Vorteil von Ironpython et al vorhandene ist, dass sie alternative Implementierungen der Sprache bereitzustellen, die für das Auffinden Bugs in CPython manchmal nützlich ist. Sie bieten auch alternative Methoden für Ihre Python-Anwendungen bereitstellen, wenn aus irgendeinem Grund Sie sich in einer Situation befinden (wie Silverlight), wo die Verteilung der CPython Implementierung mit Ihrer Anwendung nicht geeignet ist.

Andere Tipps

  

Wird in Ironpython / IronRuby sein, so spezifisch für die .NET-Umgebung geschrieben Anwendungen, dass sie plattformspezifische Wesentlichen werden?

IronRuby derzeit Schiffe mit den meisten der Kern Rubin Standardbibliothek und die Unterstützung für Rubin Edelsteine.

Das bedeutet, dass es so ziemlich jeden einheimischen Rubin App unterstützt, die nicht auf C-Erweiterungen angewiesen ist.
Die Kehrseite ist, dass es möglich sein wird, nativer Rubin apps in IronRuby zu schreiben, die auf der CLR nicht verlassen, und diejenigen, werden tragbar sein MRI.

Ob Menschen wählen Erweiterungen für ihre Anwendungen zu erstellen oder verwenden, um die CLR verwenden, ist die gleiche Frage, ob Menschen zu schaffen oder die Verwendung C-Erweiterungen für die MRT -. Man ist nicht mehr tragbar als die anderen

Es gibt eine Nebenfrage ", weil es so viel einfacher ist, IronRuby Erweiterungen in C # zu erstellen, als es CRuby Erweiterungen in C zu erstellen ist, werden die Menschen Erweiterungen schaffen, in dem sie auf native Ruby-Code kleben sollten? „, aber das ist völlig subjektiv.

Im Großen und Ganzen aber, glaube ich, etwas, das Erweiterungen einfacher ist, ein großer Gewinn macht das Erstellen.


  

Wenn sie nicht über eine der .NET-Funktionen verwenden, was ist dann der Vorteil von Ironpython / IronRuby über ihre nicht .NET Pendants?

  1. Performance: IronRuby ist bereits schneller zum größten Teil als MRI 1,8 und ist nicht weit von MRT 1,9, und die Dinge werden nur in Zukunft verbessern. Ich denke, Python in dieser Hinsicht ähnlich ist.

  2. Bereitstellung: Da die Menschen erwähnten, Schienen eine native Rubin Cross-Plattform läuft App innerhalb IIS ist ein attraktives Angebot für einige Windows-basierten Entwickler, wie es sich besser kann mit dem bestehenden Servern / Management-Infrastruktur / etc integrieren

  3. Stabilität:. Während MRT 1.9 ist viel besser als 1,8 war, ich glaube nicht, dass jemand könnte nicht einverstanden, dass CLR eine viel bessere Garbage Collector und Basislaufzeit als C Rubin hat funktioniert

Ironpython / IronRuby gebaut auf der .net virtuelle Maschine zu arbeiten, so dass sie wie sagen Sie im Wesentlichen plattformspezifisch.

Anscheinend sind sie kompatibel mit Python und Ruby, solange Sie eine der .net Framework in Ihren Programmen nicht verwenden.

Wenn Sie eine Bibliothek oder Rahmen schaffen, können die Menschen es mit ihrem .NET-Code auf .NET verwenden. Das ist ziemlich cool für sie und für Sie!

Wenn Sie eine Anwendung entwickeln, wenn man mit Leib und Seele .NET-Einrichtungen verwenden, dann verlieren, „cross-platformity“, was nicht immer ein Problem.

Wenn Sie diese Anwendungen mit einem internen API wickeln, können Sie die .NET-Implementierungen später mit pure-Python, wickelt C (für CPython) ersetzen, oder Java (für Jython) später.

Nach der Mono-Seite, Ironpython ist kompatibel mit Mono-Implementierung der .NET-Laufzeit, also ausführbare Dateien sollten sowohl unter Windows und Linux.

Sie beantworten Ihre erste Frage mit dem zweiten, wenn Sie etwas von .Net nicht nur verwenden, um den Original-Libs durch die Implementierung der Sprache zur Verfügung gestellt, könnten Sie Ihre * .py oder * .rb Datei mit einer anderen Implementierung interpretieren und es sollte funktionieren.

Der Vorteil wäre, wenn Ihr ein .Net-Shop Sie in der Regel den richtigen Rahmen achten auf den Client-Rechner installiert zu haben etc ... gut, wenn Sie Python oder Ruby-Code wollen, müssen Sie jetzt einen anderen „Rahmen“ müssen, um unterstützen, verteilen installieren, kümmern sich um Version Problem etc ... so gibt zwei Vorteile, indem NET Framework Macht in einer anderen Sprache + halten die Verteilung / Wartung so einfach wie möglich.

Es wäre cool, Rails / Django unter IIS eher dann Apache / Mischlingstyp Lösungen

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