> -----Original Message-----
> From: Lars Knoll <lars.kn...@qt.io>
> Sent: Monday, 24 February 2020 1:40 PM
> To: Mitch Curtis <mitch.cur...@qt.io>
> Cc: Thiago Macieira <thiago.macie...@intel.com>; Qt development mailing
> list <development@qt-project.org>
> Subject: Re: [Development] A modest proposal: disable lower-case
> keywords (emit, foreach, forever, signals, slots) by default
> 
>       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.

In that case, I share the same concerns as Andre in that it requires IDEs to 
have knowledge about Qt. I only use Creator, so it won't bother me, but it will 
affect others who are e.g. transitioning or are so used to another IDE that 
they'd never switch. Semi-related to this: Jira still doesn't know about QML as 
a highlighter syntax, 11 years later. :)

> 
> 
>               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.

This sounds a lot like what Eike said, where the assumption is that because 
people can misuse it, they will. I don't know why anyone would use it in the 
wrong context except by accident. I agree that IDE highlighting is better 
because it's infallible, but like I said, I've never seen the keyword misused.

> 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