Thema:
Re:Vergiss beides flat
Autor: hellbringer
Datum:29.03.08 14:22
Antwort auf:Re:Vergiss beides von mike_za

>Klar gibt es da Einschränkungen und es ist, wie bereits auch von mir schon gesagt, nicht immer möglich auf solche Skriptsprachen zurückzugreifen. Aber ich kann jedem Programmierer nur empfehlen sich Ruby/Python/Groovy mal anzusehen. Dies erweitert zum einen den eigenen Horizont... und ich wiederhole mich hier gerne nochmal: Ich hatte noch nie soviel Spaß beim Programmieren!
>Warum?
>Weil man so programmieren kann, wie man (als Mensch) denkt:
>
>print "Sorry" if maniac_forum.is_down?
>
>Und sich nicht (oder viel weniger) an syntaktischen "Vorgaben" orientieren muss (wie Bsw. Java/C#):
>
>if (maniac_forum.down == true) {
>  print "Sorry";
>}
>


in PHP:

if ($maniac_forum->is_down) echo "Sorry";

Allerdings ist das nur die minimale Variante. Das Problem an dynamischen Programmiersprachen ist, dass man sehr viel Mist bauen kann, wenn man nicht aufpasst. zB. erlaubt PHP (nur als Beispiel) dass man einen Integer-Wert mit einem Array überschreibt. Das mag vielleicht für den Programmierer im ersten Moment praktisch sein, aber dafür schleicht sich viel leichter ein Fehler unbemerkt ein, der später schwere Folgen haben kann. Man kann natürlich überall Type-Casten, aber das behebt nur die Symptome und nicht die eigentlichen Ursachen.

Aus dem Grund müssen (oder sollten zumindest) ständig die Variablen darauf geprüft werden, was sie wirklich sind. Und aus einem leicht verständlichen Code wie oben wird plötzlich:

if (!$maniac_forum instanceof Forum)
   throw new Exception('Objekt vom Typ Forum erwartet');
elseif ($maniac_forum->is_down === true)
   echo "Sorry";

DAS ist das eigentlich Nervige am Programmieren, und nicht dass man vielleicht ein paar Klammern oder $-Zeichen hinzuschreiben muss.

Ich hab zu wenig Ahnung von Ruby oder Python um zu wissen wie sowas dort gelöst ist. Aber ich glaube nicht, dass dort diese Probleme deutlich besser gelöst sind. Oder liege ich falsch?


< antworten >