[Development] Some Qt3D feedback

Marc Mutz marc.mutz at kdab.com
Thu Jun 18 13:32:37 CEST 2015


On Thursday 18 June 2015 11:37:48 Knoll Lars wrote:
> >Curiously, you didn't list any pro-namespace arguments. I don't know what
> >to  make of this, but I fear that a decision is being made based solely
> >on arguments from one side.
> 
> So what are the arguments from your point of view then? Apart from
> namespaces being in fashion.

If this was about fashion, then namespaces have been fashionable since at 
least the early 2000s (std::, boost::).

Pro namespaces:

- It's the standard way of partioning the name space. C++ users understand it,
  the C++ language understands it, and the C++ compiler does, too.

- namespaces act as an ADL barrier (did you ever got lost in the error
  compilers spew out when you get a simple == wrong? they rival template error
  messages, and the reson is that they're all put into the global scope).

- related: they provide a module-wide C++ scope (std::rel_ops example)

- you cannot (meaningfully) use inline namespaces for versioning (an option we
  should at least consider) if you don't have a namespace in which to put
  them.

- the user has the option of whether she wants to be explicit or convenient.
  Qt trying to impose this decision on its users by name prefixing is
  a) ignoring the fact that many users I know (QtC, KDE(pim)[1], to name the
     biggest and most well-known), liberally use using-directives and do just
     fine. The standard books teach this, too.
  b) preposterous. Imagine your OS took away your hierarchical filesystem and
     required you to type
         $EDITOR homelarsdevQt5qtbasesrccorelibkernelqobject.h
     every time. How long until you'd go mad? But hey, you cannnot _not_ see
     the path of each file, even when someone pastes it on the internet.
  But this is what you're imposing on your users. It's ok as long as it was
  just Q. That's cute. But QDesignerCustomWidgetCollectionInterface or
  QDeclarativeNetworkAccessManagerFactory is *NOT* cute. It's ridiculous.

[1] And no-one, not even QtC, uses so many libraries as KMail does. If you are
    looking for namespace experience, look there.

Thanks,
Marc

-- 
Marc Mutz <marc.mutz at kdab.com> | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
Tel: +49-30-521325470
KDAB - The Qt Experts



More information about the Development mailing list