AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Plattformunabhängig programmieren

Ein Thema von fkerber · begonnen am 14. Jan 2011 · letzter Beitrag vom 16. Jan 2011
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.645 Beiträge
 
#1

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
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

AW: Plattformunabhängig programmieren

  Alt 14. Jan 2011, 23:17
Hi,

also verstehe ich das richtig?
Mono ist quasi das .Net für Nicht-Windows-Systeme?
Und "glücklicherweise" sind diese beiden Systeme (zumindest bis .NET 2, wenn Wiki recht hat) kompatibel. D.h. wenn ich unter Mac was mit z.B. MonoDevelop programmiere, dann wird es auch unter Windows laufen, wenn dort ein passendes .NET-Framework installiert ist?

Bzgl. dem Programmieren an sich:
Mit MonoDevelop wäre die Sprache der Wahl dann vermutlich C#?


Wie ist das mit Delphi-Prism?
Ich hab auf der Download-Seite gesehen, es gibt die IDE für Mac und Windows. Gilt dann hier quasi das selbe wie oben? Ich entwickele unter Mac und das Ganze wäre dann unter Windows mit .NET-Framework lauffähig? Und die Sprache ist dann quasi Delphi im .NET-Style?


Eine zentrale Frage wäre für mich jetzt noch:
Die Verbreitung irgendeiner .NET-Framework-Version unter Windows dürfte wohl recht weit sein - aber wie sieht es auf der anderen Seite für Mac und Linux aus?
Wenn ich das richtig verstanden habe, muss dort ja dann das Mono-Framework installiert sein - das wäre jetzt bei mir beispielsweise nicht der Fall.
Daher meine Frage, ob es da vllt. irgendwo Statistiken/Zahlen (auch wenn ich sie nicht selbst gefälscht habe ) gibt, die dazu was sagen.

Dann noch eine letzte Frage:
Auf der Mono-Download-Seite habe ich jetzt auch eine Windows-Version gesehen. Da frage ich mich nun, warum?
Unterstützt die dann Mono-Anwendungen besser, als das .NET-Framework es tut?


Liebe Grüße,
Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

AW: Plattformunabhängig programmieren

  Alt 14. Jan 2011, 23:33
Bzgl. dem Programmieren an sich:
Mit MonoDevelop wäre die Sprache der Wahl dann vermutlich C#?
Mono und C# sind 100% zueinander kompatibel, sind aber von der Entwicklung her zwei komplett andere Sprachen. Die Entwickler von Mono haben sich zum Ziel gesetzt, C#.net multi-platform-fähig zu machen. Das ist ihnen auch gelungen.

Bernhard

PS: Irgendwo habe ich mal gelesen, dass Mono in der Linux-Welt nicht gern gesehen ist, weil es eben kompatibel zu .net ist.
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

AW: Plattformunabhängig programmieren

  Alt 14. Jan 2011, 23:49
Hi,

Achso, also Mono ist sowohl Framework wie auch eigene Sprache?

Ich ging nach diesem Wiki-Zitat
Zitat:
MonoDevelop unterstützt mehrere Programmiersprachen, unter anderem C#, Visual Basic .Net, Java, Boo und Nemerle. Neu mit der Version 1.0 Beta 1 kam eine Unterstützung für C/C++ hinzu.
davon aus, dass es da nix eigenes gibt.
Auch http://www.mono-project.com/Languages erweckt nicht den Eindruck.
Wo kann man denn Infos über die Sprache finden?


LG, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.064 Beiträge
 
Delphi 12 Athens
 
#5

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 00:35
Lazarus freepascal lässt sich für so ziemlich jedes system kompilieren...
man muss nur "richtig" Programmieren (den Dateisystem seperator nicht hard codieren und so).

Geht soweit ich das überblicken kann auf Windows (in 64 bit und 32 Bit), Linux, Mac (wenn man es dort installiert bekommt, was anscheinend nicht so einfach ist), Iphone OS, Windows CE ARM(crosscompiler).

Du kannst entweder mit den Standard GTK oberflächen oder mit QT (kylix ähnlich) arbeiten. Mir gefällt es mehr und mehr...
musst eben nur ein Build für jedes System ausführen ...der code kann weitestgehen gleich beleiben...wenn man "richtig" programmiert.


Ansonnsten gibt es noch Morfik damit kannst du Webanwendungen schreiben (in Basic, Objectpascal und c# ) die werden dann nach Javascript Html5 Css "compiliert" halt wie das GWT für Java.
Andreas
Nobody goes there anymore. It's too crowded!
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 08:11
Wenn plattformunabhängig entwickelt werden soll, nehmen wir aktuell auch Java. Sind von Eclipse zu Netbeans gewechselt, weil da der GUI Builder brauchbar ist.

Mono hab ich mir noch nicht angeschaut, wird sicher eine Alternative sobald .NET 4 vollumfänglich unterstützt wird.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.882 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 08:57
Zitat:
Mono und C# sind 100% zueinander kompatibel,
Genauso wie c zu Linux kompatibel ist?
Mono ist eine betriebssystemübergreifende Implementierung der .Net-Plattform
Diese ist aber nicht zu 100% komplett und kompatibel
Markus Kinzler
  Mit Zitat antworten Zitat
Hisoka

Registriert seit: 2. Jan 2008
Ort: im Norden
53 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 10:43
Wenn plattformunabhängig entwickelt werden soll, nehmen wir aktuell auch Java. Sind von Eclipse zu Netbeans gewechselt, weil da der GUI Builder brauchbar ist.

Mono hab ich mir noch nicht angeschaut, wird sicher eine Alternative sobald .NET 4 vollumfänglich unterstützt wird.
Das wird nur nie passieren. Das ist auch nicht das Ziel der Mono Entwickler.

Ich würde für Desktop Anwendungen die plattform übergreifend laufen sollen niemals .NET empfehlen.
1. Man brauch für eine brauchbare Benutzeroberfläche wieder eine extra UI Bibliothek. Nicht alle sind brauchbar oder überhaupt fertig. Der Punkt ist das Windows.Forms rein für Windows konzipiert wurde und somit auf anderen Plattformen nur mehr schlecht als recht funktioniert. Dazu sehen die Anwendungen extrem hässlich aus. Das muss man sich nicht antun.
2. Selbst Swing lässt sich besser integrieren. Also wäre es eher zu empfehlen.
3. Es hat so gut wie keinen Vorteil gegenüber der direkten Nutzung des Toolkits.
4. .NET und Mono sind nicht grade beliebt unter Linux und Mac Nutzern. Denn die Performance der meisten Anwendungen ist grauenhaft und daher hat nicht jeder Mono installiert.

Aus meinen Erfahrungen ist auch Lazarus und die LCL nicht brauchbar. Die Performance der erstellten Anwendungen ist katastrophal. Sie ist teilweise so schlimm, das Anwendungen unter leichtgewichtigen Windowmanagern absolut nicht laufen. Also es ruckelt bis zur Unkenntlichkeit.(zumindest unter GTK2)

Würde also im Endeffekt eher C++ und Qt/wxWidgets nehmen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz