Presentation is loading. Please wait.

Presentation is loading. Please wait.

5/1/2015 1 The Boost Software Process Where Standardization meets the Chaos of Open Source David Abrahams, Boost Consulting.

Similar presentations


Presentation on theme: "5/1/2015 1 The Boost Software Process Where Standardization meets the Chaos of Open Source David Abrahams, Boost Consulting."— Presentation transcript:

1 5/1/2015 1 The Boost Software Process Where Standardization meets the Chaos of Open Source David Abrahams, Boost Consulting

2 copyright 2007 David Abrahams 5/1/2015 2 Why We Need High-Level Libraries Less code  Real productivity  Less to write  Less to debug More expressive code  Natural to write  More self-documenting  More likely to be correct the first time

3 copyright 2007 David Abrahams 5/1/2015 3 Standard Library Deathmatch PythonJavaC++

4 copyright 2007 David Abrahams 5/1/2015 4 Boost Is… A collection of C++ libraries that are:  Open-source  Portable  Peer reviewed  Rigorously tested A volunteer developer community A set of online resources: http://www.boost.org  Mailing lists / newsgroups  Documentation  Articles  File Vault: http://www.boost-consulting.com/vault

5 copyright 2007 David Abrahams 5/1/2015 5 Boost Origins - 1998 C++ standard ratified Beman Dawes considers the state of std:: And asks where the new libraries will come from (~2008) OK, we’re a little late… Beman

6 copyright 2007 David Abrahams 5/1/2015 6 Boost Goals Fill gaps in std:: Establish “existing practice” for standard. Develop best practices for C++ library design Have fun building great libraries!

7 copyright 2007 David Abrahams 5/1/2015 7 Consequent Goals Adoption  Portability  Licensing  Testing  Scrutiny  Quality  Documentation Volunteer contribution  Community  Ownership  Acknowledgement

8 copyright 2007 David Abrahams 5/1/2015 8 Committee Software Process 1. Write proposal 2. Submit proposal 3. Wait for it to reach committee members 4. If serious, show up at next meeting 5. Proposal goes through wringer 6. Apply feedback 7. Work on formal wording (or back to step 2) 8. More meetings 9. Standard is Released

9 copyright 2007 David Abrahams 5/1/2015 9 Boost Software Process 1. Gauge community interest 2. Apply feedback 3. Show the community something 4. Apply feedback 5. Request formal review 6. Library goes through wringer 7. Apply feedback 8. Integrate into Boost (or back to step 3) 9. Another Boost release 10. Apply feedback 11. Back to step 9

10 copyright 2007 David Abrahams 5/1/2015 10 Where Are the Libraries? Boost: 72 libraries and growing! (10 in TR1) 83

11 copyright 2007 David Abrahams 5/1/2015 11 Why Boost Matters Free high-level libraries Cutting-edge C++ practiced here!  Generic Programming  Innovation  Best practices High quality Unique peer review process Major contributor to C++ standard / TR1 Does stuff you need!

12 copyright 2007 David Abrahams 5/1/2015 12 Which do you prefer? Imperative: Declarative: if (line.compare(...) == 0) { std::size_t offset =...; if (line.compare(...) == 0) offset +=...; } "^Subject: (Re: )?(.*)"  Describes procedure  Verbose  Hard to maintain  Temporal Describes goal Concise Easy to maintain Timeless

13 copyright 2007 David Abrahams 5/1/2015 13 Infix Calculator Grammar In Extended Backus-Naur Form group ::= '(' expr ')' fact ::= integer | group; term ::= fact (('*' fact) | ('/' fact))* expr ::= term (('+' term) | ('-' term))*

14 copyright 2007 David Abrahams 5/1/2015 14 group ::= '(' expr ')' fact ::= integer | group; term ::= fact (('*' fact) | ('/' fact))* expr ::= term (('+' term) | ('-' term))* Infix Calculator Grammar In Boost.Spirit rule<> group, fact, term, expr; group = '(' >> expr >> ')'; fact = integer | group; term = fact >> *(('*' >> fact) | ('/' >> fact)); expr = term >> *(('+' >> term) | ('-' >> term));


Download ppt "5/1/2015 1 The Boost Software Process Where Standardization meets the Chaos of Open Source David Abrahams, Boost Consulting."

Similar presentations


Ads by Google