Menü
Avatar von Nalathni
  • Nalathni

mehr als 1000 Beiträge seit 09.09.2004

Re: Gradual Typing und Functional Programming in Python?

Natürlich kann man auch in einer dynamisch typisierten Sprachen vernünftigen Code schreiben, aber dazu muss man genau überlegen, was man da tut, und dann kann man gleich statisch typisierte Sprachen verwenden.

Da hast Du mich falsch verstanden. Ich bin der Meinung, dass statisch typisierte Variablen fast immer vorzuziehen sind. Aber es gibt eben dann und wann Gründe für dynamisch typisierte Datenstrukturen. Beispielsweise an Schnittstellen sind diese oftmals nützlich.

Wenn ich Daten aus einer Datenbank entgegennehme, wird mir das Datenbankframework diese oftmals dynamisch typisiert reichen (Qt nutzt z.B. QVariant für sein QSqlQuery::value, das einer dynamischen Typisierung gleichkommt, Java nutzt Getter wie getInt, getFloat usw. für sein ResultSet, das die Daten intern auch quasi-dynamisch halten muss). Ein anderes Beispiel wäre ein Parser für JSON-Daten, die ich z.B. von einem Webserver übertragen bekomme oder umgekehrt als Webserver vom Browser (Qt nutzt hier QJsonValue für QJsonObject::value, das auch einer dynamischen Typisierung entspricht, Java nutzt wieder Getter wie getBoolean, getInt usw. für sein JsonObject).

Normalerweise wird man solche dynamisch typisierten Datenstrukturen meist vor der Weiterverarbeitung statisch typisierten Objekten zuweisen (und genau dort wird auch überprüft, ob die Typen und gegebenenfalls die Werte korrekt sind).

Es mag in seltenen Fällen auch hochdynamische Daten geben, die man erst zur Laufzeit typisieren möchte, etwa für benutzerdefinierte Felder in irgendeiner Datenstruktur (manchmal nimmt man der Einfachheit halber auch einfach bloß Strings, weil man damit ja mehr oder weniger auch beliebige Typen abbilden kann, und nennt solche Felder "Sonstiges", "Bemerkungen" oder so).

Meiner Erfahrung nach ist alles, was über Typinferenz hinausgeht, mehr Fluch als Segen.

Typinferenz hat aber auch rein gar nichts mit dynamischer Typisierung zu tun, sondern ist bloß eine spezielle Schreibweise für statische Typisierung.

Das Posting wurde vom Benutzer editiert (12.09.2019 10:26).

Bewerten
- +
Anzeige