Programmieren lernen, welche Sprache?

T

Tim1974

Guest
Hallo,

ich überlege, ob ich wieder mit dem Programmieren anfangen soll.
Früher hab ich in Turbo-Pascal programmiert und schon relativ lange Programme geschrieben gehabt, simpelste Spiele und Datenbanken usw..

Was mich jetzt interessiert ist, welche Sprache am leistungsfähigsten ist und mit welcher man am meisten machen kann?
Ich dachte zuerst an C, aber wo ist der Unterschied zu C++ und C# und welche Derivate es da noch so gibt?
Oder wäre es sinnvoller eine weborientierte Sprache wie Java oder JavaScript zu lernen?

Wie ihr seht, hab ich wenig Ahnung von den Unterschieden der einzelnen Sprachen und wüßte einfach gerne, wo ich als Umsteiger von Pascal mich am besten zurecht finde und zudem wesentlich mehr Möglichkeiten bekomme.

Gruß
Tim
 
Eine Sprache ist immer nur so gut wie man sie auf ein bestimmtes Problem anwenden kann.
Keine Webapplikationen läuft in C, dafür jeder Microcontroller. Was willst du denn gerne programmieren?
 
Sprachen, die modern sind, sind Java, JavaScript, C#, Scala.

Suche dir 2 aus und starte eine kleines Projekt, wo du beide Sprachen kombinierst. Oder starte mit einer Sprache deiner Wahl. Man sollte erstmal wenig Theorie machen und an praktischen Beispielen wachsen. Mit steigender Komplexität steigen die Anforderungen an die Konzepte und dann eignest du dir die entsprechende Theorie an.

Man lernt auch immer an fertigen Beispielen. GitHub ist eine unerschöpfliche Quelle.
 
Was mich jetzt interessiert ist, welche Sprache am leistungsfähigsten ist und mit welcher man am meisten machen kann?

Du kannst mit vielen Sprachen praktisch alles machen. Aber Sprachen sind Werkzeuge, und das Werkzeug sollte entsprechend der anfallenden Arbeit gewählt werden. Du gehst ja nicht in deine Werkstatt und überlegst, was du jetzt mit deinem Hammer anstellen könntest...

Oder wäre es sinnvoller eine weborientierte Sprache wie Java oder JavaScript zu lernen?

Java und Javascript haben nichts miteinander zu tun. Der ähnliche Name hat nur etwas mit Marketing zu tun. Javascript wird vor allem genutzt, um Websites dynamisch zu machen, der Code wird also zusammen mit dem HTML-Dokument ausgeliefert und kann dieses dann nach der Auslieferung noch verändern. Java dagegen ist eine "normale" Programmiersprache, ist also darauf ausgerichtet, vollwertige Anwendungen darin zu schreiben.


Sag uns doch einfach, was du gerne programmieren würdest, dann können wir dir mit Sicherheit bessere Ratschläge geben. Generell gibt es hier eine Menge Beiträge zum Thema "Programmieren Lernen", aber da du ja nicht ganz neu in dem Thema bist, ist das alles vielleicht nicht das richtige für dich.
 
Was mich jetzt interessiert ist, welche Sprache am leistungsfähigsten ist und mit welcher man am meisten machen kann?
Man kann in fast jeder Programmiersprache alles machen.

Jede Sprache hat ihre Vor- und Nachteile.

Am leichtesten erlernt man Visual Basic und deren Nachfolger.
Das
Sub Main()
MsgBox "Hallo PCGH!"
End Sub

gibt ein Meldungsfenster mit dem Inhalt

Hallo PCGH!

aus.

Mit der leicht erlernbaren Syntax und der übersichtlichen Programmierumgebung kann man ganze Windows-Programme schreiben.
Durch die gute Kommentierbarkeit weiß man auch noch nach zehn Jahren, was man gemacht hat.

Ein Kompiler erstellt dann eine .exe, die man unter Windows oder anderen Systemen starten kann.
Damit ist das Programm auch hinreichend schnell.

Durch die aktive Syntaxkontrolle sieht man schon beim Quelltexterstellen, welche Möglichkeiten man hat (Variablen, Eigenschaften, Werte, ... ).

Einen Befehlsdurchlauf geht z.B. mit F8 zeilenweise mit Anzeige der zur Zeit gültigen jeweiligen Variablenwerte im Entwicklungsfenster.

Ich dachte zuerst an C,
C ist halt sperrig und nicht selbsterklärend.
Man muß lange und sehr konzentriert arbeiten, damit man es beherrscht.

aber wo ist der Unterschied zu C++ und C# und welche Derivate es da noch so gibt?
Das steht hier:
C++ – Wikipedia .

Oder wäre es sinnvoller eine weborientierte Sprache wie Java oder JavaScript zu lernen?
Kommt auf die Anwendung an.

Wie ihr seht, hab ich wenig Ahnung von den Unterschieden der einzelnen Sprachen und wüßte einfach gerne, wo ich als Umsteiger von Pascal mich am besten zurecht finde und zudem wesentlich mehr Möglichkeiten bekomme.
Ich würde mit Visual Basic oder VB.net anfangen, das ist Pascal am ähnlichsten.
 
Ich hab kein genaues Ziel, also es ist nicht so, daß ich jetzt ein bestimmtes Programm brauche und mir selbst schreiben will. Es geht mir erstmal nur darum was neues zu lernen, zu schauen wie weit ich komme, mit dem PC was sinnvolles zu machen, mein Gedächtnis und meine Konzentration dabei zu trainieren und natürlich auch um Spaß an der Sache.
Wenn ich wüßte, daß ich damit bestenfalls auch mal noch etwas Geld verdienen kann, wäre das ein zusätzlicher Ansporn, egal wie hypothetisch das am Anfang auch ist.
Darum würde ich schon gerne eine Sprache zu lernen versuchen, die sehr gefragt ist und das auch künftig bleibt.

Was mich an Programmen am meisten reizen würden, wäre alles was mit KI zu tun hat, aber schwerer gehts vermutlich auch kaum, oder?
 
KI im Sinne von Neuronalen Netzen ist in der Algorithmik und mit den richtigen Tools auch der Programmierung eigentlich ziemlich einfach.
Keras mit Tensorflow wäre da eine übliche Adresse. Das ist eine Umgebung welche auf Python aufbaut.
 
Was mich an Programmen am meisten reizen würden, wäre alles was mit KI zu tun hat, aber schwerer gehts vermutlich auch kaum, oder?

Da würde ich vielleicht erstmal nen Buch zu lesen ob KI überhaupt das ist was du dir darunter vorstellst :ka:
Empfehlen kann ich das Buch von Oliver Kramer "Computational Intelligence eine Einführung", hat mir gut geholfen um zu entscheiden ob ich KI also Modul im Studium wähle oder nicht.
 
Danke für die Hinweise.

Richtig ist, daß ich da wirklich keine Ahnung von habe, aber es würde mich halt reizen zu erfahren, wie gut eine KI heutzutage bestenfalls sein kann, was in naher Zukunft denkbar wird usw..
Davon unabhängig würde ich aber gerne Programmieren lernen, egal ob ich später nun mal an KIs tüffteln werde oder was ganz anderes programmiere, der Hauptaspekt für mich ist einfach der etwas sinnvolles am PC zu lernen und mein Gedächtnis und abstrakte Denkfähigkeit zu trainieren, was dann letztendlich dabei raus kommt ist völlig offen. :ka:

Mit Python ist nun wieder ein neuer Name gefallen, von der Sprache hab ich noch nie gelesen.
Meine Frage nach der leistungsfähigsten Programmiersprache bringt mich zu der Annahme, daß dieses die Sprache sein wird, in der z.B. Windows oder Unix/Linux programmiert ist, richtig?
 
Danke für die Hinweise.

Richtig ist, daß ich da wirklich keine Ahnung von habe, aber es würde mich halt reizen zu erfahren, wie gut eine KI heutzutage bestenfalls sein kann, was in naher Zukunft denkbar wird usw..
Davon unabhängig würde ich aber gerne Programmieren lernen, egal ob ich später nun mal an KIs tüffteln werde oder was ganz anderes programmiere, der Hauptaspekt für mich ist einfach der etwas sinnvolles am PC zu lernen und mein Gedächtnis und abstrakte Denkfähigkeit zu trainieren, was dann letztendlich dabei raus kommt ist völlig offen. :ka:

Mit Python ist nun wieder ein neuer Name gefallen, von der Sprache hab ich noch nie gelesen.

Das ist alles so unspezifisch, dass Du Dich erst mal entscheiden solltest, ob Du möglichst einfach Ergebnisse erzielen willst, oder ob Du im Detail etwas lernen möchtest.

Für mich klingen Deine Posts nach ersterem.
Das bedeutet, Du brauchst eine Sprache, für die es möglichst viele fertige Frameworks/Bibliotheken gibt, die bereits Lösungen für deine Aufgaben bieten und dann nur noch von Dir angesprochen werden.

-> Java, .NET-Sprachen, Python
Meine Frage nach der leistungsfähigsten Programmiersprache bringt mich zu der Annahme, daß dieses die Sprache sein wird, in der z.B. Windows oder Unix/Linux programmiert ist, richtig?

Nein.
Vergiss die Frage nach "Leistungsfähigkeit" und fang an zu Programmieren. Die meisten Fragen haben sich dann nach wenigen Wochen von selbst erledigt.
 
Meine Frage nach der leistungsfähigsten Programmiersprache bringt mich zu der Annahme, daß dieses die Sprache sein wird, in der z.B. Windows oder Unix/Linux programmiert ist, richtig?

Was denn von Windows?

Den Kernel? (Verwaltung und Kontrolle der Ressourcen)

Die Shell? (die grafische Oberfläche, Desktop, Window Manager)

Da muss man ein wenig differenzieren. Denn dort können verschiedene Programmiersprachen zur Anwendung kommen.
 
Mit Python ist nun wieder ein neuer Name gefallen, von der Sprache hab ich noch nie gelesen.

Python ist meiner Meinung nach ein super Einstieg in die Welt des Programmierens. Solange du nicht vorhast, ein Betriebssystem oder 3D-Software zu entwickeln, kannst du in Python praktisch alles machen. Nur um ein Beispiel zu nennen, das Backend von Youtube ist in Python programmiert.

Die klassischen Anwendungsfelder von Python sind wohl Webentwicklung (Backend), Datenanalyse (Machine Learning, Deep Learning, AI und whatever) und Scripte, die bestimmte Aufgaben einmalig erledigen sollen.
Wenn man 2D-Anwendungen entwickeln möchte, ist wohl eher Java angebracht, denn die JavaFX Library ist dafür wirklich extrem gut, aber auch in Python kann man einfache 2D Anwendungen programmieren. Ich habe z.B. mal ein Kartenspiel geschrieben, dass ich dann übers Internet mit Freunden spielen konnte. Allerdings sind die Grafikschnittstellen für Python eher weniger entwickelt als für andere Sprachen.
Was in Python nicht geht, sind Apps für Handys etc.

Python ist eine extrem ausdrucksstarke Sprache, man kann also in der Regel ein Programm in Python mit weniger Code schreiben, als in vielen anderen Programmiersprachen. Außerdem hat Python eine sehr angenehme Lernkurve.

Ich würde mir an deiner Stelle einfach mal die aktuelle Python Version installieren und mit diesem Tutorial hier anfangen. Selbst wenn du dich am Ende entscheidest, dass Python nicht die richtige Sprache für dich ist, ist die Zeit nicht vergeudet. Viele Konzepte sind in Python und anderen objektorientierten Sprachen gleich oder zumindest sehr ähnlich. Falls du Fragen hast, immer her damit ;-)

Edit: Außerdem ist Python sehr schön dokumentiert. 3.7.3 Documentation
 
Ich habe vor Jahren mal versucht mit C zu programmieren und irgendwie war das für einen Anfänger wie mich zu kompliziert und habe nie wirklich verstanden was ich da gemacht habe. Es vergingen Jahre ohne das ich mich wirklich mit dem Thema beschäftigte, bis letztes Jahr ich jemanden getroffen habe, die beruflich viel programmieren muss. Als ich fragte was das einfachste sei, sagte sie mir Python.

Vor kurzem bin ich auch endlich dazu gekommen es mal zu testen und so schwer ist es wirklich nicht, man versteht vieles gleich von Beginn an wenn man Englisch versteht ;) Spass beiseite, geht auch ohne Englischkenntnisse, Deutschsprachige Tutorials gibt es sicher genug im Netz.

EDIT: Gerade passend zum Thema: Humble Book Bundle: Artificial Intelligence & Deep Learning by Packt (pay what you want and help charity)
 
Ich habe vor Jahren mal versucht mit C zu programmieren und irgendwie war das für einen Anfänger wie mich zu kompliziert und habe nie wirklich verstanden was ich da gemacht habe.

Was aber nicht an der Sprache lag... Die Sprache ist nur ein Werkzeug, nicht mehr und auch nicht weniger. In jeder Sprache gibt es Variablen, Schleifen, Verzweigungen, etc. In einer Sprache werden die Variablen deklariert, in den anderen nicht. Die Lernkurve in C ist halt sehr steil, wenn man es wirklich lernen will, kommt man an zum Beispiel Pointer und Referenzen nicht vorbei. Aber wenn man es verstanden hat, ist man in der Lage extrem performanten Code zu schreiben. Dazu kommt noch, dass C (C++ ebenso) eben maschinennah ist und keinen Interpreter braucht, aber einen Compiler.

@TE: Wenn Du frustresistent und nicht auf schnelle Erfolge aus bist, lerne C/C++. Von C/C++ kann man so ziemlich alles erlernen, okay, Cobol vielleicht nicht :D
 
Ich möchte mich aber nicht gleich zu Beginn festlegen und eventuelle Möglichkeiten verbauen, denn es ist gut möglich, daß ich irgendwann 2D- oder 3D-Grafik programmieren möchte. Was ich jedenfalls erstmal nicht möchte sind Webanwendungen schreiben, oder Webseiten bauen, das hat mich noch nie so sehr gereizt, weil man ja auch einen Server braucht um diese erreichbar zu halten.

Primär gehts mir also darum performante Codes verstehen zu wollen und vielleicht selbst mal welche zu schreiben, vielleicht übernehme ich mich damit, vielleicht auch nicht.
Wenn ich jetzt mit C oder C++ einen Versuch mache, helfen mir dann meine Pascal-Kenntnisse von früher ein wenig, oder ist alles komplett anders und viel schwieriger?

Bekommt man eigentlich die Compiler und die Entwicklungsebenen für die genannten Programmiersprachen umsonst als Download (zumindest für Linux)?
 
Auf dem PC gibt es für jede Sprache freie Compiler. IDEs dagegen sind nicht immer Gratis, auch da gibt es aber z.B. mit Eclipse eine die schon ziemlich viel erschlägt.
Auch wenn ich selbst C-Mensch bin würde ich mich hier eher den Python Empfehlungen anschließen. Da man oft C-Backends bedient ist die Performance mehr als ausreichend für alle Spielereien. 3D ohne Engine zu machen ist eigentlich nur Selbstkasteiung und die Engines wiederum arbeiten eh mit eigenen Skriptsprachen für die jede Erfahrung in einer vollwertigen Sprache hilft.
 
Die Lernkurve in C ist halt sehr steil, wenn man es wirklich lernen will, kommt man an zum Beispiel Pointer und Referenzen nicht vorbei.

In C gibt es keine Referenzen. Und die Lernkurve ist wirklich extrem steil...

Aber wenn man es verstanden hat, ist man in der Lage extrem performanten Code zu schreiben.

Das stimmt, aber Performance ist in den allermeisten Fällen völlig uninteressant, vor allem für Anfänger. Rechenzeit ist im Vergleich zur Entwicklerzeit einfach so billig geworden, dass der Fokus eher darauf liegt, Programmieraufwand einzusparen. Lieber 10 Server mehr kaufen, als einen teuren Entwickler einzustellen...
Wenn man wirklich jedes bisschen Performance braucht, kommt man um C/C++ aber wohl eher nicht herum.

Ich würde einem Anfänger nicht nahelegen, mit C Programmieren zu lernen. C ist dann angebracht, wenn man wirklich auf jedes bisschen Performance angewiesen ist. Aber dann reicht es auch nicht, vernünftig in C zu programmieren, sondern man muss wirklich verstehen, wie Computer und Betriebssysteme funktionieren.

Versteh mich nicht falsch, ich halte C für eine sehr elegante Sprache (und C++ für eine Ausgeburt des Teufels, ähnlich wie PHP), aber als Anfänger kann man mit C einfach keine besonders spannenden Sachen machen, sondern beschäftigt sich noch damit zu verstehen, was du wie als Funktionsargument übergeben kannst. In Python machst du sowas eben einfach, ohne groß darüber nachzudenken und sendest schon deine ersten Nachrichten über das Internet. Python ist meiner Meinung nach einfach schöner, um damit rumzuspielen und Dinge auszuprobieren.

C bietet dagegen einfach keine große Abstraktion. Um irgendetwas in C zu machen, musst du in der Regel erst einmal das dahinterliegende System (wtf ist ein Filedescriptor?) verstehen.

Bekommt man eigentlich die Compiler und die Entwicklungsebenen für die genannten Programmiersprachen umsonst als Download (zumindest für Linux)?

Irgendeine IDE und irgendeinen Compiler bekommst du mit Sicherheit umsonst.
Ich kann persönlich die Jetbrains IDEs empfehlen, die gibt es für beinahe alle Programmiersprachen und sind dabei vom Aufbau mehr oder weniger identisch.
Pycharm für Python, IntelliJ für Java und CLion für C/C++. Zumindest von PyCharm und IntelliJ gibt es kostenlose Communityversionen, die für dich als Anfänger alles nötige mitbringen.

Ob dir deine Pascalkenntnisse etwas bringen kann ich dir leider nicht sagen, da ich Pascal nicht kenne ;-)
 
Ähm... genau, keine Referenzen... was übergebe ich denn bitte bei einem "call by reference" Aufruf? Bananen? Das Kommentieren vom Rest spare ich mir, vor allem die Passage "Performance ist in den allermeisten Fällen völlig uninteressant, vor allem für Anfänger."

Und wenn Du C++ für "Ausgeburt des Teufels" hältst, dann hast Du es nicht verstanden, klar, ist kein Java, da muss man die grauen Zellen echt anstrengen.
 
Zurück