JVM / CLR Quellkompatible Sprachoptionen

8

Ich habe ein Open-Source-Java-Datenbankmigrationstool ( Ссылка ), das ich in Betracht ziehe, auf .Net zu portieren.

Der Großteil des Tools (zumindest von einer Komplexitätsseite) ist um Logik wie "Wenn Sie einen Primärschlüssel hinzufügen und die Datenbank ist Oracle verwenden Sie diese SQL. Wenn Datenbank MySQL ist, verwenden Sie diese SQL. Wenn der Primärschlüssel ist benannt und die Datenbank ist Postgres verwenden diese SQL ".

Ich könnte die Java-Codebase abzweigen und verdecken (manuell und / oder automatisch), aber da Updates und Fehlerkorrekturen zu der obigen Logik kommen, möchte ich sie nicht auf beide Versionen anwenden müssen. Was ich tun möchte, ist, all diese Logik in eine Form zu bringen, die sowohl von Java- als auch von .Net-Versionen naiv kompiliert und verwendet werden kann.

Der Code, den ich konvertieren möchte, enthält keine erweiterte Bibliotheksbenutzung (JDBC, System.out usw.), die sich erheblich von Java zu .Net ändern würde, also glaube ich nicht, dass dies ein Problem sein wird (schlimmstenfalls es kann herum entworfen werden).

Ich suche also nach:

  • Eine Sprache, in der ich gängige Teile meiner App codieren und in Klassen kompilieren kann, die von den "Standard" -Sprachen auf der Zielplattform
  • verwendet werden können
  • Fügt dem System keine Laufzeitanforderungen hinzu
  • Nichts so seltsam, dass es potenzielle Mitwirkende ängstigt

Ich weiß, dass Python und Ruby beide Implementierungen für JVM und CLR haben. Wie gut passen sie zu meinen Anforderungen? Hat jemand diese Technik für plattformübergreifende Anwendungen erfolgreich (oder nicht erfolgreich) verwendet? Gibt es irgendwelche Probleme, über die ich mich Sorgen machen muss?

    
Nathan Voxland 01.05.2009, 17:59
quelle

3 Antworten

5

Schau dir die Fantom-Programmiersprache an. Es hat seine eigene Java-ähnliche / C # -ähnliche Syntax, kann aber entweder auf die Java VM oder auf die .NET CLR zielen.

Auf ihrer Seite "Why Fantom" finden Sie einen Überblick über den Ansatz der Portabilität im Vergleich zu dynamischen Sprachen auf einer VM.

    
Corbin March 01.05.2009, 18:04
quelle
1

Mit IKVM.NET können Sie etwas Glück haben. Ich bin mir nicht sicher über seinen genauen Status, aber es ist einen Versuch wert, wenn Sie darauf bestehen, Java-Code in .NET Framework auszuführen. Es enthält eine .NET-Implementierung der Java-Basisklassenbibliothek, so scheint es ziemlich vollständig.

Die einzige andere Möglichkeit, die ich vorschlagen könnte, ist die Portierung des Codes auf die J # Sprache, eine vollständige .NET-Sprache (obwohl nicht erste Klasse in dem Sinne, dass C # oder VB.NET ist). Die Sprache wurde so entworfen, dass die Unterschiede zu Java minimal waren.

    
Noldorin 01.05.2009 18:07
quelle
0

Wenn Sie über einen emdedded Ansatz nachdenken, könnten Sie sich Lua anschauen.

    
Dan Hatfield 03.05.2009 15:44
quelle