Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Entwickeln für Linux (https://www.delphipraxis.net/98225-entwickeln-fuer-linux.html)

fkerber 23. Aug 2007 13:16


Entwickeln für Linux
 
Hi!

Ich habe ein Problem...

Ich habe momentan einen Auftrag, ein Programm mit Datenbankanbindung zu entwickeln. Grundidee des Auftraggebers war eine Anbindung an MS Access (verständlicherweise unter Windows - überwiegend 2000).

Aus einem mir noch nicht bekannten Grund hat der Auftraggeber quasi von jetzt auf gleich einen recht großen Hass auf Microsoft und alle seine Produkte entwickelt.
Ausgetauscht wurde jetzt bereits der Server und nach und nach sollen die Clientrechner auch ausgetauscht werden (geplant ist die Umstellung, wenn Windows 2000 nicht mehr supported wird).

So kam dann heute der Anruf, ich solle mir doch da mal was überlegen...

Jetzt muss ich gestehen, dass Linux ein Buch mit weit mehr als nur sieben Siegeln für mich ist. Ich habe also primär mal keine Ahnung, wo ich hier anfangen müsste. Eine kurze Suche im Forum hat mich jetzt auf Lazarus gebracht. Damit kann ich doch für Windows und Linux gleichermaßen entwickelt, oder? Heißt das, dass ich ein und denselben Code auf Knopfdruck entweder für Windows oder Linux kompilieren kann? (Bis zu besagter Umstellung soll die Sache ja noch unter Windows laufen)

Kann ich mit meinen Delphi-Kenntnissen (mit denen ich das Projekt unter Delphi problemlos bewältigen kann) das Projekt schaffen oder muss ich da mit unvorhersehbaren Problemen rechnen?
Gibt es Besonderheiten zu beachten bzgl. der diversen Linux-Distributionen oder ist das alles eins beim Entwickeln?


Bei plattformübergreifend klingelt ja irgendwo (ganz hinten) auch noch Java rum...
Kann jemand da eine Abgrenzung Java / Lazarus treffen? (Natürlich kein Vergleich der Programmiersprachen, sondern mehr ein Aufwandsvergleich...)


Gibt es sonst Alternativen mit denen ich im Idealfall gleichzeitig für Linux und Windows entwickeln kann?!

Ich vermute ja mal, dass das dauerhafte Ausführen der Anwendung unter Wine o.ä. keine Alternative für ein produktives System ist, oder?


Ciao, Frederic

Torpedo 23. Aug 2007 13:26

Re: Entwickeln für Linux
 
Zitat:

Zitat von fkerber
Gibt es sonst Alternativen mit denen ich im Idealfall gleichzeitig für Linux und Windows entwickeln kann?!

Ja, du kannst Qt oder GTK+ benutzen. Damit werden auch Programme wie Opera, Skype (Qt) oder Gimp (GTK) entwickelt.

Nils_13 23. Aug 2007 13:30

Re: Entwickeln für Linux
 
Wine ist imho nicht so gut, da es nichts wirklich gut emulieren kann. Deshalb ist das wirklich die letzte Lösung und außerdem würde ich dir lieber CrossOver (leider kostenpflichtig) empfehlen, funktioniert viel besser.

Du kannst mit Lazarus entwickeln. Vermutlich wirst du irgendwann allerdings bekloppt, da Lazarus tausend Fehler hat und es einfach nicht an zumindest Delphi7 rankommt. Viele Fehler, wie z.B. Internal errors, zeigen sich erst später oder ab einer gewissen Projektgröße. An sich kann man aber sagen, dass du mit Lazarus für Linux, Windows und Mac - leider manchmal wegen den Bugs nicht einwandfrei - entwickeln kannst.

Du kannst Befehle, wie z.B. ShellExecute vergessen. Stattdessen kann man einfach die Unit Process einbinden, sich einarbeiten und ist auf der plattformunabhängigen Seite.

Java ist im Vergleich zu Lazarus mit Garantie fehlerfreier.
C/C++ ist ideal, da du einfach nur die GNU Compiler Collection (gcc) installieren musst und dann problemlos alles machen kannst (der Compiler für C heißt übrigens auch gcc und für C++ eben g++).

Zu Distributionen kann man nur sagen, dass du dich schlau machen musst, was am besten zu dir passt.

Am einfachsten wird es wahrscheinlich mit C/C++ oder an nicht Lazarus, sondern nur FreePascal.

Es ist deine Entscheidung.

Phoenix 23. Aug 2007 13:34

Re: Entwickeln für Linux
 
Guis mit Java sind eine Katastrophe. Es mag sich vielleicht im Backend-Bereich für die eine oder andere nicht performance-Kritische Anwendung eignen, aber versuche einfach mal ein Gui mit Java zu bauen. Danach wirst Du Dich unter Garantie nach Alternativen umgucken.

hoika 23. Aug 2007 13:44

Re: Entwickeln für Linux
 
Hallo,

also ich habe hier Wine (0.9.43).
Da läuft sogar eine alte BDE-App (Firebird als DB) ganz gut.

Aber es stimmt, es kann immer mal passieren,
dass ein API noch nicht umgesetzt wurde.


Heiko

Elvis 23. Aug 2007 13:46

Re: Entwickeln für Linux
 
Zitat:

Zitat von Nils_13
Wine ist imho nicht so gut, da es nichts wirklich gut emulieren kann.

MS Office läuft darin, Win-Thunderbird und Win-firefox auch. Also wird wohl eine Delphi-App mit wenig externen Abhängigkeiten auch laufen.
@Fred

Zitat:

Aus einem mir noch nicht bekannten Grund hat der Auftraggeber quasi von jetzt auf gleich einen recht großen Hass auf Microsoft und alle seine Produkte entwickelt.
Ausgetauscht wurde jetzt bereits der Server und nach und nach sollen die Clientrechner auch ausgetauscht werden (geplant ist die Umstellung, wenn Windows 2000 nicht mehr supported wird).
Cool, somit gehört ihr dann nicht mehr zu denjenigen, die ihre User zu Windows zwingen, right? :)


Wenn du den Delphi/Wine Weg gehen willst, stelle sicher welche Fonts du wählst. Du blöd es klingt, aber die größten Probleme mit Wine sind einfach nur Fonts... :lol:

Auf der anderen Seite kannst du dein Projekt auch zu FPC/Lazarus portieren. Die
notwendigen Codeänderungen können von lächerlich wenig bis krass viel werden, je nachdem wie RAD-verseucht dein DB-Zugriff und/oder deine Logik ist.
Delphi-Formulare lassen sich mit einem Tool in Lazarus Formulare umwandeln. (Lazarus unterstützt keine Resources, da Linux keine hat)

Cross compiling gibt es nur mit 50 Umwegen, aber das willst du nicht. Kompiliere die Windows app unter Windows und die Linux App unter Linux.

Eine "richtige" Linux App, mit Lazarus kompiliert, wird aber immer besser ankommen und sich besser benehmen als eine Windows app in Wine. IMMER.

OregonGhost 23. Aug 2007 13:52

Re: Entwickeln für Linux
 
Für eine plattformunabhängige GUI würde ich am ehesten Qt, z.B. im Zusammenhang mit Visual Studio 2005 (ab Standard) oder KDevelop, empfehlen. Da musst du aber bedenken, dass eine kommerzielle Entwicklung auch eine kommerzielle Lizenz erfordert, deren Preis im vierstelligen Bereich (pro Entwickler) liegt. Für alles außer GUI kommt man eigentlich auch ohne Qt zurecht, auch wenn es mit meist einfacher ist.
Was Java angeht: Plattformunabhängigkeit schön und gut, aber wie Phönix schon sagte, bau damit erstmal eine zünftige GUI und du wirst sehen, warum Qt im kommerziellen Bereich sehr viel weiter verbreitet ist. GTK+ würde ich mir auch nicht unbedingt antun, wenn es nicht absolut notwendig ist. Andererseits gibt es im C++-Bereich noch viele Alternativen wie zum Beispiel wxWidgets. So vollständig und ausgereift wie Qt ist allerdings keins davon. Qualität (:mrgreen:) hat eben ihren Preis. Dafür bekommst du eine Anwendung, die unter Windows, Linux und MacOS X nativ ist.

Oh, noch was zu Java-GUIs: Qt gibt es seit einiger Zeit auch für Java *g*

Angel4585 23. Aug 2007 14:30

Re: Entwickeln für Linux
 
Zitat:

Zitat von Phoenix
Guis mit Java sind eine Katastrophe. Es mag sich vielleicht im Backend-Bereich für die eine oder andere nicht performance-Kritische Anwendung eignen, aber versuche einfach mal ein Gui mit Java zu bauen. Danach wirst Du Dich unter Garantie nach Alternativen umgucken.

Also bei NetBeans ist ein guter GUI Builder drin, ich finde es ziemlich einfach.
Klasse find ich auch das man in TreeViews seine eigenen Bäume usw reinhauen kann und damit völlig frei ist.
Ich würds in Java machen, ist echt angenehm. Zumindest für mich und mit NetBeans. Ich kann nicht sagen obs mit Eclipse schwieriger ist

christian_u 23. Aug 2007 14:43

Re: Entwickeln für Linux
 
Zitat:

Du kannst mit Lazarus entwickeln. Vermutlich wirst du irgendwann allerdings bekloppt, da Lazarus tausend Fehler hat und es einfach nicht an zumindest Delphi7 rankommt. Viele Fehler, wie z.B. Internal errors, zeigen sich erst später oder ab einer gewissen Projektgröße. An sich kann man aber sagen, dass du mit Lazarus für Linux, Windows und Mac - leider manchmal wegen den Bugs nicht einwandfrei - entwickeln kannst.
Also ich weiss ja nicht wie alt dein Lazarus war, bzw wie viele Minuten du dich damit beschäftigt hast. Ich entwickle jetzt seit 3 jahre mit Lazarus und hab alle meine großen Projekte dorthin portiert. Darunter z.b. ein komplettes ERP System. Ich könnt immer an die Decke springen wenn Leute sich 10 min mit was beschäftigen und dann solche Aussagen treffen. Lazarus ist nicht Bugfrei. Aber als ich das letzte mal mit Delphi 7 arbeitete, war es unter Mindows verbuggter als Lazarus heute unter Linux. Unter Linux hakts doch schon noch ab und zu unter Windows hab ich schon ne ganze weile keinen Stress mehr gehabt.

Mit Lazarus ist man meiner meinung weit besser dran als mit Codegear. Bei .net bin ich mir da noch nicht so sicher aber ich für meinen teil setz lieber auf die native Lösung als auf interpretierten Code.

Ach und zu den QT geschichten,das Lazarus QT Widgetset ist noch nicht ausgereift aber die zeit die du in die Entwicklung deiner kompletten Oberfläche ohne RAD steckst in der dürftest du auch etliche Sachen am QT Interface geradegezogen haben, und du wärst ja nicht der einzige der daran arbeitet ...
Alternativ sind ja dann auch noch GTK,GTK2 da.

hoika 23. Aug 2007 15:00

Re: Entwickeln für Linux
 
Hallo,

> 10 min >
> auf die native Lösung als auf interpretierten Code >

jaja, wer im Glashaus sitzt ;)

.net wird kompiliert vor der Ausführung (jit-Compiler),
also nicht interpretiert.

Und wer will, kann auch direkt nativs erzeugen (ngen).


Heiko

PS:
zu kdevelop war doch gerade was im entwickler ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.
Seite 1 von 3  1 23      

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