MKay
Anmeldungsdatum: 25. Februar 2007
Beiträge: 274
|
Hi, bevor ich Ubuntu installiert habe, habe ich unter Windows in C# programmiert. Mit einigen Anpassungen laufen meine Programme (zumindest eins) mit der aktuellen Mono-Version auch unter Linux. Aber ich will wieder richtig programmieren (utner Linux), und zwar so, dass meine Programme wenn möglich unter Windows und Linux laufen. Ich könnte zwar mit Mono und GTK# unter Linux programmieren, sodass die Anwendungen auch unter Windows laufen, allerdings sinkt da die Benutzerfreundlichkeit, da man auf Windows das Framework und GTK# installieren muss. Eine Alternative zu C# wäre sicherlich Java als abjektorientierte Programmiersprache. Zudem ist die Syntax von Java der von C# sehr ähnlich. Allerdings habe ich gehört, dass Java-Anwendungen manchmal recht langsam laufen sollen und eine eigene Oberfläche haben. Damit meine ich, dass unter Windows XP das Programm nicht die typischen Visual-Styles besitzt, sofern aktiviert. Im Gegenzug dazu steht C++. Diese Anwendungen lassen sich meines Wissens nach auch für Linux und Windows kompilieren. Hier passt auch die Syntax, allerdings fehlt hier die Objektorientierung. Stattdessen darf man sich mit Pointern rumärgern. Also, ich bin mir zZ nicht sicher, wie ich unter Linux programmieren soll. Was würdet ihr einem "objektorientierungs-gewöhnten-C#-Programmierer" für eine Sprache zur Programmierung unter Linux empfehlen? Gruss MKay
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4694
Wohnort: Berlin
|
Bei C++ fehlt die Objektorientierung!? Und Pointer und Objekte schliessen sich nicht gegenseitig aus. Java-Anwendungen laufen manchmal recht langsam ─ genauso wie C#-Anwendungen manchmal recht langsam laufen. Oder C++, Perl, Python, Ruby, … Bleib einfach bei C# und lebe damit, dass GUI nicht wirklich einfach 100% Plattformunabhängig geht, soll heissen es wird sich vom Look-and-Feel immer ein wenig von "nativen" Anwendungen unterscheiden.
|
lakerz
Anmeldungsdatum: 27. November 2005
Beiträge: 640
Wohnort: Speyer
|
Hmm ich kenn mich da zwar nicht aus, aber bei C++ fehlt die Objektorientierung? Hoe? Zeiger gibts meines Wissens, aber ist dennoch soweit ich weis objektorientiert, darum ist es ja C++ und nicht C... also wenn ich jetzt nicht alles verwechsle bin ich mir da ziemlich sicher. Nur eben ob die Programme dann unter Windows und Linux laufen bezweifle ich... die grafischen jedenfalls und solche willst du ja programmieren. Aber da können dir andere wohl mehr dazu sagen.. 😉 Edit: Da war wer schneller\^^ Wirklich plattformübergreifend und grafisch geht glaube ich wirklich nur mit Java, aus Anwendersicht mag ich Java Programme allerdings wirklich nicht, würde dir nicht unbedingt dazu raten.
|
philonous
Anmeldungsdatum: 2. Januar 2007
Beiträge: 290
Wohnort: München
|
QT Qt_(Bibliothek) bietet dir die Möglichkeit objektorientiert und plattformübergreifend grafische Oberflächen zu basteln... ^ Siehe verlinkten Wikipedia-Eintrag.
|
MKay
(Themenstarter)
Anmeldungsdatum: 25. Februar 2007
Beiträge: 274
|
Sry mein Fehler. C++ unterstützt Objektorientierung ☺ Vielleicht bleibe ich wirklich bei C#. Da sollten meine Anwendungen unter Linux und unter Windows laufen, wenn ich sie korrekt schreibe. Das einzig doofe ist, dass der Benutzer dann immer zwei Produkte zusätzlich installieren muss: Framework und GTK#. Aber ich hab mich schon so an C# gewöhnt, dass ich die Einfachheit einfach nicht aufgeben will 😛
|
Fredo
Anmeldungsdatum: 27. Juni 2005
Beiträge: 5244
Wohnort: Bochum
|
Also, das neue Java6 unterstützt ja auch natives Look&Feel. Damit gefallen mir alle Java-Programme, die ich so benutze, schon viel besser - weil sie das eingestellte GTK-L&F übernehmen. Ich denke, dass das unter WinXP ähnlich sein wird. Liebe Grüße Fredo
|
MKay
(Themenstarter)
Anmeldungsdatum: 25. Februar 2007
Beiträge: 274
|
Wie sieht es denn mit C++ und QT aus: Damit würden meine Programme mit grafischer Oberfläche unter Linux und Windows laufen, wie ich eben gelesen habe. Aber wie programmiert man dann? Ich kann ja dann beispielsweise nicht auf die Windows-API zurückgreifen, die wird ja unter Linux nicht funktionieren. Wie ist denn das bspw mit Firefox, den gibts ja auch für Windows und Linux. Aussehen tuen die Fenster, Buttons etc wie fürs Betriebssystem jeweils üblich. In welcher Sprache ist der Browser geschrieben?
|
Angor
Anmeldungsdatum: 30. Juli 2006
Beiträge: 1101
Wohnort: Bonn
|
Wie wärs mit Python? Objektorientierung ist vorhanden und mit tkinter eine GUI die immer dabei ist wenn Python installeirt ist. GTK und viele andere GUIs kann man auch nutzen. zu Qt: Qt greift auf die API von Windows und MacOSX zu sodass es sehr nativ aussieht:)
|
MKay
(Themenstarter)
Anmeldungsdatum: 25. Februar 2007
Beiträge: 274
|
Ne, kein Python ☺ Ich möchte schon bei der C#-ähnlichen Syntax bleiben. Und zudem will ich, dass mein Programm unter Linux und Windows lauffähig ist, wie Firefox, Thunderbird und co (ka, wie das bei Python ist) ☺
|
smalltalk
Anmeldungsdatum: 20. Februar 2006
Beiträge: Zähle...
Wohnort: Hamburg
|
Hallo zusammen, mir fällt da auch als Programmiersprache zunächst Java mit SWT ein. SWT ist weitestgehend heavy weight und hat somit eine schnelle GUI. Die Performance von Java ist auf heutigen Rechnern ebenfalls sehr hoch (sofern es sich nicht um Echtzeitsysteme handelt). Pointer gibt es nicht, ein GarbageCollector ist ebenfalls eingebaut. Die Sprache ist manchmal etwas inkonsistent, es bessert sich aber ständig. Außerdem es gibt frei verfügbare Bibliotheken in Hülle und Fülle (von Verschlüsselung bis MP3-Wiedergabe und sogar Firefox kann in SWT eingebunden werden). Webanwendungen sind ebenfalls möglich. Die Wahl hängt natürlich auch vom geplanten Einsatzgebiet ab (der Code für die ISS wurde in ADA geschrieben ☺ ) Plattformübergeifend wäre auch noch von Borland Kylix (Linux) und Delphi (Windows), der Code ist weitestgehend übertragbar (Objekt Pascal) Ansonsten gibt es noch Smalltalk (eher exotisch). Ist zu 100% objektorientiert (sogar Zahlen sind Objekte) und unterstützt alle Systeme (Mac, Linux, Windows). Die Programme brauchen ebenfalls nicht umgeschrieben zu werden. Die Gui-Erstellung ist einfach (Guis kommen von dieser Sprache). Das look-and-feel kann sogar zur Laufzeit geändert werden. Außerdem ist sie leicht zu erlernen, da viele Konzepte der OOPs in dieser Sprache entwickelt worden sind. Gruß, Michael
|
Marc_BlackJack_Rintsch
Ehemalige
Anmeldungsdatum: 16. Juni 2006
Beiträge: 4694
Wohnort: Berlin
|
MKay hat geschrieben: Wie sieht es denn mit C++ und QT aus: Damit würden meine Programme mit grafischer Oberfläche unter Linux und Windows laufen, wie ich eben gelesen habe. Aber wie programmiert man dann? Ich kann ja dann beispielsweise nicht auf die Windows-API zurückgreifen, die wird ja unter Linux nicht funktionieren.
Genau dafür ist QT ja da. Du greifst sowohl unter Linux als unter Windows auf die QT-API zu, die unter beiden Betriebssystemen gleich ist. Python läuft übrigens sowohl unter Windows als unter Linux. Es gibt mit IronPython sogar eines das unter .NET läuft.
|
ApfeL-2k
Anmeldungsdatum: 21. September 2006
Beiträge: 21
Wohnort: Vreden
|
MKay hat geschrieben: Ne, kein Python ☺ Ich möchte schon bei der C#-ähnlichen Syntax bleiben. Und zudem will ich, dass mein Programm unter Linux und Windows lauffähig ist, wie Firefox, Thunderbird und co (ka, wie das bei Python ist) ☺
Firefox und Thunderbird sind für Linux und Windows einzeln Programmiert. Es ist NICHT derselbe Code nur für beide Systeme kompiliert 😉. Also im grunde kann ich nur sagen: Bleib bei c#, warum auch nicht? Es gibt KEINE programmiersprache die so ohne weiteres von Windows auf Linux und umgekehrt übertragbar ist, nichtmal Java, selbst da musst du einzelne Programmteile ändern und trotzdem sieht es noch nicht berauschend aus, dasselbe bei allen anderen Sprachen. Wenn du zufrieden mit c# bist, warum nicht? Mono bietet eine (finde ich) gute alternative zum .net-framework. Falls du den Windows-Usern die GTK# installation nicht zumuten willst, aber die 50mb .net-framework installation in ordnung findest verstehe ich dein Problem nicht, so groß ist GKT# auch nicht. Du könntest auch für Windows mit WinForms und für Linux in GTK# Programmieren, meinetwegen für Max OS auch mit Glade#. Glaub mir, es gibt KEINE Programmiersprache, wo du den Code einfach übernehmen kannst, und selbst wenn du nur wenig änderst, wird das Programm nicht auf allen System genauso zufrieden stellend sein wie auf dem, auf dem es Programmiert wurde. Also bleib bei c#, es gibt überall vor und nachteile, und der größte Vorteil hier wäre wohl: Du kannst c#, magst es, wills es nicht aufgeben. Was willst du mehr? 😉 mfg malte P.S: Ich progge selber c# auf Windows wie auch auf Linux, macht Spass, und man kommt flott zum erfolg, was will man mehr? 😀
|
Angor
Anmeldungsdatum: 30. Juli 2006
Beiträge: 1101
Wohnort: Bonn
|
MKay hat geschrieben: Ne, kein Python ☺ Ich möchte schon bei der C#-ähnlichen Syntax bleiben. Und zudem will ich, dass mein Programm unter Linux und Windows lauffähig ist, wie Firefox, Thunderbird und co (ka, wie das bei Python ist) ☺
Linux,Windows,Mac,BSD,Solaris, was gibts noch? Auf den genannten System läuft Python.
|
MKay
(Themenstarter)
Anmeldungsdatum: 25. Februar 2007
Beiträge: 274
|
@ApfeL-2k: THX ☺ Ich habe mich entschieden, ich bleibe bei C#. Ich muss nur mit der GTK# zurechtkommen, da mir die Windows-Forms in Mono zu unausgereift sind und es noch keinen Windows-Form-Designer unter Linux gibt (soweit ich weiss). Nutzt du die GTK# auch unter Linux oder eine andere GUI-Lib? Wenn ja: Nutzt du GTK# dann auch für Windows, oder schreibste dann auf die Windows-Forms um? Vllt könnte ich dich auch mal als Ansprechpartner nehmen, falls ich mal Starthilfe oder so brauche 😉 Gruss MKay
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17622
Wohnort: Berlin
|
ApfeL-2k hat geschrieben: Es gibt KEINE programmiersprache die so ohne weiteres von Windows auf Linux und umgekehrt übertragbar ist, nichtmal Java, selbst da musst du einzelne Programmteile ändern und trotzdem sieht es noch nicht berauschend aus, dasselbe bei allen anderen Sprachen.
Dem kann ich nicht zustimmen. Ich mußte noch nie ein Java-Programm für Windows irgendwie ändern.
|