Hay,
bei mir ist die Hauptsprache auch PHP, aber nur notgedrungen - ist halt zum Teil hässlich, dafür ist sehr schnell mal was gemacht. In anderen bin ich dazu nicht firm genug und mir fehlt die Zeit, darin firm zu werden.
Mit der Zeit habe ich schon viel eingesammelt... Assembler (6502, Z80, 8086/80286), Basic (viele... von Basic 1.0 auf ner CBM 8032 bis zu VB), Logo, C, Pascal, Cobol, Smalltalk, SQL, PHP, Javascript, Ruby, die Asterisk-Dialplan-Sprache, ein Python-Kurs ist bereits gebucht und Java lerne ich aus einem Buch (aber derzeit zurückgestellt). Wenn es nicht zu exotisch ist, bin ich in jeder neuen Sprache tief genug drin, um normalen Code zu schreiben und zu debuggen. Dass es da Module/Gems/Beans oder was auch immer gibt, die das schneller könnten, dafür fehlt mir meist der Überblick. Aber letztlich kann jede Programmiersprache Eingaben entgegennehmen, etwas verarbeiten und wieder ausgeben. Wie man es nun formuliert, spielt keine Rolle.
Mir geht es weniger um die Sprache als solche, sondern um das Konzept das dahinter steht und welche Lücken es hat. Zum Beispiel der primitive string-Datentyp bei Java (inkl. Durchmischung von Objektorientierung und prozeduraler Programmierung dieses Datentyps) vs. die String-Klasse bei Java. Ruby ist recht faszinierend, das habe ich mir für einen intensiveren Blick gemerkt, beeindruckt hat mich da die Listen- / Array- / Hash- / Rangeverwaltung mit dem enum oder comparable Modul z.B. und wie schnell man Klassen gebaut hat, die ebenfalls das enum Modul benutzen können und damit sofort sortierbar und selektierbar sind, sowie gemappt werden können... Blockargumente kannte ich in dem Sinne noch nicht (ungefähr so etwas wie die closures in JavaScript)... Streams einfach praktisch und speichereffizient... Ach einfach faszinierend
und durch Ruby verstehe ich wiederum einige JavaScript-Konzepte etwas besser.
Was einen Unterschied macht, es gab damals 62 Basic-Befehle mit denen man alles machen konnte, Pascal war auch nicht so viel umfangreicher, ich habe mir meine Units selbst geschrieben und (zumindest bei meinem Lieblingscomputer Schneider CPC464) das Basic auf 250 Befehle aufgepumpt... aber heute ist das alles etwas komplexer und es wird so viel mitgeliefert - ob im Kern oder als Bibliothek - dass man jedesmal die Wahl hat, die Komponente zu suchen und zu nutzen lernen (was aufwand ist) oder die Komponente selbst nachzuprogrammieren. Ersteres ist zwar der sinnvollerere Ansatz, aber manchmal ist das Sprachkonstrukt gesamt so umfangreich, dass man noch nicht mal auf die Idee kommt, nach so einem Befehl zu suchen
Dafür gab es früher so etwas wie stackoverflow o.ä. nicht. Aber wenn mich heute jemand ernsthaft fragt, wie er anfangen soll, sage ich tatsächlich: Mit dem einfachsten Basic, dass Du finden kannst - und werde dabei immer von anderen ausgelacht, die kommen dann gleich mit JavaScript/Node/Angular. Ich bin da in diversen Facebook-Gruppen und helfe dort anderen beim debuggen von Code und die BASICs fehlen halt, wenn man sich gleich mit grunt, jslint etc. konfrontieren muss...
CU, Peter