From: yodaiken@fsmlabs.com
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Rob Wilkens <robw@optonline.net>,
Christoph Hellwig <hch@infradead.org>, Greg KH <greg@kroah.com>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
William Lee Irwin III <wli@holomorphy.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: any chance of 2.6.0-test*?
Date: Sun, 12 Jan 2003 20:30:45 -0700 [thread overview]
Message-ID: <20030112203045.A18178@hq.fsmlabs.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0301121208020.14031-100000@home.transmeta.com>; from torvalds@transmeta.com on Sun, Jan 12, 2003 at 12:22:26PM -0800
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@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
next prev parent reply other threads:[~2003-01-13 3:26 UTC|newest]
Thread overview: 201+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-10 16:10 any chance of 2.6.0-test*? William Lee Irwin III
2003-01-10 16:28 ` Dave Jones
2003-01-10 16:41 ` Zwane Mwaikambo
2003-01-10 17:08 ` Dave Jones
2003-01-10 17:19 ` Alan Cox
2003-01-10 16:40 ` Jeff Garzik
2003-01-10 17:06 ` Dave Jones
2003-01-10 17:25 ` Jeff Garzik
2003-01-10 17:29 ` Linus Torvalds
2003-01-10 18:47 ` J.A. Magallon
2003-01-10 19:37 ` Matthew D. Pitts
2003-01-10 19:51 ` Jeff Garzik
2003-01-14 1:39 ` James H. Cloos Jr.
2003-01-15 21:46 ` [PATCH][RESEND w/ reasonable Subject] alsa before oss in Kconfig James H. Cloos Jr.
2003-01-10 18:16 ` any chance of 2.6.0-test*? Alan Cox
2003-01-10 17:37 ` Jochen Friedrich
2003-01-10 17:38 ` Linus Torvalds
2003-01-12 9:27 ` Greg KH
2003-01-12 16:55 ` Alan Cox
2003-01-12 17:05 ` Linus Torvalds
2003-01-12 17:17 ` Christoph Hellwig
2003-01-12 19:15 ` Linus Torvalds
2003-01-12 19:34 ` Rob Wilkens
2003-01-12 19:37 ` Rob Wilkens
2003-01-12 19:53 ` Tomas Szepe
2003-01-12 20:03 ` Rob Wilkens
2003-01-13 15:43 ` Terje Eggestad
2003-01-13 15:49 ` Jens Axboe
2003-01-13 16:25 ` Terje Eggestad
2003-01-13 16:26 ` Jens Axboe
2003-01-13 16:41 ` Terje Eggestad
2003-01-13 16:43 ` Jens Axboe
2003-01-13 17:00 ` Zwane Mwaikambo
2003-01-13 18:48 ` Jens Axboe
2003-01-13 22:14 ` Keith Owens
2003-01-13 22:42 ` John Levon
2003-01-13 22:49 ` Zwane Mwaikambo
2003-01-13 23:32 ` Valdis.Kletnieks
2003-01-13 23:43 ` Zwane Mwaikambo
2003-01-12 20:44 ` Alan Cox
2003-01-12 21:22 ` David Woodhouse
2003-01-12 20:45 ` William Lee Irwin III
2003-01-13 13:14 ` Bernd Schmidt
2003-01-18 13:04 ` Folkert van Heusden
2003-01-12 19:38 ` Linus Torvalds
2003-01-12 19:59 ` Rob Wilkens
2003-01-12 20:18 ` Valdis.Kletnieks
2003-01-12 20:23 ` yodaiken
2003-01-12 20:26 ` Tomas Szepe
2003-01-12 20:32 ` Sean Neakums
2003-01-12 20:51 ` Valdis.Kletnieks
2003-01-13 0:54 ` Randy Dunlap
2003-01-12 20:46 ` Kevin Puetz
2003-01-13 0:48 ` Randy Dunlap
2003-01-18 13:07 ` Folkert van Heusden
2003-01-12 20:20 ` David Ford
2003-01-12 20:22 ` Linus Torvalds
2003-01-12 20:33 ` Robert Love
2003-01-12 20:33 ` Linus Torvalds
2003-01-13 10:54 ` Horst von Brand
2003-01-13 11:09 ` Eric W. Biederman
2003-01-13 14:34 ` Terje Eggestad
2003-01-13 23:23 ` Bob Taylor
2003-01-12 20:48 ` Rob Wilkens
2003-01-12 20:59 ` Dimitrie O. Paun
2003-01-12 22:48 ` any chance of 2.6.0-test*? -> goto example Willy Tarreau
2003-01-13 0:53 ` Rob Wilkens
2003-01-13 1:31 ` Willy Tarreau
2003-01-13 16:10 ` Alexander Kellett
2003-01-14 10:36 ` Helge Hafting
2003-01-12 23:11 ` Coding style - (Was Re: any chance of 2.6.0-test*?) John Bradford
2003-01-13 11:07 ` any chance of 2.6.0-test*? Helge Hafting
2003-01-13 3:30 ` yodaiken [this message]
2003-01-12 21:29 ` Rik van Riel
2003-01-13 0:03 ` Scott Robert Ladd
2003-01-13 0:38 ` Rob Wilkens
2003-01-13 3:06 ` [OT] " J Sloan
2003-01-13 16:51 ` Emiliano Gabrielli
2003-01-13 0:38 ` Randy Dunlap
2003-01-12 19:41 ` Christoph Hellwig
2003-01-12 19:41 ` Rob Wilkens
2003-01-12 19:58 ` David Ford
2003-01-12 20:07 ` Rob Wilkens
2003-01-12 20:31 ` Oliver Neukum
2003-01-12 20:34 ` David Ford
2003-01-12 20:31 ` Robert Love
2003-01-12 21:02 ` Rob Wilkens
2003-01-12 21:15 ` Matti Aarnio
2003-01-12 21:27 ` Rob Wilkens
2003-01-12 21:40 ` Rik van Riel
2003-01-12 21:44 ` Rob Wilkens
2003-01-12 21:49 ` Aaron Lehmann
2003-01-12 22:07 ` Rob Wilkens
2003-01-12 22:18 ` Aaron Lehmann
2003-01-12 22:34 ` Rob Wilkens
2003-01-12 22:52 ` Aaron Lehmann
2003-01-12 23:11 ` Rob Wilkens
2003-01-12 23:31 ` Oliver Neukum
2003-01-12 23:39 ` Emiliano Gabrielli
2003-01-12 23:46 ` Rob Wilkens
2003-01-12 23:57 ` Emiliano Gabrielli
2003-01-13 0:08 ` Rob Wilkens
2003-01-13 16:02 ` Terje Eggestad
2003-01-12 22:53 ` Sean Neakums
2003-01-12 23:06 ` Oliver Neukum
2003-01-12 23:48 ` Rik van Riel
2003-01-12 21:58 ` Emiliano Gabrielli
2003-01-12 22:12 ` Rob Wilkens
2003-01-12 22:29 ` Olivier Galibert
2003-01-12 23:21 ` Alan Cox
2003-01-12 22:12 ` Oliver Neukum
2003-01-12 22:18 ` Aaron Lehmann
2003-01-12 22:35 ` Rob Wilkens
2003-01-13 8:15 ` Jens Axboe
2003-01-12 21:49 ` David Ford
2003-01-13 19:22 ` [OffTopic] [apology] " Rob Wilkens
2003-01-12 21:59 ` Adam Kropelin
2003-01-12 22:21 ` Rob Wilkens
2003-01-12 22:33 ` Tomas Szepe
2003-01-12 22:36 ` Emiliano Gabrielli
2003-01-12 22:38 ` Oliver Neukum
2003-01-12 22:42 ` romieu
2003-01-13 1:06 ` Randy Dunlap
2003-01-13 1:21 ` Rob Wilkens
2003-01-13 1:51 ` Nuno Monteiro
2003-01-13 2:19 ` Rob Wilkens
2003-01-13 2:51 ` Marcelo Pacheco
2003-01-13 3:37 ` Rob Wilkens
2003-01-13 4:53 ` Billy Rose
2003-01-13 3:06 ` Jochen Striepe
2003-01-13 3:40 ` Rob Wilkens
2003-01-13 9:45 ` Matti Aarnio
2003-01-13 3:48 ` Ryan Anderson
2003-01-13 4:37 ` Billy Rose
2003-01-12 22:06 ` Oliver Neukum
2003-01-12 22:22 ` Rob Wilkens
2003-01-12 22:43 ` Oliver Neukum
2003-01-12 22:51 ` Rob Wilkens
2003-01-12 23:00 ` Robert Love
2003-01-12 23:16 ` Rob Wilkens
2003-01-12 23:16 ` Nicolas Pitre
2003-01-12 23:05 ` Emiliano Gabrielli
2003-01-12 23:23 ` Oliver Neukum
2003-01-12 23:45 ` Emiliano Gabrielli
2003-01-12 23:45 ` Emiliano Gabrielli
2003-01-13 20:01 ` Horst von Brand
2003-01-12 23:16 ` Oliver Neukum
2003-01-13 2:00 ` Ryan Anderson
2003-01-13 3:09 ` Rob Wilkens
2003-01-14 2:13 ` Rik van Riel
2003-01-12 22:58 ` Robert Love
2003-01-12 22:28 ` Matti Aarnio
2003-01-13 1:26 ` David Lang
2003-01-13 2:00 ` William Lee Irwin III
2003-01-13 11:08 ` How to avoid the woord 'goto' (was Re: any chance of 2.6.0-test*?) Bernd Petrovitsch
2003-01-13 14:56 ` Rob Wilkens
2003-01-13 22:02 ` any chance of 2.6.0-test*? Val Henson
2003-01-13 10:32 ` gotos in kernel [Was: Re: any chance of 2.6.0-test*?] Horst von Brand
2003-01-13 14:53 ` Rob Wilkens
2003-01-13 13:08 ` any chance of 2.6.0-test*? Dave Jones
2003-01-13 13:40 ` Andrew Walrond
2003-01-13 13:49 ` Oliver Neukum
2003-01-14 6:52 ` Bruce Harada
2003-01-14 7:12 ` Brian Tinsley
2003-01-13 15:23 ` Richard B. Johnson
2003-01-13 6:23 ` Greg KH
2003-01-13 16:35 ` Linus Torvalds
2003-01-13 18:33 ` Alan Cox
2003-01-13 18:01 ` Linus Torvalds
2003-01-13 19:17 ` Andrew McGregor
2003-01-12 17:37 ` Russell King
2003-01-13 1:08 ` Michael Kingsbury
2003-01-13 1:52 ` William Lee Irwin III
-- strict thread matches above, loose matches on Subject: below --
2003-01-10 16:39 Shawn Starr
2003-01-10 17:00 ` Dave Jones
2003-01-11 20:10 ` Horst von Brand
[not found] <20030110144325.T26554@parcelfarce.linux.theplanet.co.uk>
[not found] ` <20030110.130023.08256524.davem@redhat.com>
2003-01-10 21:48 ` Matthew Wilcox
[not found] <20030110165441$1a8a@gated-at.bofh.it>
[not found] ` <20030110165505$38d9@gated-at.bofh.it>
2003-01-11 12:27 ` Andi Kleen
2003-01-11 13:01 ` Russell King
2003-01-11 13:13 ` Andi Kleen
2003-01-11 14:39 ` Alan Cox
2003-01-11 14:06 ` Andi Kleen
2003-01-11 15:31 ` Alan Cox
2003-01-11 15:25 ` Andi Kleen
2003-01-11 19:18 ` Alan Cox
2003-01-13 3:33 ` Paul Mackerras
2003-01-13 14:59 ` Alan Cox
2003-01-13 18:36 ` Benjamin Herrenschmidt
2003-01-19 16:05 ` Pavel Machek
2003-01-12 18:02 David Truog
[not found] <3C6BEE8B5E1BAC42905A93F13004E8AB017DE60F@mailse01.axis.se>
2003-01-12 20:58 ` Rob Wilkens
2003-01-13 20:37 Manfred Spraul
2003-01-13 22:37 Albert D. Cahalan
[not found] <20030112201009$1534@gated-at.bofh.it>
[not found] ` <20030112204005$7287@gated-at.bofh.it>
2003-01-14 19:53 ` Kai Henningsen
2003-01-15 15:07 ` Scott Robert Ladd
2003-01-15 15:18 ` Marcelo Pacheco
2003-01-18 10:12 ` Kai Henningsen
2003-01-15 19:44 ` Werner Almesberger
[not found] <20030112205008$7a5d@gated-at.bofh.it>
[not found] ` <20030113112009$52fd@gated-at.bofh.it>
[not found] ` <20030113144017$68de@gated-at.bofh.it>
2003-01-14 20:01 ` Kai Henningsen
[not found] <20030112193012$71b2@gated-at.bofh.it>
[not found] ` <20030113020015$6883@gated-at.bofh.it>
[not found] ` <20030113023015$66a6@gated-at.bofh.it>
[not found] ` <20030113030011$6563@gated-at.bofh.it>
[not found] ` <20030113035007$451e@gated-at.bofh.it>
2003-01-14 20:18 ` Kai Henningsen
[not found] <20030113001006$005c@gated-at.bofh.it>
[not found] ` <20030113005007$4766@gated-at.bofh.it>
[not found] ` <20030113170014$20a1@gated-at.bofh.it>
2003-01-18 10:21 ` Kai Henningsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030112203045.A18178@hq.fsmlabs.com \
--to=yodaiken@fsmlabs.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=greg@kroah.com \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robw@optonline.net \
--cc=torvalds@transmeta.com \
--cc=wli@holomorphy.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox