On 24 Feb 2020, at 13:22, Mitch Curtis 
<mitch.cur...@qt.io<mailto:mitch.cur...@qt.io>> wrote:

-----Original Message-----
From: Development 
<development-boun...@qt-project.org<mailto:development-boun...@qt-project.org>> 
On Behalf Of
Lars Knoll
Sent: Monday, 24 February 2020 12:25 PM
To: Thiago Macieira 
<thiago.macie...@intel.com<mailto:thiago.macie...@intel.com>>
Cc: Qt development mailing list 
<development@qt-project.org<mailto:development@qt-project.org>>
Subject: Re: [Development] A modest proposal: disable lower-case
keywords (emit, foreach, forever, signals, slots) by default

On 21 Feb 2020, at 17:39, Thiago Macieira 
<thiago.macie...@intel.com<mailto:thiago.macie...@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.

That's one way of handling it, but I don't see the harm in keeping it for those 
who want to use it. I don't think anyone has explained what that harm is yet.

It’s redundant. I would prefer to remove things that are redundant and where 
the information could be provided by other means.

It’s also safer, as the keyword can be forgotten or applied to the wrong places.

I don't think I've ever seen this happen, and am curious as to why it's 
dangerous. It might be misleading, but it couldn't cause harm, just a moment of 
mild confusion. In terms of harm, I see it as on par with (or probably even 
less dangerous than) an out-dated code comment. I think that marking signal 
emissions aids the reader (and there is certainly *a lot* of Qt code that could 
e.g. use more code comments to aid people who have to maintain it).

Of course it won’t change the logic. I could sprinkle my source code with tons 
of “emit” all over the place and it wouldn’t change it’s meaning ;-)

emit if emit (emit myVar == emit true)
mySignal() emit emit emit;

But we could convey the information that this is a signal you’re calling 
*reliably* through other means. This implies that the keyword is not required.

Cheers,
Lars


Cheers,
Lars

_______________________________________________
Development mailing list
Development@qt-project.org<mailto:Development@qt-project.org>
https://lists.qt-project.org/listinfo/development

_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to