Wir werden ein neues Projekt starten, bei dem alle .net-Entwickler in Java (Frameworks / ECO-System usw.) geschult werden. Wir haben viel Code in C # geschrieben und es scheint, dass all dies verschwendet wird, da wir alles in Java neu schreiben müssen. Das Problem, das ich sehe, ist, dass wir im ersten Jahr oder so (wahrscheinlich 2 Jahre) nichts zu liefern haben werden, da wir die meiste Zeit damit verbringen werden, das zu reproduzieren, was wir vorher hatten, aber jetzt in Java.
Da unser Team in verschiedenen Niederlassungen auf der ganzen Welt verteilt ist und wir eine große Anzahl von Java-Entwicklern (20 bis 30) und 10 Entwicklern haben, die .net verwenden, möchten wir, dass alle Entwickler dieselbe Sprache / Plattform verwenden, damit wir beginnen können Komponenten / Module wiederverwenden. So kann ich den Standpunkt des Managements verstehen.
Gestern bin ich auf Scala gestoßen und habe mich gefragt, ob es besser wäre, dies mit dem aktuellen Produkt (das in C # geschrieben ist) zu verwenden, und dann werden wir in einem Jahr zumindest ein funktionierendes Produkt haben. Außerdem haben wir in einem Jahr Module, die in der Java-Welt verwendet werden können, während wir andere Teile des Produkts migrieren.
Wäre Scala eine bessere Wahl als Java, wenn man bedenkt, was wir erreichen wollen?
Antworten:
Einige Punkte zu beachten:
In Anbetracht dessen möchten Sie möglicherweise Ihre Wetten absichern und sich für eine gemischte Java / Scala-Strategie entscheiden - dh auf die JVM-Plattform migrieren und sich zunächst auf Java konzentrieren. Lassen Sie jedoch die Option offen, Scala zu verwenden, wenn Ihre Entwickler sich wohl fühlen und / oder es passt zum vorliegenden Problem.
Aus Managementsicht hat dies viele Vorteile:
Der Nachteil ist, dass Sie noch zwei Hauptsprachen unterstützen müssen. Aber Sie haben wahrscheinlich bereits viel mehr als nur zwei (Shell-Skripte? Domänenspezifische XML-Formate? Konfigurationsdateien? Regel-Engines? HTML? Javascript?), So dass Sie argumentieren könnten, dass es eigentlich keine so große Sache ist.
quelle
Ich werde eine dritte Option hinzufügen. Hat sich jemand in Ihrer Organisation mit der Interop zwischen Ihren C # - und Java-Modulen befasst? Wie stellen Sie die C # -Funktionalität bereit? Sind SOAP- oder RESTFul-Webdienste eine Option?
Ein 2-jähriges Umschreiben kann für eine Organisation ein Todesstoß sein (fragen Sie einfach Netscape). Eine schrittweise Migration, während vorhandener Code gut miteinander spielt, hat jedoch möglicherweise weniger geschäftliche Auswirkungen.
quelle
Das Umschreiben von C # in Scala ist genauso schwierig wie das Umschreiben in Java. Welche Sprache "besser" ist, dieser Punkt ist strittig, jede Sprache hat ihre eigenen Plus- und Minuspunkte.
Ich weiß nicht, wie groß Ihre Codebasis ist, aber 2 Jahre für 30 Entwickler scheinen für ein einfaches Umschreiben riesig zu sein. Java zu erlernen, wenn Sie C # kennen, ist einfach. Ich brauchte ein oder zwei Tage, um mich damit vertraut zu machen.
Mein Rat wäre, das Management ihren Weg finden zu lassen und die Tatsache zu genießen, dass Sie dafür bezahlt werden, Ihre Fähigkeiten zu erweitern.
quelle
Ich denke, die einfachere Option wäre, die Java-Entwickler dazu zu bringen, C # zu lernen. Beide Sprachen sind sich in vielerlei Hinsicht sehr ähnlich und es dauert nicht lange, bis ein Java-Entwickler C # gelernt hat. Ich habe mit vielen Java-Entwicklern zusammengearbeitet, die C # gelernt haben, und es ist normalerweise ein reibungsloser Übergang. Der einzige Bereich, in dem sie für eine Weile stecken bleiben könnten, ist das WebForms-Programmiermodell. Java-Entwickler passen sich besser an das MVC-Paradigma an. Auf diese Weise müssen Sie nicht ein Jahr warten, bevor Sie mit der Entwicklung neuer Funktionen beginnen. In Bezug auf Scala befürchte ich, dass dies ein völlig neues Problem für alle 30 Entwickler mit sich bringen wird, die versuchen, eine neue Sprache zu lernen.
quelle