On Wed, 2012-04-11 at 21:30 +0200, Tobias Burnus wrote: > Torvald Riegel wrote: > > On Wed, 2012-04-11 at 11:24 +0200, Richard Guenther wrote: > >> > 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? > > I hope we are! At least GCC's Fortran front end is mostly developed by > experienced hobbyist - and I know some who do not want to learn C++ to > be able to continue with the project. However, I have some confidence > that the changes will be such that no developer will give up.
To avoid any misunderstandings, I'd like to stress that my comment was explicitly a reply to Richard's comment about paid developers. I do think that non-full-time developers are important for the project, that's why I raised the point of attracting new developers in the first place. I guess it doesn't really make a difference for our discussion whether those developers are hobbyist, paid to work on something minor or some project, or just experimenting with new stuff (e.g., researchers); what they likely have in common is that they need to get meaningful stuff done fast but don't have the time to master every corner of GCC first. In contrast, if you're working on something full-time for several years, then yes, you'll know everything about it, including all the weird bits, workarounds, and idioms; any change then has a cost. But if the amount of this required information is large (e.g., the code base is complicated, full of unexpected surprises, or just cannot be worked on in a localized fashion), then non-full-time developers have a hard time working with GCC; every time they switch from their other projects / day job / ... to working on GCC, the context switch cost is huge. Same applies when starting to work on GCC for the first time. Regarding learning C++, I wouldn't worry much about this. If you look at the list that Lawrence Crowl sent, for example, lots of the example benefits in there are pretty transparent if you just use them, and easy to learn. Perhaps some slightly more advanced C++ knowledge is required when adding core data structures, but these will follow common patterns too I suppose. Torvald