Giter VIP home page Giter VIP logo

cpp_scope's Introduction

New C++ Scope

Over the years of my involvement in the C++ standardization process there has been a desire, and attempts, to standardize aspects of C++ that fall outside of just the language. For example: build communication and description, compiler options, package descriptions, compile database descriptions, module dependency specification, module discoverability, existence of DLLs. The response to considering those aspects has been either "it’s out of scope" or "we can only suggest" because the current scope does not acknowledge that there is a C++ ecosystem of build systems, package managers, linkers, files, and so on. This position has not only hindered progress in those aspects, it has driven away contributors that wished to work towards harmony in such systems.

As the C++ language continues to grow in use and capabilities, it is paramount that we consider putting it methods to manage the complexity of supporting what we can achieve with the language.

Why choose to add the specific word "supporting tools, supporting technologies, and supporting systems"?

Like the current C++ scope (or charter) it hopes to define a category of specifications without overly limiting what can be done in the future as it is not possible to predict what will be needed. At the same time using the key words "supporting" limits the realm squarely in the C++ language.

Here "tools" pertains to compilers, linkers, build systems, package managers, etc that work together to provide us with resulting libraries, applications, and packages.

While "technologies" and "systems" refers to the broader space where C++ code executes and interacts with.

Isn’t this too broad of a statement? You could do anything in that scope.

While technically true that almost anything is possible in choosing those words, the eventual acceptance of any proposal that touches in these expanded areas still has to survive the consensus based standardization process. Which means that any new standard specifications will provide alternative views and analysis taking into account the many voices of users and tool implementors before advancing. The addition of these words opens the door to taking the first step of having a proposal added to the queue to be debated.

Why does WG21 need to specify this expanded area standardization? Why not coordinate with some other standardization body?

It would be possible to do many of the specifications that one wants and needs outside of WG21. But by placing the responsibility outside of WG21 first creates friction between likely incoherent sets of goals. Such incoherence could be resolved with coordination, but that will increase the burden on both, or more, organizations. I.e. you would end up achieving significantly less with significantly more effort. The current arrangement of partitioned field expertise works well in reducing the burden for most in the committee when working on standardization. The hope is that the standards available with this expanded scope would work alongside and in parallel to the current process. Instead of increasing the additional burdens greatly.

JTC1/SC22/WG21

Thank you for your interest in this open letter to expand the scope of C++, i.e. the ISO/IEC JTC1/SC22/WG21. If you would like to co-sign the letter please open a pull-request to add your name. In the letter there are two sections:

JTC1/SC22/WG21 Members

If you are a voting member of the C++ committee, aka WG21, you can add you name to this section.

C++ Users

If you one of the awesome C++ users that just loves the language you can add your name to this section.

Co-sign Letter by editing in your own branch and subsequently creating a pull-request from your branch.

This letter will only be open until March 2, 2022 8:00 AM Central Standard Time. At which point it will be sent to the WG21 Convenor for consideration.

INCITS/PL22.16

If you are a member of INCITS/PL22.16 you may also consider co-signing a corresponding letter to the US national body C++ group.

Co-sign Letter by editing in your own branch and subsequently creating a pull-request from your branch.

This letter will only be open until February 28, 2022 8:00 AM Central Standard Time. At which point it will be sent to at least the INCITS/PL22.16 Chair. This period is shorter than the above WG21 letter to fit within the time limit of the currently open comment period for review of the charter.

cpp_scope's People

Contributors

grafikrobot avatar jbadwaik avatar aminya avatar bretbrownjr avatar jayeshbadwaik avatar mknejp avatar ben-craig avatar chadsy avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.