2010-04-09 5 views
8

Es wird in jedem Informatikunterricht gelehrt und in vielen Büchern geschrieben, dass Programmierer GoTo nicht verwenden sollten. Es gibt sogar einen xkcd Comic darüber. Meine Frage ist, haben wir einen Punkt erreicht, wo dasselbe über Eval gesagt werden kann?Sollte Eval das gleiche Stigma wie GoTo haben?

Wobei GoTo nicht für Programmablauf und Lesbarkeit leitend ist, Eval ist das gleiche für das Debugging und die Programmausführung und das Design.

Sollte Eval das gleiche Stigma wie GoTo und die gleichen Konsequenzen wie im xkcd-Comic haben?

+0

Nun, ich erwarte nicht, dass es die gleichen Konsequenzen hat wie im Comic ... Ich wäre schon einige Male gegessen worden. – Tesserex

+1

Dies ist eine Tangente, aber die Goto Kontroverse ist eine Farce. Goto ist nur schlecht, wenn Leute es dumm benutzen. Gleiches mit Eval. Eval ist sehr mächtig, flexibel und gefährlich in den falschen Händen. –

Antwort

7

Wenn überhaupt, sollte es mehr Stigma tragen.

GoTo erstellt häufig Code, der schwer zu warten ist. Eval erzeugt oft Code mit Sicherheitslücken - das ist schlimmer.

1

Vielleicht hat eval nicht die Kritikpunkte erreicht, die GoTo erreicht hat, aber sicherlich ist es veraltet!

1

Es ist nur eine Frage der Zeit, bis jemand einen Artikel über "Eval als böse" veröffentlicht!

+1

gefolgt von dem Artikel "Eval als böse betrachtet als böse". – bryanjonker

+0

http://diveintomark.org/archives/2002/01/04/eval_is_evil – dan04

2

Eval hat einige ziemlich ernste Sicherheitsbedenken; Wenn es eine Chance gibt, dass nicht vertrauenswürdige oder vom Benutzer bereitgestellte Eingaben in einer Bewertung landen können, ist sie anfällig.

Jslint warnt vor der Verwendung von eval() in js-Code durchlaufen.

0

"Exploits of a Mom" ​​deckt eval indirekt ab - bösartiger Code wird vom System wegen mangelnder Überprüfung ausgeführt.