Der Beitrag zu den Programmiersprachen für 2015 ist schon etwas her und da passt es ganz gut, bevor der Beitrag für die Sprachen 2016 kommt, ein kleines Resumee zu ziehen.
Rückschau
Ich hatte mir für 2015 primär folgende Sprachen zurecht gelegt:
- Python3
- PHP
- Nim
- Julia
- Javascript / Coffeescript
- C/C++
- Rust
- Go
Die Dauerbrenner
Python und PHP dominieren weiterhin den Alltag. PHP primär da ich als Admin im Hosting ständig damit konfrontiert werde und das ein oder andere Script ansehen darf. In Verbindung mit der täglichen Malwarejagd sieht man noch mehr PHP und vor allem was alles damit gemacht werden kann. Ein schöner Nebeneffekt bei all der Malwarejagd ist, dass meine Regexkenntnisse innerhalb von 2 Monaten extrem gestiegen sind – ich fange langsam an in Texten Muster zu sehen und ertappe mich in und wieder bei Etiketten, Nummernfolgen nach Mustern zu suchen und zu überlegen wie man das in Regex ausdrücken könnte.
Bei Python habe ich den Sprung auf Python3 gewagt, wenn auch erst im letzten Quartal des Jahres. Ich habe extra gewartet, da ich nicht gefrustet alles in die Ecke werfen wollte, wenn irgend eine Library noch nicht portiert ist. 2015 ist in der Python Welt viel passiert und gerade die Portierung auf Python3 ist gefühlt in 2015 in Fahrt gekommen. Insgesamt finde ich das ständige Encodieren und Decodieren nervig, aber im Großen und Ganzen bin ich mit Python3 zufrieden.
Allerdings auch bei PHP ging es voran, dort ist die Version 7 erschienen. Viele neue Features. Viel zu entdecken und zum ausprobieren.
Abstellgleis
Auf dem Abstellgleis finden sich alle Sprachen die ich hin und wieder verfolge, aber aktuell nicht im näheren Umfeld habe. Sprachen brauchen auch immer ihre Zeit bis sie relevant werden und mit zu jungen Sprachen beschäftige ich mich nur in Testumgebungen. Produktive Software auf einer Sprache aufzusetzen, die noch nicht stabil und fest genug ist, macht wenig Sinn. Das Ziel ist Stuff fertig zu bekommen und nicht Bugs im Compiler zu suchen.
Go
Ich werde bis heute nicht mit der Syntax warm. Auch das Tooling hat sich nicht verbessert und so hantiert man immer noch mit Shell Vars herum um einen Workspace einzurichten. Eine IDE wie Pycharm gibt es nicht, allerdings gibt es ein Plugin von Jetbrains für Go. Ich sehe allerdings keinen Anwendungsfall wo ich nun Go brauche. Ich habe keine Mega Codebases die so lange zum Kompilieren brauchen, dass ich alles in Go portiere weil es dort schneller geht.
Auch wenn die Sprache für mich nichts werden wird, sehe ich mir gern die Vorträge und Conferences dazu an, da die Ideen und Ansätze die dort erklärt werden hörenswert sind.
Julia
Verfolge ich ebenfalls nicht mehr. Ich weiss gar nicht wie der Stand ist. Vielleicht schau ich nochmal vorbei, aber die letzte Info war, dass Julia eine Sprache für die Wissenschaftler werden soll.
Update: Ich war zwischenzeitlich wieder mal auf den Seiten von Julia unterwegs und es hat sich ordentlich was bewegt. Mittlerweile gibt es sogar ein Paket für MySQL. Ich denke ich werde mir die Sprache nochmal genauer ansehen.
Rust
Auch hier lese ich nur so halb die Neuerungen mit, habe aber keine aktuellen Projekte darin am Start. Ganz abgeschrieben wie Go habe ich die Sprache noch nicht, vielleicht wirds noch was. Aktuell aber eher nicht.
Neuankömmlinge
Ein paar Sprachen sind dann doch hängen geblieben und werden vermutlich in die Riege der Allzwecksprachen aufgenommen
Nim
Ich mag nach wie vor den Syntax. Auch das Tooling gefällt mir sehr gut. Mit nimble hat man Ruck Zuck Libraries geladen. Einige Programme habe ich damit schon umgesetzt und es war einfach nur Fun damit zu arbeiten. Bleibt da und wird weiter genutzt. Was mir ein wenig fehlt sind Libraries. Die Sprache ist das eine, aber gerade Go und auch Rust haben enorm viel Libraries am Start. Da Nim aber langsam aus den Kinderschuhen kommt (es gab sogar schon eine Nim Conference – in der Ukraine – in Russisch) denke ich wird es da bald nen Ruck geben.
Javascript / Coffeescript
Die Syntax von JS ist gruselig. In Verbindung mit JQuery reicht das als Halloween Gruseleffekt – warm werde ich damit nicht. Aber in Verbindung mit Node.JS ist das ne sehr schöne Angelegenheit. Zusammen mit Coffeescript wird auch der JS Quelltext zum Fun. Man muss allerdings beide Sprachen beherrschen denn sonst versteht man nicht was im JS Quelltext passiert und das ist bei Debugging dann doch etwas blöd.
Bleibt erst mal da aber nicht high Prio.
C/C++ – der Knaller
Obwohl ich in dem Beitrag zum Jahresanfang noch geschrieben habe, dass ich mit C/C++ nicht anfangen werde, liegen hier nun plötzlich seit einigen Wochen 3 riesen Wälzer an totem Papier zum Thema C++. Ich hätte nicht gedacht, dass ich mir das doch ansehe aber ich arbeite seit einigen Wochen daran mir den Stuff einzuverleiben. Ich denke, dass da Nim dran schuld ist. Auch schon zu Java Zeiten war mir die Typisierung sehr angenehm. Das Ducktyping in PHP, Python etc. ist zwar für Scripte praktisch aber es geht eigentlich gegen meine Art zu denken. Wenn ich über ein Programm oder Script nachdenke, dann denke ich eben in Typen / Objekten. Bei Python, PHP denkt man üblicherweise eher in Funktionen, damit man das was erledigt werden soll umsetzen kann. Die Gliederung in Objekte sieht man da nur bei großen Projekten und erfahreren Entwicklern.
Bei C/C++ gefällt mir dann vor allem wiederum, dass man in Python, PHP und andern Sprachen sich Module schreiben kann, die man dann zu Performancezwecken mit einsetzen kann. So wird die Scriptsprache zum Kleber zwischen zwei Welten.
Aufgewärmt
Ruby
Die letzte Sprache mit der ich mich nebenher beschäftige ist erneut Ruby. Ich hatte mir das in Version 1.9 angesehen und war zwar vom Syntax angetan, allerdings war es damals die Rails Sprache. Es gab so gut wie keine Gems für Ruby ohne nicht gleich auf Rails zu setzen. Aktuell habe ich das Gefühl, dass Ruby sich ein wenig von Rails losgesagt hat und mehr auf „Battieries included“ konzentriert anstatt nur an Rails zu hängen.
Aktuell spiele ich mit ein paar kleinen Sachen herum, im Rahmen von Tooling und bin nicht abgeneigt; bei Python gibt es doch ein paar kleine Sachen die nerven und Ruby macht das etwas besser. Mal sehen wie es weiter geht.
2016?
Wie es 2016 mit den Sprachen weiter geht wird sich zeigen, der Beitrag dazu wird kommen