Eine der am längsten bestehenden Spaltungen in der Programmierung ist die zwischen statischer und dynamischer Typisierung. Ich habe im Laufe meiner gesamten Karriere eine Million Argumente von beiden Seiten gehört, aber nur sehr wenige davon haben jemals jemanden von etwas überzeugt. Da Rationalisierungen, die sich als Gründe tarnen, in Glaubensfragen selten wirken. Der Reiter wird immer den Weg des Elefanten rechtfertigen. Das soll nicht heißen, dass es keine Menschen gibt, die die Seiten gewechselt haben. Tatsächlich schreien solche Personen oft die lautesten Rationalisierungen. Oft mit dem Charme eines lebenslangen Allesessers, der plötzlich vegan wird, oder eines traditionellen Bankers, der auf dem Krypto-Zug eine glückliche Fahrt erwischt hat. Je kürzer der Glaube, desto heller die Flamme. Persönlich bin ich ungeniert ein Typ, der dynamische Typisierung bevorzugt. Deshalb liebe ich Ruby so sehr. Es nutzt die dynamische Typisierung voll aus, um die poetische Syntax zu ermöglichen, die zu so schönem Code führt. Für mich wäre Ruby mit expliziter, statischer Typisierung wie ein Salat mit einer Kugel Eis. Das passt einfach nicht zusammen. Ich gestehe auch, dass ich in der Vergangenheit die evangelikale Position für dynamische Typisierung angenommen habe. Bis zu dem Punkt, an dem ich an einer One True Proposition-Affektion litt. Ich sah den Mangel an Begeisterung für dynamische Typisierung als ein Zeichen von fehlender Bildung, Erfahrung oder vielleicht sogar Kompetenz. Oh, was für ein Irrtum. Wie zu versuchen, einen Introvertierten davon zu überzeugen, dass er wirklich Partys mögen würde, wenn er sich nur ein wenig lockern würde. Dass es tatsächlich wirklich Spaß macht, stundenlang in überfüllten Räumen zu sein, zu schreien, um zu kommunizieren, denn wie wäre es mit diesem VIBE! Heutzutage habe ich die Pracht der Vielseitigkeit zu schätzen gelernt. Programmierung wäre ein schreckliches Unterfangen, wenn wir alle auf dasselbe Paradigma beschränkt wären. Die menschliche Natur ist viel zu vielfältig, um eine solche Einschränkung ihrer Kreativität zu akzeptieren. Könntest du dir vorstellen, wenn alle bildenden Kunst im Stil des Kubismus oder des Realismus dargestellt werden müsste? Oder wenn alle Romane im kurzen, direkten Stil von Hemmingway geschrieben werden müssten? Wie langweilig wäre das alles schnell! Es würde die Magie der Programmierung ruinieren. Diese einzigartige Fusion von Kunst und Ingenieurwesen. Aber es hat eine Weile gedauert, bis ich zu diesen Schlussfolgerungen gekommen bin. Ich bin ein genesender Lösungsfinder. Wenn ich also sehe, wie Leute ihr Herz in Unglauben kreuzen, dass irgendjemand, irgendwo JavaScript über TypeScript bevorzugen könnte, lächle ich und erinnere mich an die Tage, als ich ihren Eifer im Spiegel erkannte. Das soll nicht heißen, dass alle Fragen der Programmieransätze auf gleich, aber unterschiedliche Denkweisen hinauslaufen. Es gibt Grenzen für diesen Relativismus. Aber dynamische vs. statische Typisierung ist innerhalb ihrer Grenzen sicher. So auch funktionale vs. objektorientierte Programmierung. Die Pole auf beiden Achsen haben sich über die Jahrzehnte als hervorragende Software erwiesen (und auch als schreckliche Sachen!). Jetzt sind die Menschen gesegnet mit der Fähigkeit, sich von beiden Enden aus gleich gut auszudrücken. Eine solche beidhändige Natur scheint jedoch selten zu sein, wie die völlige Ungläubigkeit, die so häufig von beiden Seiten geäußert wird, dass die andere eine vernünftige Position vertreten könnte. Ich bin nicht beidhändig. Ich genieße keine statische Typisierung, und Objekte beleben mein geistiges Auge. Aber ich habe die Tatsache zu schätzen gelernt, dass andere ihre Kreativität mit ebenso viel Intensität erleuchten wie ich meine, indem sie funktionale Programmierbeschränkungen und explizit ausgeschriebene Typen verwenden. Solange ich mein Ruby niemals mit Typ-Hinweisen beschmutzen oder allen Frontend-Code in TypeScript schreiben muss, kann ich so glücklich mit denen koexistieren, die Go lieben oder JavaScript nicht ausstehen können. Vive la différence!