Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 19

Thema: Nativ unter Linux programmieren

  1. #1
    Registrierter Benutzer Avatar von Iteranium
    Registriert seit
    03.08.2009
    Beiträge
    40

    Nativ unter Linux programmieren

    Hallo,

    Ich habe inzwischen recht viel mit Java gemacht, dann noch PHP, ein wenig ANSI C. Etwas Delphi (Pascal) ist noch dazu gekommen und eben jede Menge Spezialsprachen wie HTML, CSS, SQL. Ein klein wenig Ahnung habe ich dann noch in Regex, LaTeX, Tikz, Bash, …

    Das Problem ist jedoch, dass meine Programme immer wie Fremdkörper wirken. Java sieht einfach immer anders aus und braucht immer die Java VM. PHP und Zubehör lässt sich auf dem Webserver noch schön benutzen, aber für lokale Anwendungen ist es nicht brauchbar. Und die restlichen taugen ja erst gar nicht zur Programmentwicklung.

    Jetzt würde ich gerne Programme so entwickeln, dass sie wirklich absolut nativ unter Linux funktionieren, und man sie auch in ein Repository einstellen könnte. Graphische Anwendungen wären auch noch nett, da wäre Gnome als Oberfläche meine Wahl.

    Welche Sprache brauche ich dazu? Kann ich als Editor den vim benutzen? Und welche Stichworte brauche ich, um graphische Anwendungen zu schreiben, die super unter die anderen Gnome Programme passen?

    Danke!

  2. #2
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.604
    Zitat Zitat von Iteranium Beitrag anzeigen
    Graphische Anwendungen wären auch noch nett, da wäre Gnome als Oberfläche meine Wahl. Welche Sprache brauche ich dazu?
    Da kämen viele in Frage, die meisten (wie ich auch) programmieren Gnome-Anwendungen wohl in C:

    http://www.gtk.org/language-bindings.html

    Liebe Grüße,
    Axel

  3. #3
    Registrierter Benutzer Avatar von Iteranium
    Registriert seit
    03.08.2009
    Beiträge
    40
    Also wäre ich mit C++ voll dabei, und wenn ich dann graphisch weitermachen möchte, ist GTK+ mein Partner?

    „C++ unter Linux“ sollte sich im Netz ja finden lassen, auch wie ich dann den vim benutzen kann.

    Programme in C++ sollten ja auch unter OS X und Windows laufen, wie sieht es denn mit GTK+ aus, bekommt man das unter Windows und OS X auch zum laufen?

  4. #4
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    1) C != C++, allerdings gibts GTK+ für praktisch jede Sprache (C++ zb: http://gtkmm.org/)
    2) GTK+ bringst du unter Windows (http://www.gtk.org/download-windows.html) sicher (hab ich schon gemacht), und unter OSX wohl auch zum laufen (http://gtk-osx.sourceforge.net/).
    3) Wenn du allerdings beginnst, auch GNOME-spezifische Dinge zu nutzen, wirds mit der Portabilität wohl schwieriger.
    4) C++ läuft auf allen Plattformen, sofern du dir etwas Mühe gibst, plattformunabhängig zu programmieren.
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  5. #5
    Registrierter Benutzer Avatar von Iteranium
    Registriert seit
    03.08.2009
    Beiträge
    40
    Ich habe das immer so verstanden, dass C quasi tot ist und jetzt alles in C++ gemacht wird. Werden noch aktuelle Programme (sagen wir Nautilus) in C geschrieben?

    Was sollte ich jetzt also lernen/vertiefen?


    Außerdem würde ich meine Programme gerne so veröffentlichen, dass man sie direkt mit einem Paketmanager installieren kann. Ist es da sinnvoll sein eigenes Repository aufzumachen, oder zu einer Seite wie SourceForge oder Launchpad zu gehen?

    Wenn ich alleine programmiere, ist SVN dann überzogen?

  6. #6
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    SVN (oder git, oder mercurial (hg) , oder bazaar (bzr)) ist nie überzogen, schon darum nicht, weil du a) Backups deines Codes hast und b) etwas ausprobieren kannst, ohne den alten Code in Kommentaren mitschleppen zu müssen, weil du noch nicht sicher bist, ob du die neue Version verwenden willst.

    Nautilus (http://git.gnome.org/browse/nautilus/tree/src) sowie viele weitere core-Komponenten des GNOME-Desktops sind weiterhin in C (nicht C++) geschrieben.

    Zum Veröffentlichen würde ich einen bestehenden Projekt-Hoster (wie die von dir erwähnten sourceforge, Launchpad, oder auch BerliOS oder ...) verwenden. Allerdings wirst du die Pakete für die Distributionen vorerst (solange keine grosse Nachfrage nach deinen Tools besteht) selber bauen müssen.

    Launchpad eignet sich besonders, wenn du primär für *Ubuntu entwickeln willst, da du dort die möglichkeit der ppa-repositories hast, welche bei Ubuntu in die Paketquellen eingebunden werden können.
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  7. #7
    Registrierter Benutzer Avatar von Iteranium
    Registriert seit
    03.08.2009
    Beiträge
    40
    Okay, ich habe jetzt mal einen Launchpad Account registriert und bzr auf meinem Laptop installiert. Sehr nett war die Fehlermeldung gerade: „make: gcc: command not found“

    Jetzt muss ich noch ein wenig Ausprobieren und lesen, bis ich das alles verstanden habe (branch, push, commit, tree, trunk, …), aber das geht wahrscheinlich schon in die richtige Richtung.
    Geändert von Iteranium (05-07-2010 um 21:51 Uhr)

  8. #8
    Registrierter Benutzer Avatar von Berufspenner
    Registriert seit
    30.03.2002
    Ort
    Hamburg
    Beiträge
    567
    Mh, ist es nicht sinnvoller zunächst erstmal eine Idee für ein Softwareprojekt zu haben und dann zu gucken, in welcher Sprache und mit welchen Hilfsbibliotheken es sich am idealsten realisieren lässt, bevor du dir gedanken machst, wie du es am besten der Öffentlichkeit zugänglich machen kannst? Das Pferd von hinten aufzuzäumen bringt dich nicht wirklich weiter.
    C und C++

  9. #9
    Registrierter Benutzer Avatar von Iteranium
    Registriert seit
    03.08.2009
    Beiträge
    40
    Momentan arbeite ich an einem kleinen Programm, das meine Dateien durchsucht. In meinen Bilddateien habe ich per bilddabei#meinname.jpg mit "#name" angegeben, wer auf dem Bild zu sehen ist. Das Programm soll alle Bilder durchgehen, nach diesen Markierungen suchen und mir dann eine Liste der Personen liefern, zusammen mit einer Anzahl der Bilder.

    Wenn das dann steht, wollte ich das ganze noch ein klein wenig ausbauen, so dass man dann in einer graphischen Oberfläche je ein zufälliges Bild jeder Person sieht und so die ganze Bevölkerung auf dem Rechner sehen kann. So wie im aktuellen iPhoto das gemacht ist.

    Das an sich hätte ich in wenigen Minuten mit PHP fertig, mit Java bräuchte ich etwas länger, aber im Prinzip sollte ich das auch hinbekommen. Beide Sprachen sind aber nur etwas unpraktisch, wenn ich das ganze als natives Programm haben möchte. Von daher würde ich das jetzt mal mit C probieren. Wahrscheinlich ginge es auch einfach mit find egrep.

    Die Geschichte mit einem Repository ist sehr langfristig angedacht, aber ich wollte es schon mal ausprobieren. Wirklich erwarten, dass irgendwer meine Software benutzt, tue ich nicht, aber so kann ich immerhin Updates unkompliziert auf alle Rechner bekommen.

  10. #10
    Registrierter Benutzer Avatar von Berufspenner
    Registriert seit
    30.03.2002
    Ort
    Hamburg
    Beiträge
    567
    Mh, was versprichst du dir denn genau von einem Programm, das "nativ" bezüglich eines Systems ist? Wenn du das Programm grundsätzlich sowieso erstmal für den Eigengebrauch entwickelst, dann sollte alles weitere erstmal eine Frage deines persönlichen Geschmacks sein. Also in welcher Sprache und mit welchen Bibliotheken du am liebsten auf welchem System arbeitest. Alles weitere ist zweitrangig. Legst du es jetzt aber darauf an, dein Programm möglichst portabel zu gestallten, ist natürlich wichtig, dass du entweder vollkommen systemunabhängig arbeiten kannst oder eben eine Bibliothek oder ein Framework verwendest, das auf allen gängigen Systemen lauffähig ist.

    Was scheinbar deinen Antrieb darstellt, ist etwas dazwischen, die Motivation ist aber, zumindest meiner Meinung nacht, nicht sinnvolle. Willst du eine neue Sprache lernen und ein solches Projekt damit realisieren, dann sieht die Sache ja schon wieder ganz anders aus. Aber dem ganzen an höchster Priorität auf die Fahne zu schreiben, es soll "nativ" sein, halte ich nicht für sinnvoll.

    Btw, ich meine mal gelesen zu haben, dass du PHP auch als ganz normale Skriptsprache mittels Interpreter auf deinem System nutzen kannst, also ohne Webserver.
    C und C++

  11. #11
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    Ah, jetzt wo du Java erwähnst kommt mir wieder in den Sinn, dass ich vor ein paar Monaten mal mit den GTK+-Bindings für Java rumgespielt habe... Das hat auch ein natives GNOME Look&Feel ergeben (http://java-gnome.sourceforge.net/)

    btw: es gibt auch GTK+ für PHP (http://gtk.php.net/), hab ich allerdings noch nie gebraucht.
    my very own 128 bit integer
    C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
    more information

  12. #12
    Registrierter Benutzer Avatar von John W
    Registriert seit
    29.01.2010
    Beiträge
    211
    Also, auf meinem System (Ubuntu 10.04) reicht für ein an das System angepasstes Java-L&F der Aufruf von "UIManager.setLookAndFeel(UIManager.getSystemLookA ndFeelClassName());" vollkommen aus.

  13. #13
    Registrierter Benutzer Avatar von Iteranium
    Registriert seit
    03.08.2009
    Beiträge
    40
    Vielleicht gehe ich da etwas zu ideologisch/dogmatisch an die Sache ran. Das Projekt soll letztlich als Lernprojekt für die Sprache C oder C++ sein. Auch wenn das Programm für den Eigengebrauch ist, soll es nicht nur irgendwie zusammengebastelt sein. Ich könnte zwar mit PHP oder Java das Programm umsetzen, aber dann hätte ich entweder immer einen Webserver/Interpreter laufen, oder eben die Java VM laufen. Das Programm soll aber ganz ehrlich und bodenständig einfach alleine laufen können.

    Java ist zwar eine nette Sprache und funktioniert meistens, aber irgendwie geht sie mir dann doch teilweise echt auf den Geist. Wobei ich doch merken musste, dass in Java einiges deutlich einfacher als in C geht –*oder ich bin in C einfach zu doof dazu. PHP ist auch nett, aber für einen lokalen Rechner empfinde ich sie als unpassend.

    Von daher würde ich das gerne in C oder C++ programmieren, wie tausende andere Programme auch programmiert werden.

  14. #14
    Registrierter Benutzer Avatar von Berufspenner
    Registriert seit
    30.03.2002
    Ort
    Hamburg
    Beiträge
    567
    Schau, jetzt sieht die ganze Sache doch schon ganz anders aus. Du hast eine Idee, die du umsetzen und in diesem Zusammenhang auch gleich eine neue Sprache lernen möchtest. Das sind doch schonmal ganz andere Rahmenbedingungen. Einen hohen Anspruch kann man an das ganze Projekt dann auch ruhig haben, vorallem in Sachen Codegestaltung. Wobei schöner Code ja auch immer eine Frage der Erfahrung ist. Alles weitere ist dann relativ. Viel Spaß und Erfolg dabei.
    C und C++

  15. #15
    Registrierter Benutzer
    Registriert seit
    18.03.2005
    Beiträge
    211
    Ich habe das immer so verstanden, dass C quasi tot ist und jetzt alles in C++ gemacht wird.
    C++ ist eine weiterentwicklung von C, also C lebt (mit ein paar wenigen Modifikationen) in C++ weiter.
    C, bzw der C Anteil im C++, hat aber einen wesentlichen Vorteil: Er ist viel genauer, und vor allem binaer spezifiziert.
    Das heisst, das C Strukturen, pointer, typen .... zueinander compilerunabhaengig sind, waehrend bei c++ dem compiler viel mehr freiheit wegens optimierungen gelassen wird.

    Im Klartext heisst das, das alles was ueber compilergrenzen gehen soll, C sein muss, waehrend man bei c++ einen compiler definieren muesste.

    Betrifft also Hauptsaechlichst API's von OS, und Bibliotheken, die Compiler / Sprachunabhaengig sein sollen(die meisten Sprachen unterstuetzen C-Schnittstellen).
    Also Momentan geht ohne C ned viel. Das wird solange dauern, bis irgendwann mal eine ebenfalls performante und vor allem binaer spezifizierte Sprache sie abloesen wird. (der druck iss allerdings gering, da c seine pflicht tut ).

    Ciao ...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •