Statische oder dynamische Typisierung?
-
Hallo,
was findet ihr besser und warum?
Dynamisch wie in Python, wo eine Variable plötzlich den Typ ändern kann und man bei Funktionen nie weiß, was man übergeben bekommt, oder statisch wie in C++?
-
Kommt auf die Anwendung an. Dynamisch ist flexibler, dafür kann statische Typisierung zur Compilezeit ne Menge Fehler im Voraus verhindern helfen.
-
vom performanceunterschied ganz zu schweigen...
-
statische typisierung ist z.b. gut bei maschinennahen programmen, wo man mit bits und bytes hantiert, selber den speicher managed usw. dynamische typisierung ist gut für high-level anwendungen, wo's dem coder egal ist, wie die objekte aufgebaut sind, wie gross sie sind und wo man keine manuelle speicherverwaltung machen muss.
-
~fricky schrieb:
statische typisierung ist z.b. gut bei maschinennahen programmen, wo man mit bits und bytes hantiert, selber den speicher managed usw. dynamische typisierung ist gut für high-level anwendungen, wo's dem coder egal ist, wie die objekte aufgebaut sind, wie gross sie sind
Assembler hat in der Regel kein Typsystem. Dennoch wird Assembler relativ selten ein Performance-Problem nachgesagt und von Problemen beim Bitrumfuchteln habe ich auch noch nicht viel gehört. (Bitte keine Diskussion über Geschwindigkeit von Sprachen vs. Geschwindigkeit von Implementierungen/Compilern/etc.)
~fricky schrieb:
und wo man keine manuelle speicherverwaltung machen muss.
Die Speicherverwaltung hat nicht unbedingt etwas Typsystem zu tun. Sehr viele Sprachen haben ein statisches Typsystem und trotzdem einen GC (Java, C#, Haskell, ML, ...).
-
Helium schrieb:
Assembler hat in der Regel kein Typsystem. Dennoch wird Assembler relativ selten ein Performance-Problem nachgesagt ...rababer
Hier wurde von dynamischer Typisierung vs. statischer Typisierung gesprochen. Das Assambler dynamisch typisiert, wäre mir neu. Das wäre schön.
Die Ermangelung eines Typsystems impliziert mitnichten eine dynamische Typisierung.
-
OK, nochmal
~fricky schrieb:
statische typisierung ist z.b. gut bei maschinennahen programmen, wo man mit bits und bytes hantiert
Ich behaupte: Assembler hat kein statisches Typsystem und ist dennoch gut in diesen Dingen, bzw. sogar besser als viele der Sprachen mit statischem Typsystem.
Ich bin also auf einen Punkt von ~frickys Aussage eingegangen ohne generell auf das Thema "Statische oder dynamische Typisierung? was findet ihr besser und warum?" einzugehen.
-
Helium schrieb:
Die Speicherverwaltung hat nicht unbedingt etwas Typsystem zu tun.
natürlich nicht. aber ich denke, eine automatische speicherverwaltung vereinfacht das handling von dynamischen typen. beides passt irgendwie gut zusammen. dass das eine auch ohne das andere geht, ist klar.
-
Helium schrieb:
Ich behaupte: Assembler hat kein statisches Typsystem und ist dennoch gut in diesen Dingen, bzw. sogar besser als viele der Sprachen mit statischem Typsystem.
also die operanden-typen in asm sind schon ziemlich statisch, haben feste längen, manche sind vorzeichenbehaftet, andere nicht. man kann keinen 4-byte wert in ein 2-byte register packen, etc.
-
Helium schrieb:
...
~fricky schrieb:
statische typisierung ist z.b. gut bei maschinennahen programmen, wo man mit bits und bytes hantiert
Ich behaupte: Assembler hat kein statisches Typsystem und ist dennoch gut in diesen Dingen, bzw. sogar besser als viele der Sprachen mit statischem Typsystem.
Ich bin also auf einen Punkt von ~frickys Aussage eingegangen ohne generell auf das Thema "Statische oder dynamische Typisierung? was findet ihr besser und warum?" einzugehen.
Typischer Fall von künstlicher (und unnötiger) Polarisierung.
Du hast eine Aussage aus dem Zusammenhang gerissen, als absolut gesetzt und ein (nachweislich nicht in den ursprünglichen Kontext passendes) Gegenbeispiel konstruiert.
Wenn Dich wirklich interessiert, ob fricky der Meinung ist, dass man maschinennah und performant nur programmieren kann, wenn man eine Typisierung hat, dann frag ihn das doch einfach.... und erst Recht, wenn Du gerne Dein Wissen präsentieren möchtest, dass es auch maschinennahe und performante Programmierung OHNE Typisierung gibt: Das kann man auch einfach so schreiben.
Gruß,
Simon2.
-
~fricky schrieb:
Helium schrieb:
Ich behaupte: Assembler hat kein statisches Typsystem und ist dennoch gut in diesen Dingen, bzw. sogar besser als viele der Sprachen mit statischem Typsystem.
also die operanden-typen in asm sind schon ziemlich statisch, haben feste längen, manche sind vorzeichenbehaftet, andere nicht. man kann keinen 4-byte wert in ein 2-byte register packen, etc.
Ja nach Assembler/Plattform gehen sie sogar nur mit bestimmten Registern.
-
Simon2 schrieb:
Du hast eine Aussage aus dem Zusammenhang gerissen, als absolut gesetzt und ein (nachweislich nicht in den ursprünglichen Kontext passendes) Gegenbeispiel konstruiert.
Es soll diskutiert werden ob ich statische oder dynamische Typisierung "besser" finde. Jemand bringt Argumente pro statische Typisierung. Ich versuche zu zeigen, dass sie keine Argumente pro statische Typisierung sind (aber auch nicht kontra).
Ich behaupte nicht, das Kommunikation meine stärke ist. Deswegen die Fragen:
- Inwiefern habe ich dadurch unpassend polarisiert?
- Was ist der ursprüngliche Kontext?
-
Helium schrieb:
...Es soll diskutiert werden ob ich statische oder dynamische Typisierung "besser" finde. Jemand bringt Argumente pro statische Typisierung. Ich versuche zu zeigen, dass sie keine Argumente pro statische Typisierung sind (aber auch nicht kontra)...
Wie Du zurecht schreibst, geht es in der Diskussion ausschließlich um Aussagen, in welchem Kontext welche Form der Typisierung Vor- oder Nachteil hat.
Genau das hat fricky gemacht mit seinem:~fricky schrieb:
statische typisierung ist z.b. gut bei ...
dynamische typisierung ist gut für ...Hier geht es ausschließlich um vergleichende Aussagen.
So wie ich sagen kann "Bilbo ist größer als Frodo", ohne dabei zu behaupten dass Bilbo besonders groß sei.
... und weder die Existenz größerer noch die kleinerer Hobbits tut dieser Aussage Abbruch.Helium schrieb:
...
Ich behaupte nicht, das Kommunikation meine stärke ist. Deswegen die Fragen:
- Inwiefern habe ich dadurch unpassend polarisiert?Indem Du fricky eine Aussage unterstellst ("statische Typprüfung ist notwendig für perfomante und strukturierte Programme"), die er niemals getroffen hat, schaffst Du eine "2. Front" (jetzt muss er sich mit dieser vermeintlichen Aussage rumschlagen).
Helium schrieb:
...
- Was ist der ursprüngliche Kontext?phalanx-fanboy schrieb:
Statische oder dynamische Typisierung?...
was findet ihr besser und warum?...D.h. "Nicht-Typisierung" steht gar nicht zur Debatte.
Gruß,
Simon2.