On Wed, Apr 11, 2012 at 5:57 AM, Torvald Riegel <trie...@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 <trie...@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? > > 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?
Yes -- this should be the main motivation factor for GCC to make major changes or even leapfrog -- LLVM is also more than 10 years old. David > >> >> > 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. >