Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#5

AW: Plattformunabhängig programmieren

  Alt 14. Jan 2011, 19:57
Es wurde schon erwähnt: Mono - also analog zu .NET.

Schau Dir allein mal MonoDevelop an: Es ist eine IDE und damit nicht gerade ein Leichtgewicht an GUI-Software. Die Oberfläche ist mit Gtk# entworfen und läuft stabil und gut zu bedienen auf Windows, dem Mac und Linux. Oberflächen-Design mit Gtk ist zwar doch etwas unterschiedlich von Delphi, aber bei weitem nicht so ein pain wie bei Java.

Bei RemObjects haben wir auch einen internen Bugtracker, der für Mac und Windows mit Gtk# geschrieben ist, und die gleichen Libraries laufen auch im iPad/iPhone Client. Wo wir beim nächsten Bereich sind: Das .NET auf dem Windows Phone läuft ist ja selbstverständlich. Mit MonoDroid bzw. MonoTouch kann man für Android und iOS entwickeln. Allerdings betreten wir hier dann tatsächlich einen kostenpflichtigen Bereich.

Das schöne an .NET/Mono ist auch, dass man hier in der Wahl der Sprache recht frei ist. Klar, C# ist der Favorit, aber wenn Du Delphi magst ist Prism da (auf Mac und PC - Entwicklung auf Linux ist in der Mache, wird aber nicht so wirklich nachgefragt. Hauptsache das Kompilat läuft da.). Und dann gibt es natürlich noch zig andere Sprachen in einer .NET Fassung wie z.B. auch IronPython, was Deinen Python-Code den Du erwähntest auch auf der gleichen Plattform laufen lässt - bei Bedarf sogar innerhalb der restlichen Anwendungen.

Ein weiterer massiver Vorteil: Der C# Compiler in Mono und die Runtime unterliegen der MIT/X11 Lizenz. Das heisst im Prinzip: Jeder darf alles damit machen, sogar in closed-Source Software einsetzen und unter eine andere Lizenz stellen und verkaufen. Es gibt eine Einschränkung für embedded Systeme, die dem Nutzer nicht die Möglichkeit lassen die Mono runtime upzudaten wenn er will, sowie wenn man die Mono runtime statisch linkt (also für den User nicht austauschbar/updatebar macht). Für diese Fälle gibt es aber auch auf Anfrage Lizenzen.
MonoDevelop steht unter GPL, aber das sollte kein Beinbruch sein.

Java untersteht hingegen einer nicht freien Lizenz. Auch wenn der Source einsehbar ist: derivative Werke darf man davon nicht verbreiten. Sollte sich Oracle heute entscheiden Java künftig zur Nutzung kostenpflichtig zu machen gibt es keine Alternative als zu zahlen oder auf der aktuellen Version zu bleiben. In dem Zustand wie sie sich befindet - auch das veröffentlichen von Bugfixes wäre nicht erlaubt.

.NET / Mono ist halt das bessere Java - und hier wurde es richtig gemacht. Vor allem der Architektur der Basis-Namespaces sieht man an das Anders Heijlsberg seine Finger da drin hatte und als Delphianer findet man sich schnell zurecht.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat