mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Rob Wilkens <robw@optonline.net>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: 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 15:48:24 -0500	[thread overview]
Message-ID: <1042404503.1208.95.camel@RobsPC.RobertWilkens.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0301121208020.14031-100000@home.transmeta.com>

On Sun, 2003-01-12 at 15:22, Linus Torvalds wrote:
> 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.

Ok, so you disagree with his style is what you're saying.  You are free
to disagree, that's your right.  We're just from different schools.

> Any if-statement is a goto. As are all structured loops.

"structured" being a key word.  I like structure in code.  Let's face
it, everyone likes code to be well structured, that's why there's the
"CodingStyle" document -- people like the code to look a certain way so
they can read it later.  Without structure, you don't have that

> Ans sometimes structure is good. When it's good, you should use it.

Ok, we agree there.

> And sometimes structure is _bad_, and gets into the way, and using a 
> "goto" is just much clearer.

I can't foresee many scenarios where this would be the case.  Someone
spoke, for example, about being indented too far and needing to jump out
because there isn't a good "break" mechanism... Well, as it says in the
coding style document -- if you're indented more then 3 levels in,
"you're screwed anyway, and should fix your program".  

In the code snippet you put up, I don't see structure as having been bad
and a goto as having been clearer.

> For example, it is quite common to have conditionals THAT DO NOT NEST.

Could someone (Linus, I know your busy, so I won't ask you -- in fact,
I'm amazed you'd bother to write to _me_ at all) please point me to
sample code that illustrates this.  I'm trying to envision "conditionals
that do not nest that need goto".  As near as I can tell, there must be
some condition that the goto nests all the conditions in otherwise the
goto wouldn't be needed.  In some cases, Maybe what's between the goto
and whats gone to should be broken up into a new function (modularized)
and called independently of function that the goto was in.

As someone else pointed out, it's provable that goto isn't needed, and
given that C is a minimalist language, I'm not sure why it was included.

> 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".

But at least the code is "readable" when you do that.  Sure it's a
little more work on the part of the programmer.  But anyone reading the
code can say "oh, so the loop exits when condition x is met", rather
than digging through the code looking for any place their might be a
goto.

Of course, I'm not about to argue that the kernel should be rewritten 
in PASCAL, nor am I interested in reinventing the wheel.  We've got a
good system here, let's just keep it good and make it better.  (Notice I
say "we" as if I've contributed something to it, whereas really I mean
we including myself as an end-user.)

-Rob



  parent reply	other threads:[~2003-01-12 20:41 UTC|newest]

Thread overview: 201+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-10 16:10 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 20:45                 ` William Lee Irwin III
2003-01-13 13:14                   ` Bernd Schmidt
2003-01-12 21:22                 ` David Woodhouse
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 [this message]
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
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
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=1042404503.1208.95.camel@RobsPC.RobertWilkens.com \
    --to=robw@optonline.net \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=greg@kroah.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --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

Powered by JetHome