Verglichene Sprachen: PHP, Javascript Seniorität: Junior Domäne: Web-Applikationen, Mobile Apps
I: Mit welchen Programmiersprachen hast du denn schonmal über einen längeren Zeitraum gearbeitet in einem Beruflichen kontext
B: Also ich hab fast ausschließlich eher so Webzeug gemacht. Also halt seit 10 Jahren mit PHP gearbeitet, irgendwann kam dann Javascript irgendwann dazu, so für Frontend Sachen halt. Bisschen hab ich jetzt mich Node.js eben Serverseitig. Und dann noch eine App in Typescripte. Und Ansonsten halt bisschen Scripting mit Bash und Powershell noch.
I: Die Idee ist zwei Sprache mal direkt miteinander zu vergleichen. Ich denke da ist Php auf jedenfall bei dir als eine der Sprachen Sinnvoll. Was denkst du ist noch Sinnvoll. Typescript oder eher Javascript.
B: Eher Javascript. Typescript setzt ja da eh auf.
I: Was würdest du jetzt von den Sprachen als deine favorisierte Frage bezeichnen.
B: Also Aktuell ist es eher Javascript, weil ich da deutlich mehr mir mache.
I: Und woran würdest du das festmachen.
B: Also von der Programmiersprache, klar die Paradigmen dahinter. Also Javascript ist deutlich mehr funktional. Also da muss man teilweise komplett anders Denken wenn man damit programmiert. Mit Php ist das mehr so wie bei Java, zumindest wenn man es korrekt macht, Objektorientiert und Imparativ.
I: Und wenn man so die Ökosysteme vergleicht. Wo siehst du da die Unterschiede.
B: Bei Php würde ich sagen sind noch mehr Grundfunktionen in der Standartbibliothek dabei. Bei Javascript sind halt teilwesie triviale Sachen mit NPM nachzuinstallieren. Oder andersherum es gibt sehr viele triviale NPM Module die dann halt auch für jeden Scheiß eingebunden werden.
I: Und die sollten dann eher die Standartbibliothek mit integriert werden?
B: Ja so ein paar Funktionalitäten sollten halt in der Standartsprache schon mit drin sein. Weil die auch recht trivial zum selber implementieren sind. Aber wenn du halt so ne drei Zeilen Funktion in jedem Projekt erstmal selber implementieren musst, klar nimmst du da eher ein fertiges Modul.
I: Das heißt Javascript ist halt einfach extrem stark Modularisiert an der Stelle
B: Ja also so würde ich das jetzt nicht nenne. Also die API von Javascript ist halt an manchen Stellen ein bisschen blöd. Also das Programmierer must du dir da Hilfsfunktionen einbauen die den Code dann lesbarer machen. Zum Beispiel eben auch diese trivialen Hilfsfunktionen die ich vorher schon erwähnt hatte, die man auch in drei Zeilen selbst programmieren kann aber die man einfach braucht.
I: Du hast jetzt gerade schon dieses Thema lesbarkeit angesprochen. Wie würdest du da unterschiede feststellen?
B: Also in Javascript kannst du Sachen viel besser verschleiern. Also durch diesen Funktionalen Aspekt, das man da funktionen hin und her passen kann. Dadruch das auch die ganze Sprache dynamisch typisiert ist. Gerade bei Fremden Code kann es das schon schwer machen das nachzuvollziehen. Während bei PHP gibts zwar auch die Möglichkeit Funktionen bzw. Handler hin und her zu passen, aber das ist eher ausnahme, Die Sprache ist zwar auch dynamisch Typisiert aber es ist besser Nachvollziehbar was passiert, weil der Code Lokaler ist. DU siehtst halt an der Stelle passiert das und das und da kommt jetzt nicht plötzlich ne Funktion die an einer ganz anderen Stelle definiert ist rein, die du aber nicht sehen kannst. Also wenn da ne Funktioner aufgerufen wird dann siehst du halt den Namen und kannst den Namen auch dann nachschlagen. Wenn du Objekte hast wo die die Methode der Objekte hast musst du teilweise Nachschauen, ok von welcher Instanz ist denn das von welcher Klasse. Aber das lässt sich besser nachvollziehen, in den meisten Fällen, als bei Javascript.
I: Wenn du jetzt mal bisschen die COmmunitys /Sprachkultur anschaust. würdest du da unterschiede Erkennen.
B: Sicher, wobei ich da jetzt nicht so tief drin hänge bei beiden. Also ich schau mir das halt nur passiv von außen an. Von daher kann ich da jtzt nicht so viel zu sagen
I: Wenn man die Features der Sprachen anschaut. Gibts da was wo du sagst das hat die eine Sprache, das hätte ich auch noch gerne in der anderen.
B: (überlegt) Bei Javascript, zumindest das Frontend finde ich sehr angenehm das man halt in der Debugkonsole vom Browser ein komplettes Debugging hat. Da du da einen Breakpoint setzten kannst, das du da direkt an der Stelle eigenen Code eingeben kannst und der wird evaluiert und halt so debuggen kannst und richtig gut durch den Code durchsteppen kannst. Gibts bei PHP zwar aber ist komplizierter Aufzusetzten, vor allem weil es auch Abhängig ist von deiner Entwicklungsumgebung oder deinem Editor den du verwendest und auch abhängig davon ist was der halt für Debugfunktionen bei PHP halt unterstützt. Das heißt da ist bisschen mehr verteilt. Und dadurch ist halt auch die Qualität der Debug Plugins sehr unterschiedlich für Php. Gerade für Einstiger ist es daher bei PHP eher üblich im PHP COde so ein Var Dump zu setzten und sich die Werte ausgeben zu lassen und einfach so oft neu Aufzurufen bis man das rausbekommt was man will. So hab ich das selber auch lange gemacht weil ich es auch nicht wirklich wusste und weil es nich so üblich war den Live-Debugger so ranzuhängen.
I: Gab es mal ein Problem das du in der einen Sprache nicht lösen konntest wo du in der anderen Sprache sofort gewusst hättest wie du es machst
B:Ja hatte ich vorgestern erst. Da hatte ich ein Problem wo ich gerne nur per Referenze auf ein Array verwiesen hätte. Und das geht halt in PHP nicht weil er die Arrays iterriert hat und so funktionierte dann mein Algorithmus nicht und ich hab das dann irgendwann gemerkt das ich im Javascript Modus denke, das die Sprache aber anders umsetzt und musste dann irgendwie umdenken die ganze Zeit. Ist mir schonmal passiet das ich gemerkt hab die Nuancen der Sprachen muss ich jetzt auseinander halten wenn ich in der anderen Sprache programmiere.
I:Ok dann vielleicht noch ein bisschen ein anderer Aspekt. Hat bei dir bei der Jobwahl die Sprache eine Rolle gespielt.
B:Also in der Situation war ich noch nicht so wirklich. Also wenn ich mir was Suche schaue ich jetzt schon danach das ich die Sprachen, A kann, und B worauf ich mich einlasse und C macht es mir Spaß mit denen zu arbeiten dadruch das ich mich da schon auskennen. Wäre da aber schon offen auch für andere Sprachen, allerdings würde ich durchaus schon schauen welche Sprachen das sind. Also bei mir mit Haskell hätte ich jetzt weniger Lust drauf, oder Cobol. Sollten schon Sprachen wo ich sage, ja das liegt mir jetzt. Wenn ich irgendwas Hardware näheres Machen will würde ich halt C nehmen. Rust oder Go würde ich mir aber schon auch mal anschauen. Die kenn ich noch nicht. Wie gesagt Startvorteil für eine Auswahl ist auf jedenfall da wo ich mich schon auskenne und wohlfühle und mich dementsprechend auch direkt einbringen kann. Und wenn es eine neue Sprache ist dann eben ob sie mir sympathisch ist.