Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

11

01.07.2014, 08:47

Ich wollte eigentlich nur zeigen dass man typunsichere Sprachen eigentlich gut handhaben kann.
Wie gesagt, vielleicht gebe ich bei sowas später dann eher einen Fehler aus...

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

12

01.07.2014, 08:58

PHP ist auch so ein Fall, wo man quasi alles machen kann, und es sieht so aus, als ob noch nicht einmal die Entwickler eine genaue Vorstellung davon gehabt hätten, was dabei passieren soll.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

13

01.07.2014, 09:27

Es gibt bei Sprachen die Unterscheidung zwischen statisch/dynamisch (Typinformationen müssen vorhanden vs. eine Variable kann Werte beliebiger Typen annehmen) und stark/schwach (bei Operationen müssen die Typen passen vs. notfalls wird einfach eine Typumwandlung durchgeführt).
Die Beschriebenen Probleme treten genau dann auf, wenn implizit Werte vom einen Typ in einen anderen umgewandelt werden, wobei diese Umwandlungen nicht immer intuitiv sind.

In Javascript wird bei [12,13] + 12 das Array implizit in einen String umgewandelt, wodurch auch keine Addition, sondern eine Konkatenierung stattfindet
Bei "12" - 2 wird der String in eine Zahl umgewandelt, solange er auch eine Zahl darstellt. Andernfalls (bspw. bei einem "wat") kann keine Zahl daraus erzeugt werden und man erhält NaN (und weitere arithmetische Operationen damit ergeben wieder NaN).
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

01.07.2014, 09:57

Schon klar. Dennoch ist es nicht intuitiv, dass das überhaupt geht. Dabei beziehe ich mich auch auf "string"/22. Das sollte eine Exception auslösen oder NaN ergeben. Konkatenieren macht da keinen Sinn. Denn bei "44"/22 würde ich ja eher 2 als Ergebnis erwarten als "4422".
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

15

01.07.2014, 15:13

Schon klar. Dennoch ist es nicht intuitiv, dass das überhaupt geht. Dabei beziehe ich mich auch auf "string"/22. Das sollte eine Exception auslösen oder NaN ergeben. Konkatenieren macht da keinen Sinn. Denn bei "44"/22 würde ich ja eher 2 als Ergebnis erwarten als "4422".

In JavaScript kommen die beiden erwarteten Ergebnisse (NaN und 2) heraus, aber ich persönlich finde ein schwaches Typsystem nicht besonders toll. (Python beispielsweise ist eine Sprache mit starker, dynamischer Typisierung - es geht soger so weit, dass Konkatenierungen nur zwischen Strings möglich sind.)

Wichtig für die hier präsentierte Sprache ist aber, dass nicht einfach die Typen automatisch umgewandelt werden, sondern dass es eine entsprechende Implementierung für die jeweiligen Typkombinationen gibt.
Ich rate aber dennoch dazu: dynamische Typisierung ist zwar in Ordnung, aber diese sollte dann dennoch nicht zu schwach sein.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

16

01.07.2014, 16:39

Unabhängig von dem Sinn solcher Operationen sehe ich ein sehr großes Potential extrem schwer zu findende Programmfehler zu erzeugen.
:love: := Go;

17

01.07.2014, 17:35

@H5:: Ich will nur mal JavaScript nennen. -_-.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

18

02.07.2014, 00:20

Es ging wie gesagt nicht direkt darum so einen Quark zu zeigen, sondern wie ich Variablen handhabe...
Ich sehe das genauso, so kann es nicht bleiben. Nur aktuell macht es das etwas einfacher wenn man keine Fehler erzeugen kann.

Werbeanzeige