Re: Weitverbreitete Programmiermythen...
Geizhals » Forum » Programmierung » Weitverbreitete Programmiermythen... (43 Beiträge, 796 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Weitverbreitete Programmiermythen...
28.03.2006, 14:59:44
Hi !

Weil ich in einem anderen Thread drüber gestoßen bin - machen wir doch den allgemeinen... Ich beginne mal - plus der Erläuterung, warum's Mythen, net Fakten sind

Mythos: In Java/C# gibt's keine Pointer.
Dadurch wird eine beliebte Fehlerquelle vom Programmierer genommen - und Programme tendenziell schneller und sauberer fertig.

Nun ja... Leider falsch.
In Java und C# wurden Pointer mal umbenammst - in Referenzen...
Und nachdem man - sobald man Cachen will - sinnvollerweise auf weak references ausweicht, sieht's ja so aus:
1.) weak references mit null initialisieren
2.) vor jedem Zugriff checken, ob die Referenz net durch den GC null wurde
3.) notfalls Objekt instanzieren
.... Sieht verdächtig ähnlich nach umständlicher Pointerbehandlung aus ;-)


Mythos: Goto considered harmful.
Goto's sind ein Hinweis auf schlecht strukturierte Programme und sind zu vermeiden

Fakt ist vielmehr, daß Goto's (beziehungsweise deren Erweiterungen longjmp und setjmp wertvolle Tools sind - auf die man nicht verzichten sollte.

Angenommen, du bewegst dich tief unten in Subroutinen - besonders aktuell bei Rekursivem Code.
Natürlich kann man alles mit 150tausend Klammern lösen und jedes mal den Stackframe beim Return wiederherstellen lassen und sich nach oben durchhangeln... Stattdessen kann man eben das System mit einem einzigen longjmp entlasten. Sinnvoll eingesetzte Goto's sind wertvoll...





Antworten PM Alle Chronologisch
 
Melden nicht möglich
.  Re: Weitverbreitete Programmiermythen...  (Fly am 28.03.2006, 15:13:47)
.  Re: Weitverbreitete Programmiermythen...  (Somnatic am 28.03.2006, 15:39:53)
.  Re: Weitverbreitete Programmiermythen...  (MidiFan am 28.03.2006, 17:45:45)
.  Re: Weitverbreitete Programmiermythen...  (Suffix am 28.03.2006, 18:00:01)
.  Re: Weitverbreitete Programmiermythen...  (Robe am 29.03.2006, 01:08:28)
.
Re: Weitverbreitete Programmiermythen...
29.03.2006, 01:41:34
Fakt ist vielmehr, daß Goto's (beziehungsweise deren Erweiterungen longjmp und
setjmp wertvolle Tools sind - auf die man nicht verzichten sollte.

Angenommen, du bewegst dich tief unten in Subroutinen - besonders aktuell bei
Rekursivem Code.
Natürlich kann man alles mit 150tausend Klammern lösen und jedes mal den
Stackframe beim Return wiederherstellen lassen und sich nach oben
durchhangeln... Stattdessen kann man eben das System mit einem einzigen
longjmp entlasten. Sinnvoll eingesetzte Goto's sind wertvoll...


Das ist - mit einem Wort - Unsinn.

a) nachlesen, was TRO ist und wann ein Compiler das machen kann

b) nachlesen, wie unsauber longjmp() normalerweise implementiert ist und wo es überall Probleme bereiten kann ... In modernen Sprachen gibt es nicht ohne Grund try/catch usw.

Ein goto ist höchstens dann "wertvoll", wenn Code dadurch einfacher wird, das ist aber sehr selten der Fall (meistens ist es nur Denkfaulheit, die dazu führt).


mjy@geizhals.at
Warum sollten wir es Unternehmen mit Eigeninteresse erlauben, das Gleichgewicht der freiheitlichen Grundrechte aus dem Lot zu bringen und dabei die Rede- und Ausdrucksfreiheit, die freien Märkte, den wissenschaftlichen Fortschritt, die Verbraucherrechte, die Gesellschaftsstabilität und das Ende des materiellen und informationstechnischen Mangels aufs Spiel setzen? Weil jemand ein Lied klauen könnte? Das erscheint mir doch als ziemlich fadenscheinige Ausrede.
-- John Gilmore
Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
...  Re(3): Weitverbreitete Programmiermythen...  (adhoc am 29.03.2006, 14:06:36)
....  Exceptions und so...  (gepeinigter_aon_neukunde am 08.04.2006, 22:22:31)
.....  Re: Exceptions und so...  (mjy@geizhals.at am 09.04.2006, 03:36:36)
.  Re: Weitverbreitete Programmiermythen...  (adhoc am 29.03.2006, 12:20:44)
...  Re(3): Weitverbreitete Programmiermythen...  (adhoc am 29.03.2006, 13:51:17)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung