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
Seite 3 von 4     123 4      
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#21

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 16:28
@Feuervogel:
Der einzige Nachteil wäre vielleicht, dass WPF-Anwendungen nicht von Mono unterstützt werden...
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#22

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 16:45
Nicht unbedingt.
Silverlight ist am kommen, und SL-Anwendungen kann man auch auf dem Desktop laufen lassen (out-of-browser applications). Und mit Moonlight gibt es die Mono-Version von Silverlight auch auf allen Plattformen - auch mit out-of-browser support.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#23

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 16:49
Wenn Java als Sprache nicht gefällt, gibt es auch einige andere interessante Sprachen (z.B. Scala, Gosu) die auf der JVM laufen und Java-kompatibel sind.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

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

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 17:03
Hi,

erstmal wow für die Vielzahl und die Länge der Antworten, danke.


@Phoenix:
Danke für die Ausführungen, jetzt bin ich schlauer.


@Unwissender:
Ich habe diese Aussage zum Anlass genommen, um mal "über den Tellerrand" zu schauen.
Natürlich renne ich jetzt nicht los und suche was anderes, nur weil jemand gesagt hat "Java ist doof" - und mir sind die Vorteile von Java ja ebenfalls geläufig und ich weiß sie zu schätzen. Allerdings hat mich gerade die GUI-Entwicklung beim letzten Projekt nahezu in den Wahnsinn getrieben und mich viel Zeit gekostet, damit es wenigstens ansatzweise manierlich aussah - und trotzdem war es hässlich. Dazu kommen dann auch so Sachen, dass bspw. unter Mac die Tastenkombis zum Kopieren, Einfügen etc nicht wie gewohnt mit Apfel+C/V funktionieren sondern nur mit Strg+C/V - das ist für Otto-Normal-Nutzer ungewohnt und vllt. sogar unhandlebar, weil er nicht auf die Idee kommt etc. Auch die Integration ins Fenster-Schließen-Konzept von Mac geht von Haus aus nicht wie sie soll, sondern erfordert ein extra Eingreifen etc. - halt so viele Kleinigkeiten.

Daher will ich einfach mal schauen, was es da sonst so gibt. Da ich privat gänzlich unter Mac unterwegs bin (von VMs abgesehen) sind schon alleine wegen der Verbreitung von Windows Lösungen für mich interessant, die ich sowohl für mich programmieren kann, aber vllt. auch irgendwo "unters Volk" bringen kann (und dann sollte Volk nicht auf Mac-User beschränkt sein).
Dank Android werde ich Java so oder so nicht so schnell den Rücken kehren, aber ich denke, es schadet nichts, auch mal was anderes anzutesten.


@Rollstuhlfahrer
Das mit Python ist auch durchaus interessant.
Wie im Eingangspost erwähnt habe ich auch schon einiges mit Python gemacht und die Sprache und Ihre Funktionalitäten finde ich auch recht sympathisch. Allerdings waren das bislang reine Entwicklung für Multi-Touch-fähige Eingabegeräte mit einer speziellen Bibliothek, die sowohl das Tracking übernimmt, wie auch sämtliche grafische Elemente zur Verfügung stellt (--> www.libavg.de ). Ist ne nette Sache, aber eben nicht für normale Alltagsprogramme sondern quasi nur solche Programme, deren GUI komplett durch Grafiken bzw. zumindest grafische Elemente dargestellt wird (und nein, ein normaler Button ist kein grafisches Element in dem Sinne, den ich meine ).

Also mal schauen, was es da gibt, um normale GUIs zu produzieren.
Gibt es "prominente" Programme, die mit normaler GUI in Python geschrieben sind?


@BUG:
Doch doch, Java als Sprache gefällt (zumindest mir) - meine Aufgaben konnte ich damit bisher gut umsetzen, solange sie keine GUI hatten


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

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#25

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 19:32
QuickAndDirty hat zwar schon Free Pascal und Lazarus angesprochen, ich möchte da jedoch noch etwas ausholen.

Erstmal Free Pascal ist ein Open Source Object Pascal Compiler und für unterschiedliche Plattformen (x86, x86_64, ARM, Sparc, Power PC) und Betriebssysteme (u.a. Windows, Windows CE, Linux, Mac OS X, BSD, Solaris, DOS, OS/2) verfügbar. Der Compiler kompiliert die Anwendungen nativ für die jeweilige Zielplatform, ist also dann an den CPU Typ und das Betriebssystem gebunden (im Gegensatz zu Java, manchen .NET Programmen und den Scriptsprachen).

Aber auch wenn die Anwendung binär an ein bestimmtes Betriebssystem gebunden ist, so bietet Free Pascal eine plattformunabhängige RTL (so Sachen wie Writeln, TList, etc) und die Möglichkeit Code nur für bestimmte Plattformen zu kompilieren (wie es in Delphi ja auch möglich ist). Auch das Einbinden von anderen Bibliotheken (DLL, SO, Dynlib), welche eine flache C API bereitstellen, ist relativ einfach möglich (das berühmte "external 'Foo' name 'Bar'"). In der Entwicklungsversion des Compilers kannst du sogar Objective-C Klassen anbinden (hierzu wurde von der Mac Community eine eigene Spracherweiterung namens Objective Pascal entwickelt).

Das Kompilieren von verschiedenen Betriebssystemen nach Windows und Windows CE ist im großen und ganzen ohne weitere Verrenkungen möglich (dank internem Linker und zumindest für x86 und x86_64 auch internem Assembler). Um von Windows nach Linux zu kompilieren benötigt man schon passende Binutils (vor allem Linker) und die Bibliotheken des Zielsystems (z. B. libc, libpthreads, libgtk, etc.). Letzteres kann auch mal ein Problem sein, wenn du ein auf z. B. einem ArchLinux kompiliertes Programm (mit solchen Abhängigkeiten) auf einem Ubuntu laufen lassen möchtest, da ersters andere (meist neuere) Bibliotheken verwendet (Linux ist da etwas unverzeilicher als Windows). Hier hilft dann nur auf dem Zielsystem neu kompilieren. Das Cross Kompilieren nach Mac OS X ist dann (sowohl von Windows, als auch von Linux) ein noch größerer Terz (ähnliche Problematik wie unter Linux, nur noch etwas kopfzerbrechender).

Kompilierst du allerdings auf der jeweiligen Zielplatform (Windows CE und iPhone mal ausgenommen), hast du mit den Bibliotheken kaum Probleme.

Free Pascal alleine bietet allerdings keine GUI (von FreeVision, einem Klon von TurboVision für die Textmode IDE mal abgesehen). Du kannst natürlich auf die verschiedenen GUI Toolkits zugreifen (WinAPI, GTK(2), Qt, Carbon, Cocoa), musst allerdings für jedes Toolkit ne Extrawurscht machen (bei GTK und Qt etwas weniger, da diese auch auf anderen Plattformen als Linux laufen).
Möchtest du jedoch plattformunabhängig mit GUI arbeiten, so sind drei bekanntere Varianten möglich:
Ersteres wird von der Delphi ähnlichen IDE Lazarus zur Verfügung gestellt und lässt sich ähnlich zur VCL verwenden. Die Entwickler streben danach LCL-Anwendungen auf dem jeweiligen System so nativ wie möglich aussehen zu lassen. Für die Plattformunabhängigkeit wurde eine Abstraktionsschicht, das sogenannte Widgetset eingeführt und erlaubt es dir zu bestimmen, ob eine kompilierte Anwendung nun die WinAPI oder Qt (als Beispiele) verwendet. Du kannst so zum Beispiel auch Qt Anwendungen für Windows entwickeln (nicht alle Kombinationen machen allerdings Sinn, wie Cocoa auf Windows CE). Diese Abstraktionsschicht bringt allerdings auch Performanceeinbußen mit sich. Ich persönlich empfinde diese jedoch nicht als so gravierend wie von Hisoka beschrieben. Hier empfehle ich dir (falls näheres Interesse besteht) einfach mal die IDE herunterzuladen und zu schauen, ob dir die Performance ausreicht (wobei du hier eventuell warten solltest, da sich zur Zeit ein neues Release in Vorbereitung befindet - das "aktuelle" ist bereits über ein Jahr alt und dementsprechend viel hat sich seitdem geändert).

Im Gegensatz zur LCL sind fpGUI und MSEgui komplette Neuentwicklungen. Beide haben den selben Look der Anwendung unter allen unterstützten Plattformen zum Ziel. Zu MSEgui kann ich jedoch nicht viel sagen, da ich mich noch nicht damit auseinandergesetzt habe. fpGUI ist jedoch näherungsweise ähnlich zur LCL/VCL und unterstützt zur Zeit Windows und Linux (bzw. allgemeiner: X-Server basierte Systeme). Mac OS X Unterstützung sowie Unterstützung für Open GL und Linux Framebuffer als Backend sind in Entwicklung bzw. Planung. Während mseGUI eine komplette eigene IDE (MSEide) mitbringt, bietet dir fpGUI nur einen Formulardesigner an. Der eigentliche Code wird in der IDE deiner Wahl (MSEide, Lazarus, Free Pascal IDE) entwickelt.

Ich persönlich bin sehr zufrieden mit Free Pascal und Lazarus (fpGUI teste ich hin und wieder aus). Die "Cross Compile" Funktionalität setze ich vorwiegend ein, um Anwendungen für Windows CE zu entwickeln (Hauptentwicklung/-test unter Win32, Details korrigieren dann unter WinCE). Die Variante Linux => Windows verwende ich seltener. Ich habe jedoch einiges an Code, den ich unter Linux und Windows verwende und weiterentwickle, wobei kaum IFDEFs vorhanden sind.

Ich hoffe dies hat dir einen kleinen Einblick gegeben.

Edit: Link zu fpGUI korrigiert.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons

Geändert von JamesTKirk (15. Jan 2011 um 20:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

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

AW: Plattformunabhängig programmieren

  Alt 15. Jan 2011, 19:54
Gibt es "prominente" Programme, die mit normaler GUI in Python geschrieben sind?
Auf Anhieb fällt mir da nur Calibre ein (eBook-Sortierprogramm). Ansonsten habe ich eine Liste gefunden. Ob die alle jetzt GUI haben weiß ich nicht. Aber lang ist die Liste.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Insider2004
(Gast)

n/a Beiträge
 
#27

AW: Plattformunabhängig programmieren

  Alt 16. Jan 2011, 11:15
Ich arbeite jetzt schon 10 Jahre plattformunabhängig. Der Witz ist, man braucht es einfach nicht. 90-95% aller Kunden verwenden die Windows Plattform. Die paar Prozent, die mit Linux oder Mac arbeiten sind wirklich teuer für eine Entwicklung. Es lohnt sich einfach nicht Cross-Software anzubieten. Ich bestreite alles mit Delphi auf Windows. Ist schnell, native und (fast) fehlerfrei. Die Karten werden neu gemischt, wenn Delphi für Mac dieses Jahr rauskommt. Viel verdienen wird man an einem Mac-Port aber nicht, so meine Einschätzung.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#28

AW: Plattformunabhängig programmieren

  Alt 16. Jan 2011, 11:37
Es lohnt sich einfach nicht Cross-Software anzubieten.
Das kommt wohl sehr auf die Software an, die Du erstellst.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Plattformunabhängig programmieren

  Alt 16. Jan 2011, 11:40
Je kleiner der Aufwand für eine Portierung, desto niedriger die Hürde und desto mehr lohnt es sich. Es gibt ja Softwarehersteller, die nur für MacOSX entwickeln und die davon leben können.
Markus Kinzler
  Mit Zitat antworten Zitat
Insider2004
(Gast)

n/a Beiträge
 
#30

AW: Plattformunabhängig programmieren

  Alt 16. Jan 2011, 13:23
Es lohnt sich einfach nicht Cross-Software anzubieten.
Das kommt wohl sehr auf die Software an, die Du erstellst.
Das ist richtig. Wenn man nur cmd-line-Tools und dergleichen entwickelt dann ist es relativ einfach. Bei GUI wird es verdammt schwierig bis unmöglich.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 02:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz