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

Mitch Curtis mitch.curtis at qt.io
Fri Feb 21 13:57:11 CET 2020


> -----Original Message-----
> From: Eike Ziller <Eike.Ziller at qt.io>
> Sent: Friday, 21 February 2020 1:55 PM
> To: Mitch Curtis <mitch.curtis at qt.io>
> Cc: Ville Voutilainen <ville.voutilainen at gmail.com>; Alex Blasche
> <alexander.blasche at qt.io>; development at 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 13:30, Mitch Curtis <mitch.curtis at qt.io> wrote:
> >
> >> -----Original Message-----
> >> From: Development <development-bounces at qt-project.org> On Behalf
> Of
> >> Ville Voutilainen
> >> Sent: Friday, 21 February 2020 12:16 PM
> >> To: Alex Blasche <alexander.blasche at qt.io>
> >> Cc: development at qt-project.org
> >> Subject: Re: [Development] A modest proposal: disable lower-case
> >> keywords (emit, foreach, forever, signals, slots) by default
> >>
> >> On Fri, 21 Feb 2020 at 10:42, Alex Blasche <alexander.blasche at qt.io>
> wrote:
> >>> I think a fallback to
> >>>
> >>> somethingChanged()
> >>>
> >>> without any annotation is not what we want. We'd miss vital
> >>> information
> >> and reduce readability.
> >>
> >> Can you please explain what that vital information is?
> >
> > How can you tell if it's a signal being emitted or just a function call without
> the emit syntax? With the emit syntax before the signal emission, it's
> immediately obvious that it's a signal.
> 
> It isn’t because you can put “emit” anywhere in your code because it has no
> semantics for the compiler.

I never said it had any semantic purpose, I'm purely arguing that it has implications for readability.

> It’s not beter than any code comment that you could also put there, like
> 
> /*emit*/ something();
> 
> or
> 
> something(); // emit

I disagree; I think those are ugly.

> > Not all signals follow the *Changed() naming convention, nor should they,
> so it becomes even less obvious in those cases.
> >
> >> _______________________________________________
> >> Development mailing list
> >> Development at qt-project.org
> >> https://lists.qt-project.org/listinfo/development
> > _______________________________________________
> > Development mailing list
> > Development at qt-project.org
> > https://lists.qt-project.org/listinfo/development
> 
> --
> Eike Ziller
> Principal Software Engineer
> 
> The Qt Company GmbH
> Erich-Thilo-Straße 10
> D-12489 Berlin
> eike.ziller at qt.io
> http://qt.io
> Geschäftsführer: Mika Pälsi,
> Juha Varelius, Mika Harjuaho
> Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg,
> HRB 144331 B



More information about the Development mailing list