[Development] A modest proposal: disable lower-case keywords (emit, foreach, forever, signals, slots) by default

Lars Knoll lars.knoll at qt.io
Mon Feb 24 12:25:03 CET 2020


> On 21 Feb 2020, at 17:39, Thiago Macieira <thiago.macieira at intel.com> wrote:
> 
> On Friday, 21 February 2020 04:59:02 PST Ville Voutilainen wrote:
>> Having a keyword-extension to normal C++ is ugly as sin, to some of
>> us. It causes
>> fair amounts of "wtf is that?".
> 
> That was my reaction when I first saw it, in 1999.
> 
> Over 20 years later, I don't bat an eye.

After 20 years, my eyes simply ignore any ‘emit’ in the source code.

In any case, I do understand why Qt added emit as a keyword 25 years ago. But today, we do have IDEs which should be able to figure out on the fly whether a function call is a signal emission (as they already do for virtual vs non virtual methods). So why don’t we move the over to be a tooling problem? Simply highlight signal emissions differently in the IDE and you don’t need a keyword for it anymore. It’s also safer, as the keyword can be forgotten or applied to the wrong places.

Cheers,
Lars



More information about the Development mailing list