Also das Thema hatte ich schon mehrfach viele Diskussionen zu (Ist aber schon länger her, war damals in den MSDN Foren):
Diese ganzen Konverter sind in meinen Augen nicht gut. Der Kommerzielle mag evtl. eher gehen, aber generell würde ich von der Nutzung solcher Konverter abraten.
Java und .Net lösen diverse Dinge schlicht anders. Es mag funktionieren, dass man da einiges 1:1 konvertiert und dann hat man von mir aus irgendwelche externen Libraries wie log4net statt log4j und so.
Aber:
- Entweder man hat einfachen Code. Da mag die Übersetzung gut klappen, aber der Sinn erschließt sich mir nicht wirklich, denn wozu ein "Hello World" Programm konvertieren?
- Oder man hat eine komplexe Anwendung. Da kommt dann sehr viel rein wie z.B. Unit Tests und co. Das soll dann ja auch alles einwandfrei im Visual Studio funktionieren und und und ... Da sollte man sich dann genau anschauen, was .Net hier z.B. alles bietet und wie dies verwendet wird. Da kommen dann durchaus Unterschiede zum tragen!
Und natürlich gibt es Fallstricke. Der größte Fallstrick ist aus meiner Sicht Disposable:
Java ist doch alles in der JVM, alles ist Managed. Bei .Net ist dies nicht mehr der Fall. Man hat nur noch eine Art Managed Ebene. Das bedeutet, dass hinter dem Managed Code auch unmanaged Dinge liegen können. Da ist also deutlich mehr Wert drauf zu legen, ansonsten kann man da ganz schön in Probleme rennen (Ich spreche da aus leidiger Erfahrung....)
Daher ist meine Einschätzung, dass so Konverter nichts taugen. Ich glaube nicht, dass es weniger Arbeit ist, das manuell zu konvertieren und dabei direkt zu prüfen/testen als etwas zu kopieren und dann das Resultat zu testen. (Selbst die Java -> Kotlin Konvertierung ist schon problematisch und da basiert alles auf der gleichen Grundlage, da JVM und Framework gleich sind.)
(Ich selbst habe auch schon viel Code von einer Sprache zur anderen übernommen. In beide Richtungen. Aber das war dann immer eine manuelle Konvertierung bei der ich dann teilweise mich am vorhandenen Code entlang "gehangelt" habe. Aber mit vielen manuellen Anpassungen....)