Die Schließungen von NET sind bei vielen Entwicklern beliebt und Java scheint sie bald zu implementieren. Natürlich handelt es sich hierbei um eine Sprachfunktion, nicht um eine Laufzeitfunktion. Ich denke, für welche der beiden Möglichkeiten Sie sich letztendlich entscheiden, hängt von Ihren persönlichen Vorlieben und den Karrieremöglichkeiten vor Ort ab. Die Abschlussfunktionen von .NET sind bei vielen Entwicklern beliebt und Java scheint sie bald zu implementieren. Natürlich handelt es sich hierbei um eine Sprachfunktion, nicht um eine Laufzeitfunktion. Ich denke, für welche der beiden Möglichkeiten Sie sich letztendlich entscheiden, hängt von Ihren persönlichen Vorlieben und den Karrieremöglichkeiten vor Ort ab.
1.Was passiert, wenn Java SE 7 auf .NET CLR trifft?
Wie Sie der Funktionsliste von Java SE 7 entnehmen können, wurden im Vergleich zu früheren Versionen erhebliche Verbesserungen vorgenommen. Ist es also ein Game Changer? In den letzten Jahren gab es zahlreiche Verbesserungen sowohl an der JVM als auch an der .NET CLR. Viele Dinge, die in der Vergangenheit nur von sehr erfahrenen Programmierern durchgeführt werden konnten, liegen dank der Verbesserungen in der JVM nun in der Hand von normalen Programmierern und die .NET CLR.
Obwohl die JVM und die .NET CLR nicht gleichzeitig dieselbe Idee umgesetzt haben, wird die andere Seite schnell weitermachen, wenn eine gute Idee auftaucht. Dies spiegelt sich nicht nur auf der Laufzeitebene wider. Beispielsweise startete .NET für Java schnell auch NHibernate, nachdem das Hibernate-Projekt großen Erfolg hatte. Die Abschlussfunktionen von .NET erfreuen sich bei vielen Entwicklern großer Beliebtheit und Java scheint sie bald zu implementieren. Natürlich handelt es sich hierbei um eine Sprachfunktion, nicht um eine Laufzeitfunktion.
.NET-Abschlüsse sind ein Hit, und Java wird bald nachziehen
2. Wird in absehbarer Zeit eine Laufzeit die andere völlig besiegen?
Obwohl die JVM und die .NET CLR auf technischer Ebene sehr ähnlich sind, haben sie jeweils ihren eigenen Markt und keine von beiden ist sehr flexibel. Wenn man seine Infrastruktur rund um den .NET-Server und IIS aufgebaut hat, gibt es keine Möglichkeit, am nächsten Tag alles auf Java zu migrieren und umgekehrt. Auch wenn ein Unternehmen beschließt, seine Entwicklungsplattform zu wechseln, muss es möglicherweise sein gesamtes Entwicklungsteam ersetzen oder es von Grund auf schulen. Auch nach Abschluss der Ausbildung bestehen immer noch gravierende Kompetenzmängel; schließlich ist es für einen leitenden .NET-Entwickler unmöglich, nach 3 Monaten Ausbildung plötzlich ein leitender Java-Entwickler zu werden.
Darüber hinaus muss das Unternehmen vorhandenes technisches Personal behalten, um den vorhandenen Code zu pflegen. Glauben Sie, dass diese Mitarbeiter zusehen werden, wie ihre Positionen gestrichen werden oder dass ihre Fähigkeiten nutzlos oder entwertet werden? Für ein Unternehmen ist der komplette Umstieg von Java auf .NET bzw. der komplette Umstieg von .NET auf Java ein Selbstmordakt. Allenfalls werden die Mitarbeiter durch ein mehrjähriges Projekt umgeschult. Die Migration von VB6 zu .NET hat seit der Veröffentlichung von .NET 8 Jahre gedauert.
Die Transformation von Programmierern und Projekten braucht Zeit
3. Sind die Kosten für die Java-Entwicklung wirtschaftlicher als für die .NET-Entwicklung? Wenn ja, werden sich die Leute für Java entscheiden, um Investitionen zu sparen?
Wenn Sie sich nur die Tools ansehen, lautet meine Antwort „sowohl richtig als auch falsch“. Tatsächlich können Sie Java auf einem vollständig Open-Source-Paket ausführen, wenn Sie möchten. Sie können eine Linux/Tomcat/MySQL/Java-Kombination verwenden oder eine SpringSource-Kombination auf der Serverseite und Eclipse oder NetBeans auf dem Computer des Entwicklers verwenden. Aber es ist wichtig darauf hinzuweisen, dass Sie aus irgendeinem Grund kein großer Fan von Open-Source-Alternativen sein werden, und ich sage nicht, dass die Alternativen schlecht sind, wenn das der Fall ist, der Preis der Java-Tools im Vergleich zu den .NET-Tools Ziemlich und in vielen Fällen sogar teurer. Und wenn man sich ansieht, was Unternehmen wie Oracle und IBM tun, wird deutlich, dass viele Unternehmen das Bedürfnis verspüren, für proprietäre Java-Tools zu zahlen. Preislich gesehen ist Microsoft fast immer der Unternehmensanbieter mit dem niedrigsten Preis in einem bestimmten Marktsegment.
Darüber hinaus müssen Sie berücksichtigen, wie viel Geld das Unternehmen einsparen würde, wenn keine Umstellungskosten anfallen würden. Die Kosten für eine Kopie von Visual Studio liegen weit unter dem wöchentlichen Gehalt und der Versicherungsprämie eines Entwicklers mit mittlerem Einkommen. Darüber hinaus dauert es viel länger als eine Woche, bis derselbe Entwickler Java erlernt und das Niveau erreicht hat, auf dem er gut in .NET ist.
Fairerweise muss man sagen, dass diese Analyse auch für den Umstieg von Java auf .NET gilt. Verglichen mit den Schmerzen, die ein Plattformwechsel mit sich bringt, sind die Kosten für Entwicklungstools wirklich vernachlässigbar. Natürlich gibt es zwei Ausnahmen. Die erste Situation besteht darin, ein neues Unternehmen zu gründen, sodass kein Problem mit den Migrationskosten besteht. In diesem Fall hat Java immer noch keinen Kostenvorteil, da Microsoft auch eine kostenlose Version von Visual Studio (Express-Version) auf den Markt gebracht hat, und wenn Ihr Unternehmen ein neues Unternehmen ist, können Sie es über den BizSpark drei Jahre lang kostenlos erhalten Planen Sie MSDN und Microsoft-Lizenzen, sie sind nicht schlecht. Eine weitere Ausnahme bilden Unternehmen mit einem sehr hohen Server-zu-Entwickler-Verhältnis wie Google oder Yahoo. In solchen Unternehmen arbeiten möglicherweise viele Entwickler an einer Anwendung, die auf Tausenden von Servern ausgeführt wird. In diesem Fall sind nicht die Entwicklertools der Hauptfaktor für Kosteneinsparungen, sondern der Platz auf dem Server. Für Unternehmen, die sich in dieser Situation befinden, kann Java (und andere Open-Source-Technologien) einen entscheidenden Kostenvorteil haben.
4. Wie viel Skriptsprache muss ein Java-Entwickler beherrschen, um in .NET effizient zu arbeiten?
Erstens: Arbeiten Sie in der Webentwicklung? Wenn ja, möchten Sie vielleicht etwas JavaScript kennen und sich mit den entsprechenden Frameworks vertraut machen. Für Backend-Arbeiten sind Kenntnisse einer dynamischen Sprache oder einer Skriptsprache nicht zwingend erforderlich. Dennoch gibt es im Java-Bereich viele gute Möglichkeiten für diesen Zweck. Für jemanden, der derzeit kein Java-Entwickler ist: Ich habe keine nennenswerte Erfahrung in diesem Bereich, aber ich habe viele gute Rezensionen über Groovy und Scala gehört. Wenn Sie sich für einige der gängigeren Technologien entscheiden möchten, sind JRuby und Jython eine gute Wahl.
Es gibt verschiedene Möglichkeiten, die Leistung von Java-Anwendungen zu verbessern
In den letzten Jahren hat die JVM damit begonnen, Nicht-Java-Sprachen in großer Zahl zu unterstützen, und Entwickler haben jetzt viele Möglichkeiten. Das Erlernen einer davon wird Ihnen auf jeden Fall dabei helfen, ein besserer Entwickler zu werden (auch wenn Sie sie nicht in tatsächlichen Produktionsprojekten verwenden) und kann Ihnen eine alternative Richtung bieten, wenn Ihr Projekt stecken bleibt.
Wird Java .NET ersetzen? Es ist noch zu früh, das zu sagen. Gleichzeitig wird .NET Java nicht töten. Beide haben ihre eigenen Vor- und Nachteile. Ich denke, für welche der beiden Möglichkeiten Sie sich letztendlich entscheiden, hängt von Ihren persönlichen Vorlieben und den Karrieremöglichkeiten vor Ort ab.