cryingcat schrieb:
Theoretisch! Nicht praktisch. Es ist eine pseudo Platformunabhängigkeit, da es keine offiziellen Runtimes seitens MS gibt und solange Mono noch nicht alles abdeckt kann man es nicht dazuzählen.
... Alle Standard .Net Funktionen werden eigentlich von Mono unterstützt. MS hat die Spezifikationen für die Kernbestandteile von .Net veröffentlich und standardisieren lassen, daher die weitestgehende Umsetzung in Mono!
cryingcat schrieb:
Das ist ehrlichgesagt ein sehr großer Nachteil in meinen Augen.
Die Wartbarkeit der Anwendung wird dadurch um ein vielfaches schwerer.
Stell dir mal vor ein Mitarbeiter entwickelt einen wichtigen Teil der Anwendung in einer Sprache, die du nicht kannst.
Was wenn dieser Mitarbeiter nichtmehr da ist?
Ich sehe das als sehr problematisch an. Und ich denke mal, das Anwendungen nur in einer Sprache implementiert werden.
Und? Genau aus diesem Grund werden große .Net Anwendungen (als Beispiel will ich mal DotNetNuke und Communityserver nennen) ausschließlich in einer Sprache entwickelt. Der Vorteil, dass jede Sprache verwendet werden kann, bleibt jedoch immernoch bestehen: Auch wenn ein Programmierer sich nun einer Anwendung in VB zuwenden muss, obwohl er bisher immer C# bevorzugt hat, braucht es nicht alzu viel Aufwand umzulernen, denn eigentlich hat sich nur die Syntax geändert und die zugrundeliegende Klassenbibliothek ist unverändert geblieben. Ohne .Net ist diese vollkommen verschieden und daher ist eine deutlich größere Einarbeitungszeit notwendig
cryingcat schrieb:
Klar sind Programmiersprachen nicht Platformabhängig. Du kannst natürlich auch die Sourcen eines C++ Programms nehmen und auf einer Win-Maschine kompilieren. Die Frage ist dann aber ob noch alles läuft. Kommt halt auf die Anwendung an.
Bei hardwarenaher Programmierung wirst du Probleme bekommen.
Normale Anwenungen dürften aber funktionieren.
U.a. aus diesem Grund wird auch von unmanaged Code wie z.B. Assembler abgeraten. Alles andere lässt sich ohne weiteres auf den meisten bestehenden Systemen umsetzen. Wie die Probleme dann tatsächlich im Hintergrund gelöst werden, kann dem Entwickler dann relativ egal sein. Bei heutigen System lohnt sich eine Optimierung der eigenen Anwendung durch unmanaged Code eigentlich nur noch bei Echtzeitanwendungen, aber diese sind so oder so schwer zu portieren, und somit ist auch die Portabilität wieder gegeben. Ausnahme wären die Windows-Forms, welche reine Windowsangelegeheit sind - ist jedoch auch kein Problem, denn wenn man platformübergreifende Programme erstellen will, wird man auf GTK oder etwas ähnliches zurückgreifen, aber auch an der Windowsforms Umsetzung zu mindest für Linux wird gearbeitet!
Aus obengenannten Gründen (und weiteren) betrachte ich .Net als einen riesen Schritt in die Zukunft und das sehe nicht nur ich so, sondern auch viele andere Programmierer (auch Anhänger der Opensource & Linux-Gemeinde) und Firmen: So hat z.B. Borland ihr Delphi auch .Net-fähig gemacht!
/edit: Langsam aber deutlich driften wir vom Thema ab