public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Guenther <richard.guenther@gmail.com>
To: Torvald Riegel <triegel@redhat.com>
Cc: Michael Matz <matz@suse.de>,
	Xinliang David Li <davidxl@google.com>,
	Jakub Jelinek <jakub@redhat.com>,
		Bernd Schmidt <bernds@codesourcery.com>,
	Gabriel Dos Reis <gdr@integrable-solutions.net>,
		David Edelsohn <dje.gcc@gmail.com>,
	Diego Novillo <dnovillo@google.com>, gcc <gcc@gcc.gnu.org>
Subject: Re: Switching to C++ by default in 4.8
Date: Wed, 11 Apr 2012 13:13:00 -0000	[thread overview]
Message-ID: <CAFiYyc3N7MzW06nSiJgmZ5HR7qYFcXkR=Yz_z6a_s2m+ciGAMQ@mail.gmail.com> (raw)
In-Reply-To: <1334149073.3101.23.camel@triegel.csb>

On Wed, Apr 11, 2012 at 2:57 PM, Torvald Riegel <triegel@redhat.com> wrote:
> On Wed, 2012-04-11 at 11:24 +0200, Richard Guenther wrote:
>> On Tue, Apr 10, 2012 at 7:29 PM, Torvald Riegel <triegel@redhat.com> wrote:
>> > Think about programmers new to GCC for a second, and about code
>> > completion tools.
>>
>> Honestly I care 1000 times more for existing GCC developers.  Before
>> new programmers will have an easier time with GCC _existing_ GCC
>> developers will have to spend at least two GCC release cycles (that's
>> very optimistic) turning the GCC codebase upside-down.  Every
>> existing GCC developer you lose on that way will slow down that
>> process and for every existing GCC developer you probably need more
>> that one "new" GCC developer starting.
>>
>> It's very easy for me to do the math and conclude that losing even _one_
>> experienced existing GCC developer makes this whole transition-to-C++
>> thing a non-starter.
>
> I agree that less work-force in the transition would be a problem.  But
> is C++ (perceived to be) so bad that it would make people change their
> jobs?  I mean, we're not talking about the experienced hobbyists here,
> or are we?

Until some company puts money behind converting to C++ then yes,
it's the hobbyists (or the non-hobbyists in their spare time).

> However, the concern you raised is only one part of the problem.  The
> other is that, put in a simplified way, GCC is competing with LLVM about
> new and/or non-fulltime-compiler developers.  For me, it looks like LLVM
> is more appealing to them, and I believe part of the reason for that is
> the codebase.
> Now, how many release cycles do we have until LLVM is basically good
> enough to be used as a distro compiler (e.g., until code quality and
> confidence in bug freedom is sufficiently similar)?  If we haven't
> ensured that GCC is appealing by this time, why should new programmers
> then start considering GCC and not just go by default to LLVM?

If you look at the existing developer base then the majority of it is paid.
And frankly while empolyers may listen to their employees, switching
from GCC to LLVM is not something they'd do based on a C++ vs. C
implementation language (but maybe based on availability of consulting
services or new employees or viability of using LLVM for weird architectures
or simply based on customer demand).

>>
>> >  It seems to me that with such a tool it's much easier
>> > to navigate from exp to the field, than having to scan through a much
>> > larger number of accessor functions / macros (GET_*).  The former
>> > example starts at the source (exp) and yields/"builds" the result; the
>> > latter names some function and then says applies it to the source.  Why
>> > is the former so much worse?  To me, the former's structure is easier to
>> > see, and if I would have to put the spaghetti tag on something, then the
>> > latter.
>>
>> Sounds more like missed features or bugs in the tools you use.  Heh,
>> after all our complaints that C++ will be harder to debug are deflected
>> to "that are gdb missing features / bugs".  So - file bugs against Eclipse
>> (or whatever new and shiny programmers use these days), that it does
>> not work well with a codebase like GCC.
>
> Please don't dismiss this so easily.  Of course this is just an example
> and nothing major, but I believe many people will use tab completion on
> the shell, for example, and code completion is really similar.  On the
> shell, or with paths names, you start with typing something, then can
> navigate from this context you provided.  That just works better when
> you say context->function instead of function(context).
> And I'm not a cognitive psychologist, but to me, seeing the context
> first when reading left-to-right is also slightly easier to read.

Well, but mult (add (x, y), z) is easier to understand than x.add (y).mult (z)
because operator precedence is visible.

Similar for doit (a, b) compared to a.doit (b) (or b.doit (a) - what preference
is there for two inputs?).  So you likely end up with a mix anyway.

Richard.

  reply	other threads:[~2012-04-11 13:13 UTC|newest]

Thread overview: 182+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-03 17:38 Diego Novillo
2012-04-03 19:39 ` Paweł Sikora
2012-04-03 20:52   ` Ian Lance Taylor
2012-04-03 21:34     ` Paweł Sikora
2012-04-20 20:14       ` Joseph S. Myers
2012-04-04  5:19     ` Basile Starynkevitch
2012-04-04  1:13 ` David Edelsohn
2012-04-04  4:00   ` Ian Lance Taylor
2012-04-04  4:42     ` Miles Bader
2012-04-04  8:32   ` Gabriel Dos Reis
2012-04-04  9:06     ` Richard Guenther
2012-04-04  9:10       ` Gabriel Dos Reis
2012-04-04  9:15       ` Gabriel Dos Reis
2012-04-04  9:59         ` Richard Guenther
2012-04-04 10:02           ` Richard Guenther
2012-04-04 11:20       ` Diego Novillo
2012-04-04 11:38         ` Richard Guenther
2012-04-04 14:12           ` Tom Tromey
2012-04-04 14:45             ` Richard Guenther
2012-04-04 14:48               ` Richard Guenther
2012-04-14  1:35           ` Chiheng Xu
2012-04-14  9:09             ` Robert Dewar
2012-04-14 10:03               ` Chiheng Xu
2012-04-14 11:13                 ` Robert Dewar
2012-04-14 11:41                 ` Jonathan Wakely
2012-04-14 10:39               ` Gabriel Dos Reis
2012-04-14 11:08                 ` Robert Dewar
2012-04-16  9:37                   ` Chiheng Xu
2012-04-16  9:38                     ` Jonathan Wakely
2012-04-17  9:11                     ` Robert Dewar
2012-04-05 12:40         ` Pedro Lamarão
2012-04-05 13:05           ` Richard Guenther
2012-04-05 14:21             ` Diego Novillo
2012-04-05 14:24               ` Richard Guenther
2012-04-05 14:36                 ` Diego Novillo
2012-04-05 20:17                   ` David Edelsohn
2012-04-05 20:36                     ` Gabriel Dos Reis
2012-04-06  0:11                       ` David Edelsohn
2012-04-09 10:37                         ` Richard Guenther
2012-04-09 15:07                           ` David Edelsohn
2012-04-10 22:04               ` Pedro Lamarão
2012-04-10 22:56                 ` Diego Novillo
2012-04-04 11:53       ` Bernd Schmidt
2012-04-04 12:04         ` Richard Guenther
2012-04-04 14:59           ` Diego Novillo
2012-04-04 17:54           ` Lawrence Crowl
2012-04-05  9:18             ` Richard Guenther
2012-04-05 20:07               ` Lawrence Crowl
2012-04-09 10:40                 ` Richard Guenther
2012-04-09 17:56                   ` Lawrence Crowl
2012-04-09 18:22                     ` Jakub Jelinek
2012-04-09 18:52                       ` Lawrence Crowl
2012-04-09 18:54                         ` Jakub Jelinek
2012-04-09 21:15                           ` Lawrence Crowl
2012-04-10 11:09                         ` Richard Guenther
2012-04-11  1:36                           ` Lawrence Crowl
2012-04-11  6:55                             ` Jakub Jelinek
2012-04-13 23:26                               ` Dave Korn
2012-04-11  9:32                             ` Richard Guenther
2012-04-14  3:07                       ` Chiheng Xu
2012-04-14  3:04                   ` Chiheng Xu
2012-04-14 21:25                     ` Lawrence Crowl
2012-04-09 23:34           ` Xinliang David Li
2012-04-10  8:46             ` Jakub Jelinek
2012-04-10 12:26               ` Michael Matz
2012-04-10 15:51                 ` David Edelsohn
2012-04-10 16:05                   ` Gabriel Dos Reis
2012-04-10 16:13                     ` Diego Novillo
2012-04-11  9:17                       ` Richard Guenther
2012-04-11 16:35                         ` Xinliang David Li
2012-04-10 16:12                 ` Xinliang David Li
2012-04-10 16:24                   ` Michael Matz
2012-04-10 17:08                     ` Xinliang David Li
2012-04-10 17:29                     ` Torvald Riegel
2012-04-10 18:00                       ` Eric Botcazou
2012-04-10 19:56                         ` Torvald Riegel
2012-04-10 21:13                           ` Eric Botcazou
2012-04-10 21:29                             ` Torvald Riegel
2012-04-10 23:15                               ` Eric Botcazou
2012-04-11 20:57                                 ` Torvald Riegel
2012-04-11 21:15                                   ` Eric Botcazou
2012-04-11 21:43                                     ` Torvald Riegel
2012-04-13 23:33                                     ` Dave Korn
2012-04-11  9:24                       ` Richard Guenther
2012-04-11 12:58                         ` Torvald Riegel
2012-04-11 13:13                           ` Richard Guenther [this message]
2012-04-11 13:23                             ` Gabriel Dos Reis
2012-04-11 14:19                             ` Torvald Riegel
2012-04-11 17:24                             ` Xinliang David Li
2012-04-11 18:17                               ` Andrew Pinski
2012-04-11 20:02                                 ` Xinliang David Li
2012-04-12  5:08                                 ` Ian Lance Taylor
2012-04-12  6:12                                   ` Miles Bader
2012-04-12  6:22                                     ` James Dennett
2012-04-11 18:26                               ` Jonathan Wakely
2012-04-11 18:41                                 ` Pedro Alves
2012-04-11 20:00                                 ` Xinliang David Li
2012-04-11 20:05                                   ` Jonathan Wakely
2012-04-12  5:10                                     ` Ian Lance Taylor
     [not found]                           ` <12130397.ZsTVnyYbKR@pawels>
2012-04-11 13:14                             ` Richard Guenther
2012-04-11 13:24                           ` Bernd Schmidt
2012-04-11 17:31                             ` Xinliang David Li
2012-04-11 18:37                               ` Basile Starynkevitch
2012-04-11 18:52                                 ` Gabriel Dos Reis
2012-04-11 20:14                                 ` Xinliang David Li
2012-04-12 15:51                                 ` Ludovic Courtès
2012-04-13 23:45                             ` Dave Korn
2012-04-11 14:41                           ` Jonathan Wakely
2012-04-11 17:13                           ` Xinliang David Li
2012-04-11 19:30                           ` Tobias Burnus
2012-04-11 20:44                             ` Torvald Riegel
2012-04-13 23:48                             ` Dave Korn
2012-04-13 23:37                           ` Dave Korn
2012-04-10 17:48                     ` DJ Delorie
2012-04-10 19:21                     ` Dave Korn
2012-04-10 16:23               ` Xinliang David Li
2012-04-10 16:39                 ` Jakub Jelinek
2012-04-10 16:43                   ` Gabriel Dos Reis
2012-04-10 16:47                     ` Diego Novillo
2012-04-12 19:40                       ` Tom Tromey
2012-04-12 19:42                         ` Diego Novillo
2012-04-12 19:51                           ` Tom Tromey
2012-04-10 17:37                   ` Torvald Riegel
2012-04-10 21:39                     ` Miles Bader
2012-04-10 22:32                       ` Bernd Schmidt
2012-04-10 23:28                         ` Eric Botcazou
2012-04-10 23:35                           ` Gabriel Dos Reis
2012-04-11  7:49                             ` Eric Botcazou
2012-04-11  7:55                               ` Gabriel Dos Reis
2012-04-11  8:11                                 ` Eric Botcazou
2012-04-11 11:41                                   ` Jeff Law
2012-04-11  7:02                           ` Jakub Jelinek
2012-04-11  7:46                             ` Gabriel Dos Reis
2012-04-11  7:51                               ` Jakub Jelinek
2012-04-11 12:37                               ` Bernd Schmidt
2012-04-11 12:47                                 ` Richard Guenther
2012-04-11 17:10                                   ` Xinliang David Li
2012-04-11 13:20                                 ` Gabriel Dos Reis
2012-04-11 13:29                                   ` Jakub Jelinek
2012-04-11 13:44                                     ` Gabriel Dos Reis
2012-04-11 14:45                                     ` David Edelsohn
2012-04-11 17:41                                       ` Xinliang David Li
2012-04-11 17:08                                 ` Xinliang David Li
2012-04-11  8:07                             ` Eric Botcazou
2012-04-11  9:45                               ` Richard Guenther
2012-04-10 17:54                   ` Xinliang David Li
2012-04-11 12:44                     ` Marek Polacek
2012-04-11 16:49                       ` Xinliang David Li
2012-04-11  2:24                   ` Lawrence Crowl
2012-04-11  9:43                     ` Richard Guenther
2012-04-11 16:47                       ` Xinliang David Li
2012-04-11 20:48                       ` Paweł Sikora
2012-04-11 22:34                       ` Lawrence Crowl
2012-04-12  9:28                     ` Chiheng Xu
2012-04-12 10:30                       ` Richard Guenther
2012-04-14  1:15                         ` Chiheng Xu
2012-04-14  6:30                           ` Chiheng Xu
2012-04-14  9:08                           ` Robert Dewar
2012-04-14 10:38                             ` Chiheng Xu
2012-04-14 11:06                               ` Robert Dewar
2012-04-10 16:42               ` Paweł Sikora
2012-04-10 19:23                 ` Dave Korn
2012-04-10 20:39                   ` Andrew Pinski
2012-04-11  9:27                   ` Richard Guenther
2012-04-11  1:01               ` Lawrence Crowl
2012-04-14  3:40               ` Chiheng Xu
2012-04-14  3:48               ` Chiheng Xu
2012-04-15 20:11                 ` Chiheng Xu
2012-04-16  7:48                   ` Duncan Sands
2012-04-16  9:23                     ` Chiheng Xu
2012-04-16 18:53                   ` Oleg Endo
2012-04-17 22:03                     ` Chiheng Xu
2012-04-18  0:15                       ` Oleg Endo
2012-04-10 11:14             ` Richard Guenther
2012-04-10 16:33               ` Xinliang David Li
2012-04-14  2:41           ` Chiheng Xu
2012-04-04 11:22   ` Diego Novillo
2012-04-04  7:07 ` Tristan Gingold
2012-04-04 13:13   ` Ian Lance Taylor
2012-04-04 13:32     ` Tristan Gingold
2012-04-04 14:37       ` Gabriel Dos Reis
2012-04-04 14:52         ` Tristan Gingold

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='CAFiYyc3N7MzW06nSiJgmZ5HR7qYFcXkR=Yz_z6a_s2m+ciGAMQ@mail.gmail.com' \
    --to=richard.guenther@gmail.com \
    --cc=bernds@codesourcery.com \
    --cc=davidxl@google.com \
    --cc=dje.gcc@gmail.com \
    --cc=dnovillo@google.com \
    --cc=gcc@gcc.gnu.org \
    --cc=gdr@integrable-solutions.net \
    --cc=jakub@redhat.com \
    --cc=matz@suse.de \
    --cc=triegel@redhat.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).