phpbar.de logo

Mailinglisten-Archive

[php] goto statements

[php] goto statements

Johannes Schlueter schlueter at phpbar.de
Son Aug 1 03:05:53 CEST 2004


On Sunday 01 August 2004 00:37, Hinrich Donner wrote:
> > wer hat behauptet,
> > dass 'try-catch' ein sinnvoller/notwendiger Construkt
> > in einer Hochsprache ist.
>
> Niemand, aber es gewisslich hilfreich da oben im Himmel der Hochsprachen,
> wenn mal eine Wolke in die falsche Richtung fliegt.

Das das Fehlen von goto ein Zeichen einer Hochsprache ist halte ich für ein 
Gerücht. Basic hat es sowieso. C und Pascal haben es weil die 
Sprachentwickler den Sinn sahen, afaik, gab es zur Zeit von PAscal deswegen 
auch große Diskussionen. C++ hat es - wegen kopatibilität zu C, dort wird 
esaber nicht genutzt. C#, als moderne Objekt-Orientierte Hochsprache, hat es 
aber auchudn nicht nur weil es zu C kompatibel sein will (da gibt es genug 
stelle wo es inkompatibel ist, dak ommt es nicht drauf an, zudme ist das 
C#-goto auch eingescränkter als bei C), ...

> > Kommt das nicht aus der Java-Ecke ...
>
> Nein, C++.

Wurden die mit C++ erfunden? Kann ich mir nicht vorstellen, dürften älter 
sien.

> > richtig, letztendlich geht es niemals ohne 'GoTO',
> > weil man der CPU nicht anders klarmachen kann wo sie
> > weitermachen soll/darf
>
> Assembler ist eine Sache. Das es  da nicht ohne "Goto" geht, sollte jedem
> verständlich sein. Aber ebenso verständlich sollte sein, dass es in einer
> richtigen "Hochsprache" (da über den Wolken, wo die Freiheit grenzenlos
> ist, und man nur SmallTalk macht), ein Goto nichts zu suchen hat.

Verwechsel Hochsprache nicht mit Objekt-Orientierter Sprache! ;-)

> C++ versteht auch ein Goto, weil es abwärtskompatibel zu C ist, aber es

exakt.

> braucht es nicht. PHP (das war doch die Liste hier?) hat niemals ein Goto
> gehabt. Jetzt eines zu Implementieren wäre sicher nicht das Problem, aber
> es wäre Unsinn hoch 10.

Was spricht konkret dagegen?

> > In Sprachen wurde 'GoTO' damals verworfen, weil es
> > dazu animiert unueberlegt zu handeln. Keine exakte
> > Strukturen, einfach 'GoTo' und ... passt schon ...
>
> Eben, und diesen Unsinn sollte man nicht in eine "Sprache" einbauen, die
> bisher blendend ohne ausgekommen ist. Die ganze Entwicklung von PHP geht

Ich bin immernoch der Meinung, dass man goto sinnvoll einsetzen kann, auch 
wenn die Gefahr eine Mißbrauchs groß ist. Das es für sich "Unsinn" ist sehe 
ich nicht.

> mehr und mehr weg von der Quick & Dirty-Skript-Sprache hin zu einer
> objektfähigen Sprache, die einfacher als Perl oder C# zu handhaben ist. Es

Ist PHP wirklich besser handzuhaben als C#? C# ist eine wunderbare Sprache: 
Recht genau durchdacht mit einem schlüssigen Objektkonzept, ... PHP hingegen 
ist ein Wildwuchs der aus nicht viel mehr als einer Abstraktion von 
verschiedensten C-Bibliotheken mit ein wenig drumherum besteht und derart 
inskonsistent ist nichts von wegen einfach Handhabbar - nur ist die 
Einstiegskurve derart flach, dass auch Newbies schnell zu einem Ergebnis 
kommen.
(Bevor das jetzt irgendwie falsch interpretiert wird: Ich finde PHP geil, 
leide aber zugleich unter dessen Schwächen)

> wäre fatal, diese Entwicklung durch etwas triviales wie ein Goto nicht nur
> zu behindern, sondern gar zu vereiteln.

Wieso ist OO im Bereich PHP das non-plusultra? In gewissen Fällen macht OO 
sicher Sinn, aber OOist kein Selbstzweck!

> Wer ein Goto will, soll sich seinen MS-Server mit BASIC als Skript-Sprache
> aufbauen. Der ist sicher, schnell, ausfallsicher und hat ein Goto...

Toll! Und wer OO will soll Java, Smalltalk oder C# nehmen. Wer prozedural 
programmieren will soll Pascal oder sonstwas nehmen, wer schnell mal was 
runterschreiben will Perl - wunderbare Aufteilung.

So, bevor es hier jetzt Ausartet: Ich will hier keinen Flamewar starten, bin 
aber gegen ein einfaches "goto ist dumm" - wie jedes _komplexe_ Konstrukt hat 
es Vor- und Nachteile, die je nach Situation mal mehr und mal weniger zum 
tragen kommen.

johannes
-- 
Johannes Schlüter
php::bar | Der Treffpunkt für Einsteiger und Profis   http://www.phpbar.de

php::bar PHP Wiki   -   Listenarchive