Linux Programmierung - Welche Programmiersprache?

Rotfuchs

New member
Themenstarter
Registriert
7 Apr. 2011
Beiträge
577
Hallo,

Ich in meinem Leben bis jetzt mit einigen Programmiersprachen in Kontakt gekommen. Da ich im Sommer einen Studiengang beginne, welcher sich auch mit Softwareprogrammierung auseinandersetzt, möchte ich eine neue Programmiersprache erlenen und/oder eine bereits bekannte weiter vertiefen. Die Bewertung erfolgt auf einer Skala von 1-10 - wobei 10 professionelle Kenntnisse und 1 eher Einstiegskenntnisse sind) Folgende Kenntnisse besitze ich bereits:

Privat "erlent":
- PHP & MySQL (4)
- HTML (3)

Während des Abiturs:
- Delphi 5 (4)

Während meiner Ausbildung:
- Python (2)
- C# (6)

Bis auf Python wird sicherlich keiner dieser Sprachen für eine Anwendungsprogrammierung unter Linux interessant sein. Python ist eine gute und mächtige Programmiersprache - gefällt mir aber vom Aufbau her nur bedingt. Mit C# möchte ich mich nicht weiter beschäftigen, da das Environment nur unter Windows vernünftig läuft und ich künftig kleinere Anwendungen für Linux programmieren möchte. Nach meiner Einschätzung wäre C++ eine gute Wahl, jedoch habe ich hier bedenken, da ich bis jetzt noch nie die Speicherverwaltung selbst übernehmen musste. Der QT-Designer gefällt mir allerdings ganz gut und auch die Plattformübergreifende Programmierung mit Qt.

Ich hoffe ihr habt ein paar Tipps für mich - evt. auch eine Sprache die ich selbst nicht bedacht habe - und könnt mir da etwas helfen und habt evt. auch Literaturtipps für den Einstieg in die jeweilige Programmiersprache. Mein erstes "Etappenziel" wäre ein Musikplayer der Mp3's mit Lame abspielen kann und ggf. über eine Datenbank die IDv3-Tags speichert und verwaltet. (Ohne editierung).

Grüße
Rotfuchs
 
Du hast zwar nicht genau gesagt, was Du studieren wirst, aber ich denke auch in Hinsicht auf die Uni macht Java Sinn. Bei uns an der TU Berlin wurden zumindest alle Einsteiger und Fortgeschrittenen Programmierkurse entweder ausschließlich oder zumindest auch in Java angeboten. Je nachdem wie sehr Du einen guten Abschluß anstrebst, kann das also durchaus bereits viel Zeit im Semester sparen ...
 
Ihr habt aber alle ein komisches Verständnis von "Programmieren können"!

Die Möglichkeit, sich für ein Projekt eine Sprache aussuchen zu können, gibt es nicht oft in der richtigen Welt. Ich halte die Fähigkeit, sich gegebenen Problemen anpassen zu können, für viel wichtiger. Solange du die technischen Details kennst und schonmal ein paar größere Projekte durchgezogen hast (idealerweise mal in verschiedenen Gebieten und mit Sprachen oder Frameworks mit verschiedenen Paradigmen), werden Herausforderungen an der Uni sowieso ein Klacks werden, egal, ob du die Sprache kennst oder nicht. Wenn du es mit dem Programmieren ernst meinst, ist es vermutlich auch besser, bei einem existierenden Projekt mitzuhelfen, da man dort zu den richtigen Verhaltensweisen in Stil, Dokumentation, Versionskontrolle etc. gezwungen wird.

Wenn du selber was auf die Beine stellen willst, ist die Sprache recht wurscht. Zum Einstieg ist es hilfreich, alles, was keine gute Dokumentation hat, in die Tonne zu treten, sonst ist man schnell frustriert.

Und BTW: C# läuft mit mono einwandfrei auf Linux, dazu gibts ne gute IDE (MonoDevelop) und vernünftige GTK-Bindings. Das fertige Binary läuft auf Win und Linux gleichermaßen, genau wie bei Java.
 
Ich bin begeistert: https://live.gnome.org/Vala

- wird zu C Code kompiliert
- Bindings zu C libs
- Basis sind Glib und GObject
- Unity ist z.b. in Vala geschrieben
 
Zuletzt bearbeitet:
Da es so viele Sprachen gibt, is natürlich die Frage, was du damit anfangen willst. C++ und Qt halte ich für ne sichere Investition :) Das entwickelt sich ja ziemlich plattformübergreifend, d.h. egal ob du was für Windows, GNU/Linux, Android, M[eego|aemo](?) etc. machen willst, Qt ist verfügbar. Durch KDE SC gibt es auch schon zahlreiche Programme, bei denen man sich, dank Freier Software, auch unkompliziert mit einbringen kann.

Wenn man es sich leisten will, auch interessante Ansätze kennenzulernen und die (kommerzielle) Verwertbarkeit nicht primär ausschlaggebend ist, kommt vielleicht auch Haskell in Frage :) (learnyouahaskell.com)

Am Ende des Tage geht der Trend aber immer zu brainfuck :P
 
Mich wundert, dass du selbst nicht auf den Gedanken mit Java kamst. Da deine Kenntnisse ja offenbar am stärksten bei C# sind, ist Java eigentlich das naheliegendste (von mono einmal abgesehen). Auch die Toolunterstützung ist bei Java außerordentlich gut. Es gibt mehrere professionelle IDEs (Eclipse, Netbeans, Idea) und du findest an allen Ecken und Enden Tutorials. Noch dazu bist du mit Java wirklich plattformunabhängig (so lange du den Eclipse-Schwachsinn SWT vermeidest und Swing für die Oberflächenentwicklung einsetzt).

Da du ja für die Oberflächenentwicklung von Delphi und Visual C# verwöhnt bist, solltest du auch eher nicht Eclipse als IDE einsetzen, sondern Netbeans oder Idea, denn beide haben wirklich hervorragende GUI Builder und nutzen auch Swing statt SWT. Insbesondere Idea unterstützt dabei auch das FormLayout von JGoodies, was meiner Meinung nach sehr zu empfehlen ist für komplexere GUIs, gerade wenn diese gelegentlich angepasst werden müssen.

Aber im Eingangsposting sprachst du von "kleineren Anwendungen". Java ist nicht gerade dafür gemacht. Der Overhead kann da etwas viel sein. Daher eignet sich eine Skriptsprache wie Python als Zusatzkenntnis schon nicht schlecht, auch wenn es dir nicht wirklich gefällt. Aber im Endeffekt kannst du natürlich auch kleinere Anwendungen mit Java erstellen.
 
Ich hoffe, dass ich mal eine kleine Frage mit in den Raum werfen darf:

Ich habe auch Kenntnisse in Delphi XE2, habe jedoch nur unter Windows 7 in Embarcado RAD Studio programmiert.
Wie sieht es denn unter (X)Ubuntu aus. Soweit ich weiß, gibt es das leider nicht für Linux und bis jetzt fand ich leider nur Lazarus. Das soll, soweit ich weiß auf einem älteren Niveau sein. Oder muss ich da auf eine Win7 VM ausweichen?
 
Delphi als Plattform ist tot.
Nimm Python und vertiefe dich in diese Sprache, wenigstens >7. Java wirst du auf der Uni lernen. Löse dann jede Aufgabe in beiden Sprachen.
 
Ich gehe auf ein Berufskolleg wo wir in verschiedenen Blöcken uns verschiedene Programmiersprachen anschauen. Hat sich das mit Delphi nicht ca. 2010 geändert mit den OOP-Einführungen?

Ich würde halt wie der Threadersteller kleinere Programme für Linux sowie Windows 7 programmieren.. und als nächstes steht bei uns ohnehin C++ an. Wobei ich erwähnen sollte, dass dies nur in Blöcken geschieht. Das heißt, 6 Wochen C++, dann im 12. Schuljahr 6 Wochen C#, dann Javascript, ... - letzendlich müssen wir privat selber mit dem weitermachen, was uns am ehesten gefällt.

edit:
Ich hab nun einige IDEs gefunden, u.a. Code::Blocks, NetBeans & Eclipse. Die beiden letzten sind mir noch aus Windows bekannt, wurden jedoch nie genutzt.
Die werden auch relativ oft empfohlen, vorallem code:Blocks. Was sagt ihr?

Angemerkt: Momentan schreib ich nur kleine Konsolenprogramme, wie damals unter Windows. Trotzdem wäre ein GUI-Designer erwünscht.

edit2:
ich nutze nun erstmal code::blocks und ich habe mir 2x C++ heute bei Amazon bestellt (2x von GalileoComputing)
 
Zuletzt bearbeitet:
Ich hab nun einige IDEs gefunden, u.a. Code::Blocks, NetBeans & Eclipse. Die beiden letzten sind mir noch aus Windows bekannt, wurden jedoch nie genutzt.
Die werden auch relativ oft empfohlen, vorallem code:Blocks. Was sagt ihr?
Netbeans und Eclipse sind halt Java-IDEs, die auch C++ können. Wenn du jedoch nicht vor hast auch in Java zu entwickeln, würde ich dir zu einer "richtigen" C++ IDE wie code::blocks raten. Was anderes wäre es, wenn du sowohl C++, als auch Java nutzen würdest. Dann wäre es natürlich schön sich nicht in mehrere IDEs einarbeiten zu müssen.
 
Hey,

ich wollte euch kurz nochmal einen Einblick in den weiteren "Werdegang" geben. Der Studiengang heißt "Informatik - Softwaretechnik" und ich werde ihn berufsbegleitend absolvieren. Der Schwerpunkt liegt hier auf Softwareentwicklung. Mir geht es aber in erster Linie darum, das ein oder andere "komplexere" Programm schonmal vorab zu Programmieren um mir den generellen Aufbau/Ablauf/Synthax nochmal zu Gemüte zu führen (Viele der OoP sind ja doch recht ähnlich konzipiert), einfach nochmal für mich als Übung (nat. auch als Vorbereitung). Ich habe mich jetzt nochmal mit vertiefender Lektüre für PHP & MySQL versorgt und werde wohl doch auf Java zurückgreifen, weil sich das zwecks Webprogrammierung doch anbietet.
Hat hier noch jemand eine Einstiegslektüre für mich? - bis jetzt habe ich immer ganz gerne auf die Galilleocomputing-Bücher zurückgegriffen.

Grüße
Rotfuchs
 
Wenn dich niemand zwingt PHP zu benutzen (oder sehr sehr gut bezahlt) dann halt dich von PHP fern. Für Webentwicklung würde ich eher auf Ruby (on Rails) setzen. Auch interessant in diesem Zusammenhang ist Python. Enterprisewebprojekte sind zum Teil mit Java oder mit .NET-Technologie realisiert.
 
Hey,

ich kenn mich nun aber schon ziemlich gut in PHP aus - das war die erste Sprache die ich überhaupt gelernt habe. Vielleicht nicht mehr allzu relevant, aber prinzipiell fühle ich mich damit noch am "wohlsten", da ich dort alles in eigeninitiative erlent habe und nicht durch Schulstoff "vermurkst" bin.
 
Hey,

ich kenn mich nun aber schon ziemlich gut in PHP aus...

Zeit mal über den Tellerrand zu schauen. :)

Meine Empfehlung für das Erlernen von OOP ist Smalltalk. Eine im Gegensatz zu Java oder C++ "echte" objektorientierte Sprache. Entwicklungsumgebung und GUI werden gleich mitgeliefert.
Viele moderne Sprachen wie Java, Ruby, Python oder Perl6 wurden massgeblich von Smalltalk beeinflusst. Smalltalk ist für Linux, Windows und MacOS (u.v.a.m.) verfügbar. Programme laufen ohne Anpassung auf den verschiedenen Systemen.
Mit Visualworks uns Squeak sind ganz moderne Implementierungen auf dem Markt.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben