ubuntuusers.de

Sprache zum Programmieren unter Linux?

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

detructor15

Anmeldungsdatum:
16. Januar 2007

Beiträge: 5733

Hi,

ich bin derzeit auf der suche nach einer gut unterstützten Sprache unter Linux. Die Sprache sollte keine interpreter Sprache sein (java, c#, python) aber auch nicht zu hardwarenahe (assembler) sein 😉.

Soweit ich das überblicke kommen da C++ und vala (wobei vala ja auch nur eine andere Schreibweise für ObjectiveC Code ist). Das Problem bei Vala ist, dass ich da keine vernünftige IDE finde. ValIDE hat keine Codecompletion und MonoDevelop hat zwar eig. Codecompletion, stürzt aber dauernd ab.

Bei beiden vermisse ich allerdings auch den Komfort den mir bspw. Visual Studio unter Windows bietet. (GUI Editor direkt integriert bspw.).

Bei C++ hab ich noch gar nicht so stark nachgeschaut, falls da jmd. eine gute IDE nennen kann würd ich das mal probieren 😉.

Gruß
detru

Fanatics

Avatar von Fanatics

Anmeldungsdatum:
25. August 2010

Beiträge: 1032

C++ in Verbindung mit Eclipse bietet sich m.E. an.

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

@detructor15: Vala basiert auf GObject und C, und hat mit ObjectiveC nicht das Geringste zu tun. ObjectiveC fristet unter Linux im Rahmen des GNUStep-Projekts nur ein kümmerliches Nischendasein.

Bei diesen Anforderungen bleiben eigentlich nur C, C++ und vielleicht noch D. Mit D kenne ich mich nur rudimentär aus, für C und C++ findest Du diverse IDEs, angefangen von Eclipse mit CDT bis hin zu eher Toolkit-spezifischen IDEs wie KDevelop oder Anjuta. Ausprobieren musst Du diese IDEs allerdings schon selbst, denn niemand weiß um Deine Bedürfnisse besser Bescheid als Du selbst.

freebirth_one

Avatar von freebirth_one

Anmeldungsdatum:
19. Juli 2007

Beiträge: 5051

Wohnort: Mönchengladbach

vala kenne ich jetzt nicht, c/c++ werden auf jeden Fall blendend unterstützt.

Für letzteres habe ich immer netbeans mit dem c++-Plugin verwendet; kate ist aber für kleinere Projekte auch nicht zu verachten.

Ansonsten schau mal unter Entwicklungsumgebungen


Eines noch (da du wenn ich das richtig sehe aus dem MS-Umfeld kommst und VS verwendet hast):

VS-C++ - Code ist nicht immer 1:1 auf Linux lauffähig, da Sachen, die die einen Bibs haben, in den anderen nicht vorhanden sind und umgekehrt. Windows kennt z.B. von Haus aus kein uint32_t, Linux kein getch() usw. Nur als Tipp ☺

detructor15

(Themenstarter)

Anmeldungsdatum:
16. Januar 2007

Beiträge: 5733

Lunar schrieb:

@detructor15: Vala basiert auf GObject und C, und hat mit ObjectiveC nicht das Geringste zu tun. ObjectiveC fristet unter Linux im Rahmen des GNUStep-Projekts nur ein kümmerliches Nischendasein.

ups, dann hab ich das gerad durcheinander geworfen 😉

Bei diesen Anforderungen bleiben eigentlich nur C, C++ und vielleicht noch D.

oh, dachte immer D wäre nur ein Aprilscherz oder sowas gewesen...dachte nich das das eine wirkliche Sprache ist.

für C und C++ findest Du diverse IDEs, angefangen von Eclipse mit CDT bis hin zu eher Toolkit-spezifischen IDEs wie KDevelop oder Anjuta.

probiere gerade CodeBlocks aus...sieht ganz nett aus.

Ausprobieren musst Du diese IDEs allerdings schon selbst, denn niemand weiß um Deine Bedürfnisse besser Bescheid als Du selbst.

jup 😉

mal interesse halber: warum lässt du vala außen vor?

@freebirth wusste gar nicht das es für netbeans ein c++ plugin gibt. Unter Microsoft war ich nur mit C# und VB.NEt unterwegs 😉

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

@detructor: Da Vala auf GObject basiert, ist es nicht universell nutzbar, insbesondere in Situationen, in denen eine zusätzliche Abhängigkeit gegen GObject aus welchen Gründen auch immer nicht erwünscht ist. Letztlich ist Vala ja nicht mehr als GObject-C in anderer Syntax. Überspitzt gesagt taugt Vala also nur für Gnome-Programme, und die kann man dann auch gleich in C# oder Python schreiben.

Demgegenüber sind C und C++ nicht an bestimmte Bibliotheken gebunden, nicht mal an ihre eigene Standardbibliothek.

detructor15

(Themenstarter)

Anmeldungsdatum:
16. Januar 2007

Beiträge: 5733

hmm, okay danke für die Erklärung.

vinho

Anmeldungsdatum:
10. September 2010

Beiträge: 91

Lunar schrieb:

@detructor: Da Vala auf GObject basiert, ist es nicht universell nutzbar, insbesondere in Situationen, in denen eine zusätzliche Abhängigkeit gegen GObject aus welchen Gründen auch immer nicht erwünscht ist.

Ich habe schon mit Vala gearbeitet. Und die Situationen, in denen eine Abhängigkeit gegen GLib/GObject absolut nicht erwünscht ist, halte ich für sehr überschaubar, etwa wenn man Kerneltreiber entwickelt. Bei C++ hat man in der Regel die Abhängigkeit zu libstdc++, bei Objective C zu libobjc, bei D zu Phobos etc. Was sollte also gegen eine Bibliothek sprechen, die bei Linux eh quasi immer geladen ist, selbst unter KDE?

Demgegenüber sind C und C++ nicht an bestimmte Bibliotheken gebunden, nicht mal an ihre eigene Standardbibliothek.

Ja, aber viel anfangen kann man damit dann auch nicht. Bei Vala gibt es übrigens auch ein Posix-Profil, das auf GLib/GObject verzichtet. Damit ist man dann aber auch sehr eingeschränkt.

Letztlich ist Vala ja nicht mehr als GObject-C in anderer Syntax. Überspitzt gesagt taugt Vala also nur für Gnome-Programme, und die kann man dann auch gleich in C# oder Python schreiben.

Vala und GLib/GObject gibt es auch für Windows. Man muss nichtmal GTK+ verwenden, sondern kann auch einfach Kommandozeilenprogramme entwickeln, aber auch für GTK+ unter Windows. Den Fotomanager Shotwell, der in Vala geschrieben ist, gibt es beispielsweise auch für Windows zum Download.

Auch wenn ich von Vala angetan bin weiß ich nicht, ob man es einem Einsteiger empfehlen soll. Man sollte vorher schon irgendwie Erfahrungen z.B. mit Java oder C# gemacht haben, weil sich das englischsprachige Tutorial eher an Leute richtet, die schon programmieren können.

Ich selbst benutze zwar keine IDE, weil ich sowas wie Completion nicht benötige, aber eigentlich sollte "Val(a)IDE" das laut Featureliste der Homepage beherrschen. @detructor: Hast du vielleicht nicht die richtige Tastenkombination gedrückt?

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

detructor15 schrieb:

ich bin derzeit auf der suche nach einer gut unterstützten Sprache unter Linux. Die Sprache sollte keine interpreter Sprache sein (java, c#, python)

Ich wage mal nachzufragen: Wieso? Ist das eine Bauchsache oder hast Du da handfeste Gründe? Zumal Du dann ja das sagst:

aber auch nicht zu hardwarenahe (assembler) sein 😉.

Insofern scheinst Du ja nicht in Richtung Kernel / Embedded System zu gehen. Das wären für mich jetzt die Killerargumente gegen viele / einige obige Sprachen gewesen.

Auch wenn jetzt vielleicht einige unken könnten, denke ich schon, dass man da mal nachfragen darf.

detructor15

(Themenstarter)

Anmeldungsdatum:
16. Januar 2007

Beiträge: 5733

@Lysander ich möchte zum einen schon in der Lage sein Treiber zu schreiben, bspw. gibts einen Treiber für mein G13 der komplett in C/C++ geschrieben ist, sehr hübsch. Natürlich hab ich nichts dagegen auch mal einige Zeilen Assembler zu schreiben (wenn ich es könnte), aber ich möcht halt nicht ein Programm komplett in Assembler schreiben.

Wg. ValIDE da passiert bei mir einfach nichts.

vinho

Anmeldungsdatum:
10. September 2010

Beiträge: 91

detructor15 schrieb:

@Lysander ich möchte zum einen schon in der Lage sein Treiber zu schreiben

Unter Linux ist das C. Die Frage ist, ob Treiberentwicklung das Erste ist, was du unter Linux tun möchtest. Du solltest vermutlich mehrere Sprachen lernen, am besten jedes Jahr eine weitere. Irgendwann hast du dann den Überblick, was wann wo für den jeweiligen Zweck für dich ab besten geeignet ist.

Natürlich hab ich nichts dagegen auch mal einige Zeilen Assembler zu schreiben (wenn ich es könnte), aber ich möcht halt nicht ein Programm komplett in Assembler schreiben.

Wg. ValIDE da passiert bei mir einfach nichts.

Vielleicht hast du einfach nur eine ältere Version der IDE, bei der das noch nicht geht. In deinem Profil sehe ich, dass du Ubuntu 9.10 installiert hast. Du kannst ja mal dieses PPA hier ausprobieren: https://launchpad.net/~vala-team/+archive/ppa

Ansonsten hat noch Anjuta in der neuesten Version, die bei Ubuntu 10.10 dabei ist, Vala-Support.

vinho

Anmeldungsdatum:
10. September 2010

Beiträge: 91

selbst entfernt

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

@vinho: Man kann mit C und C++ auch ohne Standardbibliothek viel anfangen. In vielen Umgebungen werden die Standardbibliotheken dieser Sprachen oder zumindest Teile davon durch eigene Bibliotheken ersetzt, unter anderem auch in KDE und Gtk.

Natürlich spricht nichts gegen Bibliotheken im Allgemeinen, ganz im Gegenteil. Es lag für mich nur nahe, dass der OP sich auch nicht an eine bestimmte Bibliothek binden möchte, wenn er Interpreter-Umgebungen bzw. virtuelle Maschinen bereits von vorne herein ausschließt.

vinho

Anmeldungsdatum:
10. September 2010

Beiträge: 91

Lunar schrieb:

@vinho: Man kann mit C und C++ auch ohne Standardbibliothek viel anfangen. In vielen Umgebungen werden die Standardbibliotheken dieser Sprachen oder zumindest Teile davon durch eigene Bibliotheken ersetzt, unter anderem auch in KDE und Gtk.

Aber Qt benötigt doch auch libstdc++, welche wiederum libc benötigt. GTK+ benötigt GLib, welche wiederum libc benötigt. Auch libboost benötigt libstdc++. Eigentlich fällt mir nur der Kernel ein, wo nichtmal libc verwendet wird.

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

@vinho: Ach was ... natürlich hängen Qt und GLib noch von der jeweiligen Standardbibliothek ab, zum einen, weil sie diese intern selbst verwenden, zum anderen, weil sie Kompatibilität zur Standardbibliothek wahren müssen. Als Entwickler nutzt man die Standardbibliothek nicht oder zumindest kaum, sondern verwendet Typen und Funktionen aus Qt oder Glib. Deswegen ja auch „Teile der Standardbibliothek“.

Boost dagegen ergänzt die Standardbibliothek, und sucht nicht sie zu ersetzen.

Antworten |