Programmiersprache lernen - welche ist sinnvoll und für mich realistisch zu erlernen?

GregoryH schrieb:
Sowas wie MySQL ist keine Progammiersprache.
MySQL ist natürlich nur ein RDBMS, aber SQL ist (je nach Auslegung) Turing Vollständig :D

GregoryH schrieb:
Java und C# sind zwar schön um GUIs zu basteln aber mMn fürchterliche Sprachen. GC lässt grüßen.
Selten so einen Unfug gelesen.
Java und GUI ist zwar seit JavaFX ganz brauchbar, aber die meisten Java Programme sind Server Anwendungen. Netflix, Sixt, Idealo haben ihr Backend zu riesigen Teilen auf Java aufgebaut. Und Google setzt auch massiv auf Java.
Viele Datenbanken und moderne Data Storages sind in Java geschrieben: Neo4j, Lucene, Solr, Elasticsearch, Hadoop.
Deiner Auffassung nach dürften die alle massive Probleme mit ihrer Software haben, oder? :D Seltsamerweise sind sie extrem erfolgreich und gehören zu den besten und zuverlässigsten Anwendungen in ihrem jeweiligen Bereich.

Und der GC verrichtet im Normalfall hervorragend und total unauffällig seine Arbeit. Und falls man tatsächlich mal an seine Grenzen kommen sollte, muss man halt selbst an den Stellschrauben drehen.
Außerdem haben die Sprachen selbst überhaupt nichts(!) mit dem GC zu tun. Es sind Sprachen. Nicht mehr, nicht weniger.

Von der Syntax und den bereitgestellten Bibliotheken sind Java und C# ganz vorne mit dabei. Sie sind nicht minimalistisch und nicht sonderlich tolerant, aber genau das macht sie auch so einfach zu lesen und verstehen.

Und extrem wichtig für Anfänger ist nunmal ein einfacher Einstieg, verständliche Fehlermeldungen und ein ordentlicher Debugger. Und speziell da kann ich mir nichts besseres als eine interpretierte Sprache (mit oder ohne VM) vorstellen. Der Code bricht ab und sagt: In Datei X, Zeile Y ist Fehler Z aufgetreten.
 
Wenn du hauptsächlich für AI/DeepLearning/BigData programmieren lernen willst, wäre wie schon erwähnt Python gut geeignet.
Die zweite Sprache die in dem Bereich häufig verwendet wird ist Matlab, das wurde hier noch garnicht erwähnt. Die ist aber nicht kostenlos verfügbar, als Student solltest du aber eine (nahezu) kostenlose Lizenz bekommen können.

Da es im Prinzip egal ist, womit man anfängt, würde ich an deiner Stelle zu Python greifen, da du ja ziemlich genau zu wissen scheinst, was du machen willst. In 2,5 Monaten wird man zwar kein toller Softwareentwickler, aber es sagt ja auch niemand, dass man sich danach nicht weiter damit beschäftigen kann.
 
Bei 2,5 Monaten kann mans sein lassen. Für die Zeit eine Skriptsprache, mehr nicht.
Ich bezweifle auch, dass Du mit 2,5 Monaten Dir über das Können anderer ein Urteil bilden kannst.
 
Auch wenn ich persönlich Python nicht mag: Für den Bereich gibt es mMn nichts passenderes als Python.

​C++ wäre zu low level für dich und Matlab/Octave(kostenlose Variante) zu mathematisch.

​Mit Python kommst du praktisch schnell ans Ziel und findest viel Material im Internet. Dadurch kannst du auch mit sehr limitierten Python-Kenntnissen viel damit machen. Die größeren Frameworks im AI Bereich setzen alle auf Python: TensorFlow, CNTK, Caffe, Keras, PyTorch, ...
 
Zuletzt bearbeitet:
@xuserx: Scrum-Berater :D Dann bin ich hier ja absolut der Richtige, bin Scrum Master und Agile Coach von berufswegen ;)
 
Während der MA eine Programmiersprache (sonstwelcher Auslegung) lernen? :shock:

Tu's nicht. Das verrennt sich nur. Es sei denn natürlich, Du bist Dir Deiner MA so dermaßen sicher, daß Du die komplett abgelenkt immer noch ausm Ärmel schüttelst (und es ist gar nicht mal so unwahrscheinlich, daß Programmierung einen Großteil Deiner Zeit beanspruchen wird).


Mich wundert nur: bis zur MA keine Programmiersprachen vermittelt bekommen? Das Thema suggeriert ja doch einen gewissen IT-Bezug, da hätte ich gedacht, irgendwas Programmiermäßiges wäre da Teil des Stoffes gewesen... na gut, wenn nicht, dann nicht.


Mit irgendwelchen Namen für Sprachen will ich da gar nicht um mich werfen. VB könnte, ich betone KÖNNTE ein Kompromiß sein, weil das schweineeinfach ist und einem kaum was abverlangt...

... ABER man muß bedenken, daß VB bereits lange abgekündigt ist, MS tut für VB nichts mehr, außer es (planmäßig) irgendwann wegzuwerfen, und nach einer Weile VB nervt es einen nur noch an, daß Dinge, die anderswo biereinfach gehen, in VB erst selber umständlich implementiert oder umschifft werden müssen.

Schlimmer: die von VB verwendeten Konzepte sind so tot wie Sand... Steine...naja... also schon länger tot. Mit dem Code, den man hat, kann man nichts anfangen; Portieren geht nicht, kann man bloß noch wegwerfen.


VB als Teil der MA, soweit erforderlich, daher ja: Einfach gelernt, einfach ein kleineres Problem da hingepackt in VB-Code, fertig.

Aber für die Zukunft? Definitives Nein.
 
benneque schrieb:
Selten so einen Unfug gelesen.
Java und GUI ist zwar seit JavaFX ganz brauchbar, aber die meisten Java Programme sind Server Anwendungen. Netflix, Sixt, Idealo haben ihr Backend zu riesigen Teilen auf Java aufgebaut. Und Google setzt auch massiv auf Java.
Viele Datenbanken und moderne Data Storages sind in Java geschrieben: Neo4j, Lucene, Solr, Elasticsearch, Hadoop.
Deiner Auffassung nach dürften die alle massive Probleme mit ihrer Software haben, oder? :D Seltsamerweise sind sie extrem erfolgreich und gehören zu den besten und zuverlässigsten Anwendungen in ihrem jeweiligen Bereich.

Die Performance von Java ist katastrophal schlecht im Vergleich zu systemnahen Sprachen. Was glaubst du warum die richtig großen Konzerne (Google, Facebook, Mozilla, ...) ihre ganzen neuen Projekte fast ausschließlich in neuen und modernen Sprachen wie Go, Rust und C++ schreiben?

Gerade bei solchen Großanwendern skaliert das ohne Ende. Die von dir genannten Projekte sind halt schon ewig lange etabliert gerade was den Profi-Bereich angeht. Das heißt nicht das Java eine schöne oder effektive Sprache ist.

Und zum Thema Error Messages: Schau dir dagegen mal Rust an. Extrem detaillierte und hilfreiche Errormessages zur Compile-Time.
Bei Java hab ich jedes mal gefühlt Gehirnskrebs bekommen wenn es zwischendrin dann irgendwann einen Error geworfen hat. Waaaaaaaaaaaa.

Und ich glaube was Libraries angeht hat auch java keine Chance gegen C++. Und das Eco-System von rust wächst stetig und in einem Wahnsinns Tempo, ist mMn die wohl vielversprechenste systemnahe Hochsprache die es aktuell gibt.
 
Zuletzt bearbeitet:
Leute, das driftet hier schon wieder viel zu sehr in Details ab. Die ganzen Infos hier nützen dem TE genau nichts!

@TE
Wenn du dich speziell für AI interessierst, ist Python da mMn momentan die Sprache der Wahl, wie hier schon öfter geschrieben wurde.
 
Python und gut.

Oder R, da das noch keiner vorgeschlagen hat.
 
Traurig das User wie GregoryH solche Threads immer als Plattform nutzen bestimmte Programmiersprachen in Schubladen zu stecken oder gar pauschal als "obsolet" zu bezeichnen...

Programmiersprachen wurden mit unterschiedlichen Zielen entwickelt und eigenen sich von Anwendungszufall zu Anwendungsfall unterschiedlich gut. Ich denke auf die Frage des TE wurde ausreichend eingegangen. Warum man nun den Thread nutzt um subjektives Halbwissen loszuwerden verstehe ich nicht.

PS: GC lässt grüßen
 
Und vor allem sind Sprachen schlicht und einfach nur Sprachen. Mit dem richtigen Compiler kann ich sowohl 100% nativen Java Code schreiben, oder auch C / C++ Code, der in der JVM mit Garbage Collection läuft. Die Sprache hat hinten und vorne nichts mit der (virtuellen) Maschine zu tun, auf der sie läuft.

Speziell die JVM und Java kompilieren den Code während der Laufzeit in mehreren Stages, um hochperformanten nativen Code zu erzeugen. Dieser Code kann sogar schneller als C Code sein, weil der Jit Compiler diverse Optimierungen durchführen kann, die vor der Laufzeit überhaupt nicht möglich sind.

Beispiel (Pseudocode, damit sich hier niemand angegriffen fühlt :D ):
Code:
function foo() {
  if(GLOBAL_DEBUG_FLAG == true) {
    logger.log("foo()");
  }

  someOtherFunction();
}
Der Jit Compiler der JVM kann das komplette if-Statement (und auch den darin enthaltenen Code) entfernen, je nachdem, ob das Debug Flag true oder false ist. Zusätzlich wird die Methode zur Laufzeit noch mal komplett neu in nativen Code kompiliert, sobald sich das Flag ändert.

Benchmarks von interpretierten Sprachen werden auch meist schlicht und ergreifend falsch erstellt, sodass nur die Performance des interpretierten Codes gesehen wird, aber nicht die Möglichkeiten der Jit Compiler.

Grundsätzlich erfordern die meisten aktuellen Projekte und Arbeitgeber, dass man schnell und effizient zum Ziel kommt. Das bedeutet: ausdrucksstarker Code, gute und solide Libraries und sich auf's Wesentliche konzentrieren. Und Speichermanagement ist da einfach eher lästig und fehleranfällig.
 
Zurück
Oben