
David wrote:
Andy wrote:
The other concern may simply be the perceived complexity of templates.
No, the *actual* complexity. Most "GUI" programmers happen to be quite junior, and templates are tricky. Types not consisting of one simple lexeme are complex. [And typedef's do not save that...]
Not that very senior developers do not do GUI, but that is not their typical chores at a firm, and when they do they put themselves in "GUI mode," meaning that they often set aside their code aesthetics.
If it is true that most companies (mine doesn't) relegate GUI tasks to novices, I think it's a mistake to do so. Contrary to what many think, creating a good GUI is often one of the more complicated parts of a program - and the part of the program with which your customer will interact most. Current GUI programming tools facilitate easy creation of toy GUIs while at the same time hindering the creation of commercial grade applications and also hindering the use of more powerful code reuse mechanisms.
From what I've seen, when average programmers do create 'good' GUIs, they are one time Herculean efforts of will, labors of love, and maintenance nightmares. Without more expressive tools the creation of solid state GUIs will remain solely in domain of highly experienced programmers.
Regular programmers cannot use templates more than via very simple patterns, such as smart pointers (actullay popularized via Microsoft's Active Template Library, I think), and they can certainly not create their own templates.
A well designed library can facilitate the use of powerful template mechanisms without requiring the programmer to understand how they work. You can use Spirit, for instance, without understanding the intricate world of expression templates.
I have interviewed about a hundred "expert C++ programmer" (from the resume...) of which three (3) had ever created his/her/its own template, and zero (0) had ever used either templates as template parameters or nested template instantiations.
I'd agree with that. I'd say over half of the "C++ programmers" I interview can't tell me what the STL is! Brock