Welche „Programmiersprache“ sollte man lernen?

Hallo,

Ich bin mir bewusst, dass die Frage sehr allgemein gehalten ist und dazu geeignet ist, unqualifizierte Kommentare abzugeben. Trotzdem versuche ich es.

Ich will programmieren lernen. Ich habe auch schon ein paar Ziele auf den Schirm. Da ich nicht mehrere Sprachen parallel lernen will, soll die erste eine optimale Wahl darstellen. Ich schwanke derzeit zwischen Java mittels eclipse und C# via Visual Studio.

Ich werde im ersten Projekt eine lange Text-Datei mit einem automatisch generiertem Protokoll öffnen wollen, aus dem dann Zeitstempel mit Messwerten extrahiert und als Diagramm dargestellt werden sollen.

In einem zweiten Schritt soll diese Datei während des Tests alle Minute gelesen werden und das Diagramm „live“ erstellt werden.

Im dritten Schritt werde ich heraus finden müssen, wie der Dienst die Daten bereit stellt um sie in die Datei zu schreiben und diese Daten aus dem Dienst auslesen und im vierten Schritt zusätzlich noch von einer festen IP im Netzwerk weitere Daten auslesen, anzeigen, grafisch darstellen und protokollieren.

Weitere Projekte dieser Art werden folgen.
Was glaubt Ihr, mit welcher Sprache wird man sich dem Problem am besten nähern? Welche Sprache ist „einfacher“ zu lernen, wo wird man die besseren, wo die schnelleren Ergebnisse bekommen? Was ist aus Eurer Sicht das Optimum? Auch wenn man, soweit möglich, in die Zukunft schaut.

Grüße
Pierre

Nimm Python.

3 Like

Hast du auch irgendwelche Argumente dafür?

Also, Python hat eine reiche Sammlung an Bibliotheken (Visualisierung, Netzwerk Analyse und Arbeit mit Lokalen Dateien), ist bei der Ausführungszeit nah an der Performance von C Code und es gibt sehr viele gute Ressourcen um diese objektorientierte Skriptsprache zu lernen.

Viele Entwickler schwören auf Python als Sprache um schnell Ergebnisse zu erreichen.

1 Like

Wenn das ganze jetzt im professionellen Umfeld laufen soll, dann würde ich so etwas mit Amazon Web Services umsetzten. Mit den AWS hast Du dann die Möglichkeiten deine Daten z.b. in einer Time-Series Datenbank wie Graphite zu speichern und eine Visualisierung z.B. mit Grafana zu bauen.

Python läuft auch in AWS Lambdas welche dir eine Serverlose Anbindung an die API deiner Wahl ermöglicht.

1 Like

Auch hallo

Der Hinweis von wg. Python inkl. Bibliotheken (evtl. i.V. mit der IDE „Anaconda“ oder Plugin für VS / VS Code) ist sogar ziemlich gut. Auch wenn die Konzepte von Java/C# mit denen von Python (z.B. in der OO-Programmierung) nicht vergleichbar sind. Für Weiteres siehe die Resourcen unter https://goalkicker.com/ (Java, C#, Python,…)

mfg M.L.

1 Like

Mal ein ganz anderer Vorschlag: Python!

Es gibt eine unendliche Menge an Modulen (Bibliotheken), die schnell per Kommandozeile nachinstalliert werden können, und man kann mit sehr wenig Code sehr viel erreichen.

Ich selbst kann C und C++, in Java hab ich mal ein 50zeiliges Feature in bestehenden Code eingebaut. C# kann ich lesen.

Aber so weit irgend möglich, mache ich nur noch Python, weil eben extrem schnell.

Zum Beispiel: Kalender im ICAL-Format von einer Webseite runterladen, lesen und prüfen, ob heute ein Event stattfindet. Wenn ja, eine Nachricht mit dem Ort in eine Telegram-Chatgruppe schreiben. Der Code dazu ist vielleicht 20 Zeilen lang, da ist man mit anderen Sprachen noch nicht mal mit dem Vorgeplänkel durch…

Und grade, wenn es darum geht, Daten aus Dateien oder sonstigen Ressourcen zu fressen, ist Python extrem mächtig.

3 Like

Ganz anderer? Er wurde schon 2 Stunden vor dir gemacht. :wink:

Mir käme da weder C# noch Java in den Sinn. Python scheint mir wegen der Riesenmenge an Bibliotheken (bis hin zur Bildverarbeitung, die z.B. mich interessiert) besser zu skalieren.

Meine Studenten bekommen im Rahmen eines Praktikums eine recht umfangreiche Änderung an einem Python-Beispiel-Programm innerhalb von 2 Stunden hin - ohne entsprechende Vorbildung.

Gibt nur zwei Fallstricke:

  1. Python2 und Python3 unterscheiden sich stark, man muss sich vorher entscheiden, was man benutzt.
  2. In manchem Editor sieht ein Tabulator genauso aus wie 4 Leerzeichen. Python versteht beides, sieht es aber als Unterschied an - das führt am Anfang regelmäßig zu netten Fehlermeldungen.
3 Like

Die Unterstützung von Python 2 endet am 1.1.2020, von daher erledigt sich das Problem von selbst: https://de.wikipedia.org/wiki/Python_(Programmiersprache)#Ende_von_Python_2

mfg M.L.

2 Like

Hallo @bob12345678, @M_L_, @sweber und @anon45458312,

danke für Eure Antworten, Ausführungen und vor allem die Erklärungen, warum ihr genau diese Empfehlung ausgebt! Das zeigt mir, dass es doch keine so blöde Idee war, die Frage hier so offen zu stellen.

Dann werde ich mich wohl in Python einarbeiten. :wink:

Spoiler

Nein, ich bilde mir nicht ein, innerhalb eines halben Jahres ein guter Programmierer zu werden. Das war der jenige aber auch nicht, dessen Programm ich ersetzen/ verbessern will auch nicht. Er hat mir einen Trümmerwüste auf Funktionen hinterlassen, von denen 90% schlicht nicht nutzbar sind und der Rest geht mehr schlecht als recht. Zum Glück läuft die Technik selbst autark - ich will „lediglich“ die ohnehin ausgeworfenen Daten erfassen und visualisieren, was für die Funktionsweise unkritisch ist. Und wenn ich in einem letzten Schritt auch noch die Steuerbefehle integrieren kann und damit die alte Software obsolet machen kann - umso besser.

Grüße
Pierre

Boah, was ist das für eine tolle Konstruktion?! Ist es das hier?
grafik

Ja, ich habe Optionen/Details benutzt. Allerdings habe ich die von „Zusammenfassung“ (inkl. An- und Abführungszeichen) umbenannt in Spoiler

[details="Zusammenfassung“]
Test
[/details]
1 Like

[quote=„Pierre, post:11, topic:9457229“]
in Python einarbeiten
[/quote] Um die Sache etwas abzukürzen:

  • man sollte Python von der Pike auf (also unabhängig von anderen Programmiersprachen) lernen, da man ansonsten nicht-„pythonische“ Vorgehensweisen übernimmt. Und beachten, dass Python 3 zu Python 2 nicht unbedingt kompatibel ist (ebenso die jeweils verwendeten Bibliotheken)
    -für Datenvisualisierung gibt es Standardbibliotheken wie Matplotlib, NumPy, (Seaborn, Plotly, MayaVI )
    -zum Daten extrahieren z.B. NumPy, Scrapy (realpython.com @ extract)
    -hardwarenahe Programmierung scheint dagegen (noch) eine Domäne von C / C++ / Assembler / SPS (ST) zu sein. Obwohl Python z.B. i.V. mit Rapsberry Pi verwendet werden kann.

mfg M.L.

Danke nochmals für die Hinweise.

Dein Ironiedetektor muss dringend zur Wartung!

  • Python ist geil
  • Perl
  • Verteiltes Echtzeit-Java
  • Fortran
  • Python

0 Teilnehmer