[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: any chance of 2.6.0-test*?



See Brian Kernighan's explanation in 1981. Still good.

	http://bit.csc.lsu.edu/tutorial/ten-commandments/bwk-on-pascal.html


On Sun, Jan 12, 2003 at 12:22:26PM -0800, Linus Torvalds wrote:
> 
> On Sun, 12 Jan 2003, Rob Wilkens wrote:
> > 
> > However, I have always been taught, and have always believed that
> > "goto"s are inherently evil.  They are the creators of spaghetti code
> 
> No, you've been brainwashed by CS people who thought that Niklaus Wirth
> actually knew what he was talking about. He didn't. He doesn't have a
> frigging clue.
> 
> > (you start reading through the code to understand it (months or years
> > after its written), and suddenly you jump to somewhere totally
> > unrelated, and then jump somewhere else backwards, and it all gets ugly
> > quickly).  This makes later debugging of code total hell.  
> 
> Any if-statement is a goto. As are all structured loops.
> 
> Ans sometimes structure is good. When it's good, you should use it.
> 
> And sometimes structure is _bad_, and gets into the way, and using a 
> "goto" is just much clearer.
> 
> For example, it is quite common to have conditionals THAT DO NOT NEST.
> 
> In which case you have two possibilities
> 
>  - use goto, and be happy, since it doesn't enforce nesting
> 
> 	This makes the code _more_ readable, since the code just does what 
> 	the algorithm says it should do.
> 
>  - duplicate the code, and rewrite it in a nesting form so that you can 
>    use the structured jumps.
> 
> 	This often makes the code much LESS readable, harder to maintain, 
> 	and bigger.
> 
> The Pascal language is a prime example of the latter problem. Because it 
> doesn't have a "break" statement, loops in (traditional) Pascal end up 
> often looking like total shit, because you have to add totally arbitrary 
> logic to say "I'm done now".
> 
> 		Linus
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo _at_ vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

-- 
---------------------------------------------------------
Victor Yodaiken 
Finite State Machine Labs: The RTLinux Company.
www.fsmlabs.com  www.rtlinux.com
1+ 505 838 9109

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo _at_ vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: