The Perl Jam 1 und 2

Weil mir jemand eine Mail zu einem sehr alten Beitrag mit einem Link zu einer Perl Seite geschickt hat, eben noch dieser Beitrag zu den Perl Jam Videos.

Auf dem Congress wurden 2014 und 2015 zwei lustige Talks gehalten:

The Perl Jam

The Perl Jam 2 – The Camel Strikes Back

Ich bin ja nun kein Perl Entwickler. Mich hätte es damals nur gereizt um selbst mal solchen Code zu fabrizieren. Aber nachdem ich nun selbst lange Jahre als Admin arbeite, hätte ich dann doch auch meine Bedenken diesen Code dann auch mal auszuführen. Da kann man ja gar nicht mehr erkennen, was der Code eigentlich macht. Löscht er die Festplatte? Schickt er ein Selfie von der Webcam zu Facebook oder schreibt er einfach nur „Wer das ausführt ist doof!“ in die Shell.

Andererseits bin ich ja nicht nur leidgeprüfter Windows Admin, sondern auch ein mehr oder weniger erfahrener Programmierer. Angefangen hat alles mal mit einem Programm in VB.NET. Das sollte nur so einfache Dinge machen, wie den Lagerbestand prüfen, schauen ob andere Aufträge vorher den Bestand aufbrauchen und wenn es dann immer noch lieferbar ist, schick eine Mail raus. Ganz einfach nur nur 1300 Zeilen herrlichen VB.NET Code. Ganz ohne Objekt Orientierung.
Wir haben damals in der Berufschule eben noch C gelernt und als es dann um Objekt Orientierung ging, war die Ausbildung auch schon zu Ende. Dafür habe ich die Grundsätze wie Schleifen, If-Else, Switch und Variablen Zuweisen trotzdem gut in VB.NET übernehmen können. Wenn ich das Programm heute nochmal frisch schreiben würde, wäre der Code deutlich auf mehr Dateien verteilt und vor allem in Klassen aufgeteilt. Denn manche von diesen 1300 Zeilen sind auch doppelt, weil sie in manchen Funktionen eben doppelt vorkommen.
Tja viele Jahre später ist man eben schlauer.

Aber was bei bei Perl so abgeht, dass die Funktionen eben komplett andere Werte ausgeben als es üblich ist macht die Sache nicht besser. Genau deshalb rate ich eben jedem Programmieranfänger erstmal von Perl ab. Zumindest Perl 5 auf die sich die Talks beziehen.

Andererseits ist Perl auch toll, weil es sowas wie Regex hervorgebracht hat. Das hab ich damals anno 2010 auch mal probiert, aber leider (oder vielleicht auch glücklicherweise? ) zum Einsatz bringen können.

Wer Programmieren lernen will schnappt sich eben ein Buch und lernt Python. Das kann man später auch noch gut gebrauchen. Wer was blinken sehen will, schnappt sich eben einen Arduino und lernt ein bisschen C dabei.

Oder macht es wie ich: In der Schule C lernen, dann auf der Arbeit mit VB.NET weitermachen und später ein Buch über C# holen und endlich die Objekt Orientierung lernen. Klassen und Methoden sind toll und ich freue mich, dass ich es endlich mal kapiere!
Für Arduino muss man sich davon aber wieder verabschieden, da ein Mikrocontroller eben nur 32kb zur Verfügung hat. Was aber auch erstmal reicht für den Anfang.

Und zu Perl: Wenn ihr es nicht unbedingt braucht, lasst es! Fürs Web Backend nimmt man heute eher PHP (naja auch eine lausige Sprache und mit jedem Release sind alte Versionen inkompatibel) oder JavaScript (jo ist mir auch irgendwie zu komplex). Aber Perl hab ich bei mir noch nie gesehen!

Welche Programmiersprache lernen? – Python, Perl oder andere?

Hallo liebe Leute.
Um mal wieder was sinnvolles zu tun, dachte ich mir, dass vielleicht eine neue Programmiersprache ganz interessant wäre. Zum einen um mich selbst mal wieder weiter zu bilden. Aber zum anderen um auch manche Codes von bestimmten Programmen zu verstehen. Als Beispiel kann man hier mal den kleinen „Hack“ nennen namens Dropship. Das Tool hat damals die Lücke in Dropbox genutzt um quasi Filesharing mit größeren Dateien zu betreiben. Dieses war beispielsweise in Python geschrieben, daher liegt es nahe, sich mal näher mit Python zu beschäftigen.
Da ich auch Linux Nutzer bin, sollte die Programmiersprache auch in diesem Bereich irgendwie nützlich sein. Viele schnelle „Hacks“ um eine bestimmte Aufgabe zu automatisieren sind ja auch in Perl geschrieben. Daher wäre vielleicht auch Perl interessant. Andererseits wird von Perl behauptet, dass dort der Code schnell unübersichtlich sein soll.
Wenn ich etwas programmieren möchte, wird es sich vermutlich eher auf die Konsolenebene beschränken. Meistens wünsche ich mir einfach irgendwelche Skripte, die manches für mich automatisieren.

Die Sprache sollte aber auch ein paar Anforderungen beherrschen:
– Code leicht lesbar
– COM-Unterstützung
– Objekt Orientiert (wobei, dass heutzutage ja schon Standard ist)
– Laufzeitumgebungen für Linux (eventuell auch Windows und Mac)

Ein paar Grundkenntnisse habe ich natürlich auch noch: C von der Berufschule. Daher sind mir zumindest die Kontrollstrukturen, Variablen und Dateiverarbeitung relativ vertraut. Und von der Arbeit habe ich vor nem halben Jahr mich intensiv mit COM-Funktionsaufrufen und die Abfragen von Datenbanken mit sqlite3 in VB.NET beschäftigen dürfen. Da diese Programme nur als Dienste ohne Benutzereingaben konzipiert sind laufen diese „Skripte“ auch weitgehenst reibungslos im Hintergrund auf einem dediziertem Server. Die Hauptarbeit sind sowieso meist Abfragen über das COM-Objekt. Da dieses „Skript“ jedoch auf VB.NET basiert, läuft es nur auf Windows und braucht ewig viele Code Zeilen aufgrund der VB.NET Sprachstruktur.

Nach einer kleinen Lektüre in „A byte of Python“ wurde mir klar, dass Python mir mehr Spaß als VB.NET bereiten könnte.

Daher meine Frage: Was haltet ihr von Python? Lohnt sich diese Sprache? Oder habt ihr noch eine andere Sprache, die sich gut für Konsolenprogramme und eventuell auch COM-Schnittstellen unterstützt? Anbindungen an Web 2.0 Schnittstellen wären auch dankbar.
Java und C# möchte ich bewusst vermeiden, da ich diese Sprachen nicht mag. Java hat so viele verschachtelte Aufrufe (system.lang.console.output oder so ähnlich) und C# ist fast wie C einfach öde und schwer lesbar.

Speziell zu Python:
– Kennt ihr noch weitere gute Einsteier Python Seiten?
– Welchen Editor oder IDE nutzt ihr für Python? Hab mal Eric4 genommen.
– Python 2.x oder Python 3.x verwenden?

Danke für eure Erfahrungen.

//Update: 21.01.2016:
Aufgrund einer Empfehlung per Mail kann man sich auch mal die Perl Sammlung anschauen.
Davor bitte ich aber euch: Schaut euch diese Videos an, warum man Perl besser NICHT benutzen möchte!

Wenn ihr dann immer noch Perl lernen wollt: Perl 6 hat diese schreckenserregenden Features nicht mehr. :) Aber warten wir besser noch den 33c3 ab. Vielleicht gibt es dazu dann wieder einen Vortrag!