For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it? For those who have been around for a while, what keeps you here? Why do you stay engaged?
On Wed, 10 Jul 2024 at 16:48, David Sankel via Boost
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
I've been using boost as an essential force multiplier of C++ since version 1.35 when Asio appeared, courtesy of Chris Kohlhoff. More recently in 2017, I needed an asynchronous websocket library for C++ and lo-and-behold, boost had one, courtesy of Vinnie Falco.
For those who have been around for a while, what keeps you here? Why do you stay engaged?
After finishing a contract in which I used Boost.Beast et.al. in production code, I took up an offer by the C++ Alliance to become a maintainer of it. A bit of a "Victor Kiam" moment, if you will. While working for the C++ Alliance I was also involved in the design and first cut of Boost.Json and had some input into Boost.Url, another two very keenly needed libraries sponsored by the C++ Alliance. I am no longer working for the C++ Alliance, but maintain a warm relationship with the organisation. I am currently using Boost.Cobalt in a financial trading software suite. I stay engaged because: - I don't want to have to switch languages - C++ is perfectly fine for me. - Boost polyfills all the essential functionality that the children running WG21 continue to refuse to provide. - It's convenient to have one library that provides (almost) every tool I need. My very great thanks to the original authors and contributors, and more recently to the C++ Alliance, which as far as I can see is the only major sponsor of Boost. Without this organisation's involvement, I believe the libraries would have been allowed to fall into disrepair a long time ago. I don't think I have met more than one team in the financial industry which uses C++ but which does not use Boost. On a separate note, I was deeply disappointed by your recent public outbursts, David. Sincerely, Richard Hodges A C++phile ex maintainer of Boost.Beast contributor to Boost.Json, Boost.Url Advisor to Boost.MySQL, Boost.Cobalt
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
For those who got involved in Boost within the last couple years, how did you hear about boost?
I heard about it from a university professor as a freshman undergraduate student in 2011. Since C++11 was just coming about, and the speed of updating toolchains in academia is slow so we were stuck in the C++03 days on old RHEL systems.
What attracted you to it?
I was studying aeronautical engineering so having pre-made libraries like Boost.Math, Boost.Multiprecision, and ODEint were useful to me. I could focus on the problem at hand rather than having to roll my own special functions, solvers, big numbers, constants, etc.
For those who have been around for a while, what keeps you here? Why do you stay engaged?
I started to get involved with development during the COVID lockdowns because like many people I found myself with quite a bit of extra free time. What hooked me was learning from and working with extremely competent programmers and mathematicians like John Maddock, Chris Kormanyos, and Nick Thompson. I was hired by the C++ Alliance at the beginning of 2023 and they have sponsored my development since. This allows me to work on new (https://github.com/cppalliance/decimal), and existing libraries (charconv, math, multiprecision, random, etc) in a way that I was never able to on a volunteer basis with a full time job. The community is large, knowledgeable, and helpful so I continue to enjoy working on Boost. I think it would be beneficial to the developer community for the Boost Foundation board members to also answer these questions. Frankly some even require introductions with their answers. There are members of the board like Peter, Glen, and Zach that are Titans of Boost, and those like Kristen who I had not heard of until her post about wanting to cut ties with the C++ Alliance. Having unknown members of the Boost Foundation runs counter to their mission statement whereby the board intends to achieve its mission by "fostering community engagement, [and] nurturing leaders..."[1]. Matt [1] https://sites.google.com/boost.org/boost-foundation/home
who have been around for a while, what keeps you here? Why do you stay engaged?
A good reason to stay engaged is to maintain
your own libraries. Then you might make
some new ones or review some new ones.
It grows over time.
But how do you get there?
In the beginning I found Boost to be a
place of C++ competence. This was in those
dark times when it seemed like C++ would
just fail (curiously enough with no replacement).
Sometime around the turn of the
century, I started using Boost for stuff like
noncopyable and iterator_facade, spirit,
math, gil, boost.python and more.
I'll never forget the symbiosis between Boost
and C++11, the standard that literally saved
the language itself, granting it maturity and
longevity. I think without Booost, C++ might
be a lot worse off, maybe never even gaining
traction.
For this reason alone and for many more
(such as finding like minds to play with)
I stay.
Let's party
Chris
On Wednesday, July 10, 2024 at 04:48:37 PM GMT+2, David Sankel via Boost
I had basically always known about Boost since I started C++ dev, which I only really started once I wanted to start using multithreading in some C code I was working on. My first actual experience with Boost wasn't really that great. I tried using one library, saw it took so long to compile I was *sure* that I was using the library completely incorrectly and then promptly put Boost down and then never used it again. Then I joined the cpplang slack. It turned out that I knew basically no real C++. Conversations with all the members there really helped me deepen and solidify my understanding. But what's more, I had always been attracted to library development. That's when I met this guy named Glen Fernandes. He would basically talk about how Boost had already solved all the problems in library development in cross-platform ways and that's when I really started to like Boost. What attracted me to Boost was that the libraries were incredibly high quality and had really cool solutions to problems in C++. Honestly, so much of the C++ world would be better if we had standardized something like Config and Core. Now I'm a staff engineer at the C++ Alliance and I love it. I get to work with some of the best C++ engineers in the world and I helped deliver a hash table faster than Abseil's implementation and there's even more exciting libraries in development as well. I enjoy honing my skills and Boost is a good proving ground. So I guess tl dr: it was entirely the mentorship aspect that pulled me in. - Christian
I got involved with Boost when Vinnie tapped me to run the non-technical side of the C++ Alliance. Being part of a project like Boost, which strives to make open source software available, is incredibly rewarding. The dedication of the community and the impact our work has on developers worldwide keep me motivated and passionate about what we do.
On Jul 10, 2024, at 7:48 AM, David Sankel via Boost
wrote: For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
For those who have been around for a while, what keeps you here? Why do you stay engaged?
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
This is a lovely thread, and I am hopeful that it will remain on-topic. On Wed, Jul 10, 2024 at 7:48 AM David Sankel via Boost < boost@lists.boost.org> wrote:
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
Interestingly, in 2001 when I wrote BearShare I tried out Boost.Asio as the underlying network stack. My C++ was average back then, and I was using Visual Studio 6. I got so flustered and turned off by the templates, the concepts, compile errors going for days, that I just gave up. This sadly left a bad taste in my mouth for Boost which carried on for several years. When I came to Ripple, it was already using Boost.Asio through "websocketpp." This websocket library was so frustrating for us that I explored writing a new websocket library using Boost.Asio. My C++ had gotten better and later I had access to more knowledgeable folks like Howard Hinnant and Peter Dimov who I learned quite a lot from. I got the idea to propose the library, renamed to Boost.Beast, which was subsequently accepted. I suppose the motivators for Boost for me are: 1. Boost can connect to the internet (unlike std). 2. Boost helps me target earlier versions of C++, expanding my potential audience. 3. The convenience and synergy from a release that is tested together and works together. For those who have been around for a while, what keeps you here? Why do you
stay engaged?
I love the experience of having users. Lasting happiness is only achieved in service to others; knowing that people out there benefit from my work, whether commercially or otherwise, brings me joy. Most C++ developers immediately recognize a great library when they use it, even if they themselves do not quite rise to the level of skill required to author one. A library is the equivalent of a work of art; I am happy to labor through all aspects of development such as perfecting an API, writing documentation, authoring tests, applying optimizations, creating benchmarks, promoting the library to encourage its use, and supporting its growing user community after it is published, as these skills are essential for being well-rounded and the producing the greatest good. Permissively licensed software is cheap. You write it once, at a fixed price (time). The potential gain is infinite, as the acquisition of each new user costs nothing. I stay engaged because of the emotional payoff at the end of a development cycle when users get their hands on my newly published stuff. Thanks
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
I first got to know Boost when I started with C++ in 2016, in a robotics environment (ROS used it). I always thought of it as "where you go to look when you need a good quality library". For me it was just some great software some unknown, unreachable people provided for free. I then got invited to the cpplang slack by a standards committee member. I wanted to do some more C++, something different to what I was doing at the time, as it wasn't very rewarding. I tried writing some language proposals, and decided that wasn't my thing - I'm more into writing libraries, tests and docs :) I've always worked in networking and knew a little bit of Asio. I saw libraries like JSON being developed, and thought "Python has many things we don't have, so I should write some of them". I happened to be familiar with MySQL, so I studied its protocol and wrote a simple Asio-based driver in my commute time (I profoundly regret today having chosen MySQL over Postgres, but that's a different story). I found the courage to share my code in the cpplang slack and Chris Mazakas and Richard Hodges convinced me to reach the ML and propose the library for Boost. Some months afterwards, the C++ Alliance started sponsoring my work. That has allowed me to develop features in the library I wouldn't have had the time to code otherwise.
For those who have been around for a while, what keeps you here? Why do you stay engaged?
There's brilliant people here, so I learn a lot. I also feel that having a library in Boost is a responsibility towards my users, so I try to be helpful. I also enjoy a lot when people ask questions (e.g. the #boost-asio channel) as it's pretty rewarding to share your knowledge back to the community (specially the one you've acquired here :)) Regards, Ruben.
On Sat, Jul 13, 2024 at 5:53 PM Vinnie Falco via Boost
On Wed, Jul 10, 2024 at 2:38 PM Ruben Perez via Boost
wrote: ...I profoundly regret today having chosen MySQL over Postgres... I agree, and an obvious solution presents itself :)
I also lament your choice ;) (as can be inferred from past posts on this ML) And I welcome the opportunity Vinnie presents about fixing that! FWIW. --DD
On Wed, Jul 10, 2024 at 2:38 PM Ruben Perez via Boost < boost@lists.boost.org> wrote:
...I profoundly regret today having chosen MySQL over Postgres... I agree, and an obvious solution presents itself :)
I also lament your choice ;) (as can be inferred from past posts on this ML) And I welcome the opportunity Vinnie presents about fixing that! FWIW. --DD
I've already been studying the postgres protocol, in preparation of what can happen next. Unsurprisingly, postgres' makes sense. https://github.com/boostorg/mysql/issues/298 for an example of what I'm talking about ;) I also remember someone (was it Mohammed?) on the cpplang slack playing with wrapping libpq and offering an Asio interface. How did that end up? Thanks, Ruben.
On Tue, Jul 16, 2024 at 1:23 PM Ruben Perez via Boost
I also remember someone (was it Mohammed?) on the cpplang slack playing with wrapping libpq and offering an Asio interface. How did that end up?
I believe you're referring to: https://github.com/ashtum/psql The goal was to create a small and easy-to-maintain wrapper around libpq to integrate smoothly with the C++ and Asio ecosystem. While it is mostly complete in terms of communication and asynchronous operations, it lacks the necessary infrastructure for mapping between database and standard/user-defined types. A Boost PostgreSQL library that implements the PostgreSQL protocol, similar to what you've done with Boost.MySQL, would be an excellent addition to Boost. I believe it would attract many users. Thanks, Mohammad.
I believe you're referring to: https://github.com/ashtum/psql The goal was to create a small and easy-to-maintain wrapper around libpq to integrate smoothly with the C++ and Asio ecosystem. While it is mostly complete in terms of communication and asynchronous operations, it lacks the necessary infrastructure for mapping between database and standard/user-defined types.
Yes! That's it. Actually, the mapping is one of the points I don't see any clearly after reading the protocol spec (and it looks like libpq doesn't solve it either, leaving you just a bunch of bytes/text to interpret). Do you have any ideas or any resources on how to approach the issue?
A Boost PostgreSQL library that implements the PostgreSQL protocol, similar to what you've done with Boost.MySQL, would be an excellent addition to Boost. I believe it would attract many users.
That's encouraging, thanks. Ruben.
On Tue, Jul 16, 2024 at 3:47 PM Ruben Perez
Yes! That's it. Actually, the mapping is one of the points I don't see any clearly after reading the protocol spec (and it looks like libpq doesn't solve it either, leaving you just a bunch of bytes/text to interpret). Do you have any ideas or any resources on how to approach the issue?
I found what is done in https://github.com/yandex/ozo inspiring. It
creates a compile-time map for standard types with fixed OIDs and a
runtime map for user-defined types, retrieving OID numbers from
PostgreSQL upon first use. Additionally, it exposes several type
traits for specialization, enabling the use of containers and wrapper
types for PostgreSQL types like:
template
On Tue, Jul 16, 2024 at 2:56 PM Mohammad Nejati [ashtum] via Boost
On Tue, Jul 16, 2024 at 3:47 PM Ruben Perez
wrote: Yes! That's it. Actually, the mapping is one of the points I don't see any clearly after reading the protocol spec (and it looks like libpq doesn't solve it either, leaving you just a bunch of bytes/text to interpret). Do you have any ideas or any resources on how to approach the issue?
I found what is done in https://github.com/yandex/ozo inspiring. It creates a compile-time map for standard types with fixed OIDs and a runtime map for user-defined types, retrieving OID numbers from PostgreSQL upon first use. Additionally, it exposes several type traits for specialization, enabling the use of containers and wrapper types for PostgreSQL types like
Interesting, thanks, I wasn't aware of it. I'll need to check it out.
I think I have something similar for the fixed compile-time OIDs in my
home-grown libpq wrapper.
Thanks to those, I can manipulate basic types easily for binding and
retrieval in a typesafe manner,
with runtime checks to validate actual and expected OIDs match.
In my use case, I do everything using the BINARY format for binding
and result-sets.
And I use the COPY protocol extensively for performance (also in
BINARY format), in both directions.
I'm no high-caliber C++ dev, but I'm sharing below an excerpt of what
I do, in case that's useful.
There's more, but this is not the time nor place.
For another interesting C++ libpq wrapper, also check
https://github.com/dmitigr/pgfe
Thanks, --DD
PS: I'd appreciate if you can advertise where you work I github, so I
can monitor it, please
namespace pq {
...
// "Strong-typedefs", to prevent implicit conversions
enum class Oid : uint32_t {};
enum class Row : uint32_t {};
enum class Col : uint32_t {};
inline constexpr Oid cInvalidOid{0};
...
static_assert(std::is_same_v
: OidTraits< Uuid {};
// Partial specialization for all enums
// Warning: Unsigned integer underlying types not supported by PostgreSQL
template <typename E> struct OidTraits<
E, std::enable_if_t
: OidTraits< std::underlying_type_t<E> {};
//============================================================================
template <typename T>
constexpr Oid oid_of() {
if constexpr (std::is_array_v<T>) {
static_assert(std::rank<T>::value == 1);
using elem_t = typename std::remove_all_extents<T>::type;
return OidTraits
The reason for implementing a pure MySQL client was that there's no good MySQL client library that has a permissive license like the BSL. libmysqlclient is GPL'd and is generally kind of terrible. Postgres doesn't really have this problem so there's not much of an onus to make a native Asio implementation or anything like that. Instead, this is just standard Asio where you have multiple execution contexts and you're communicating between them. - Christian
On Tue, Jul 16, 2024 at 5:56 AM Mohammad Nejati [ashtum] via Boost < boost@lists.boost.org> wrote:
I found what is done in https://github.com/yandex/ozo inspiring.
Well, not only are rumors of Boost's demise false but it seems we have lovingly returned to our grand tradition of thread hijacking :) Viva La Boost ! Thanks
On Wed, Jul 10, 2024 at 10:48 PM David Sankel via Boost
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
For those who have been around for a while, what keeps you here? Why do you stay engaged?
I like Boost for the same reason I like engineering professions: you are focussed on achieving the best technical solutions and not on personality or politics. This is more true of Boost than of the Standard Committee these days, which is why I think boost is a great place for libraries like asio and all its dependents. The amount of expertise we have within Boost is what keeps me engaged. Interesting problems are being discussed and I often learn a lot about issues I never considered (like how to implement a safe string for example, and why). I hope Boost stays focussed on excellent engineering.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
For those who have been around for a while, what keeps you here? Why do you stay engaged?
Great questions. I have an academic background in optimization and computational intelligence. During my studies, I quickly realized the immense potential of C++ for my work. I fell in love with the language for its combination of performance and the ability to abstract complex concepts. As I delved into C++, I soon discovered Boost. The quality of these libraries was outstanding, and I began incorporating various Boost libraries into my academic projects. Here are some I’ve used over time, in no particular order: Boost.Pool, Boost.StringAlgorithms, Boost.Spirit, Boost.DLL, Boost.MultiIndex, Boost.Container, Boost.Tribool, Boost.Graph, Boost.Asio, Boost.Beast, Boost.Coroutine, Boost.Integer, Boost.Multiprecision, Boost.ProgramOptions, Boost.Serialization, Boost.Uuid, Boost.Describe, Boost.Hana, Boost.Histogram, Boost.Interprocess, Boost.JSON, Boost.Nowide, Boost.Geometry, Boost.Process, Boost.Range, and Boost.Math. I remember https://theboostcpplibraries.com/, which was invaluable to me during this period. I used to recommend it to everyone. A few years later, I became a professor, teaching C++, among other subjects. Initially, we couldn’t use C++11 in our classes, so Boost was integral to our research projects. The synergy between Boost and the evolving C++11 standard was apparent. As C++11 gained traction, some recommended alternatives to Boost. But I remained loyal to Boost due to its superior quality. However, after nearly a decade in academia, I grew increasingly dissatisfied. Despite my achievements with C++ and Boost, the pressure to publish frequently led to an overemphasis on Python prototypes that always went nowhere but got papers published. To counter this, I began contributing to open-source C++ libraries in my spare time, focusing initially on scientific computing and optimization. Some of my libraries gained traction, which fueled my enthusiasm. During the COVID-19 pandemic, I had more time to contribute to the C++ ecosystem and was invited to the cpplang Slack. I was thrilled by the dynamic discussions on all things C++. Through this community, I learned about the C++ Alliance. I was surprised to find out at the time they were also funding this vibrant experience. In 2021, I joined the C++ Alliance. This was a breath of fresh air, allowing me to focus on meaningful work outside the constraints of academia. Collaborating with talented individuals within and outside the C++ Alliance was enriching. I could now concentrate on what I loved: contributing to the C++ ecosystem through Boost and standalone tools: a reality made possible by the C++ Alliance. Since then, I’ve maintained my libraries and assisted with existing ones. This involves the often-overlooked, thankless tasks vital to keeping libraries compatible with new compilers and bugs-free. As some move away from Boost for standalone projects, these libraries remain functional thanks to a few dedicated volunteers. Finding such qualified volunteers is rare and can't be taken for granted. Boost is notable to me for several reasons, many of which are tied to the community and my long-standing relationship with it: - Contributing to such an impactful project is incredibly rewarding. - The competence of the community members makes discussions engaging. - C++ is ideal for my projects, and Boost significantly enhances my productivity. I have no desire to switch languages. - Working with some of the best C++ engineers toward a common goal is fulfilling. - The cpplang Slack and the mailing list are excellent places for questions and discussions. - Giving back to the community, which has given me so much, feels right. I love coding, and there’s no better place for me than here. The C++ Alliance has made so much of this possible for me and the Boost community.
On Wed, Jul 10, 2024 at 4:48 PM David Sankel via Boost < boost@lists.boost.org> wrote:
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
For those who have been around for a while, what keeps you here? Why do you stay engaged?
Since I started with C++ in the early 2000s, I've found Boost to be an indispensable resource. Over the years, I've used a wide range of Boost libraries, particularly in areas like math and numerics, geometry, data structures, algorithms, metaprogramming, and networking, as well as utility tools like Optional and Variant. Lately, I've been keenly following the discussions about Boost's structure. Personally, I see value in exploring a more modular approach, managed by a package manager like Conan, which could enhance Boost's flexibility and accessibility. This vision and the latest innovations in Boost Unordered, such as the new Flat and Concurrent containers, led me to collaborate with the C++ Alliance. The ongoing support and sponsorship from the C++ Alliance have been crucial not just for maintaining existing libraries but also for developing new features that meet current needs. This support has been a cornerstone in ensuring that critical tools continue to be relevant and useful in an ever-changing tech environment. Finally, it's essential for us as a developer community to keep fostering a collaborative and continuously improving environment. Contributing to Boost is not just a way to give back to the community, but also an opportunity to ensure it remains a cutting-edge tool for C++ developers worldwide. I'm looking forward to continuing my involvement in this ecosystem and contributing to its growth and improvement in the coming years. Sincerely, Fernando. _______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
I began using Boost in 2018 because I needed a high-quality networking library as a base for creating a few network protocols required at my work. I started with Asio and was fascinated by the quality of its implementation and the improvements introduced with each release. I soon realized there were other useful libraries in Boost that I could use, such as Container, Bimap, Endian, and Lexical Cast. This need escalated when I took a job with a trading platform that required HTTP and WebSocket communication. For that project, I chose Beast, JSON, URL, and Redis (not in Boost at the time) as building blocks. I got more involved by joining the CppLang Slack and discussing some suggestions for the newly proposed Boost.Redis, as well as creating a few open-source synchronization mechanisms that Asio was lacking at the time (by asking tons of annoying questions about Asio's implementation details from Klemens). Through the CppLang Slack community, I learned about the C++ Alliance, joined in 2023, and became the maintainer of Boost.Beast while also helping with a few in-development libraries like http_proto and http_io.
For those who have been around for a while, what keeps you here? Why do you stay engaged?
I stay engaged because I appreciate the high-quality work and the
invaluable learning opportunities this community offers. Being part of
such a dedicated and knowledgeable group has been incredibly
rewarding, providing insights and experiences I haven't found
elsewhere.
On Thu, Jul 11, 2024 at 2:27 PM Fernando Pelliccioni via Boost
On Wed, Jul 10, 2024 at 4:48 PM David Sankel via Boost < boost@lists.boost.org> wrote:
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
For those who have been around for a while, what keeps you here? Why do you stay engaged?
Since I started with C++ in the early 2000s, I've found Boost to be an indispensable resource. Over the years, I've used a wide range of Boost libraries, particularly in areas like math and numerics, geometry, data structures, algorithms, metaprogramming, and networking, as well as utility tools like Optional and Variant.
Lately, I've been keenly following the discussions about Boost's structure. Personally, I see value in exploring a more modular approach, managed by a package manager like Conan, which could enhance Boost's flexibility and accessibility. This vision and the latest innovations in Boost Unordered, such as the new Flat and Concurrent containers, led me to collaborate with the C++ Alliance.
The ongoing support and sponsorship from the C++ Alliance have been crucial not just for maintaining existing libraries but also for developing new features that meet current needs. This support has been a cornerstone in ensuring that critical tools continue to be relevant and useful in an ever-changing tech environment.
Finally, it's essential for us as a developer community to keep fostering a collaborative and continuously improving environment. Contributing to Boost is not just a way to give back to the community, but also an opportunity to ensure it remains a cutting-edge tool for C++ developers worldwide.
I'm looking forward to continuing my involvement in this ecosystem and contributing to its growth and improvement in the coming years.
Sincerely, Fernando.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
On Thu, Jul 11, 2024 at 5:06 AM Mohammad Nejati [ashtum] via Boost < boost@lists.boost.org> wrote:
...I got more involved by joining the CppLang Slack...
I've been heads down in my libraries, and reading these stories just made me realize that an effective means of growing Boost has been hiding in plain sight! Folks come to the Official C++ Language Slack Workspace ( https://cpp.al/slack) to engage in vibrant technical discussions with other C++ experts and are more likely to become interested in participating in Boost. If we could move past the unfortunate difference of opinions of our current political climate and work together, we could probably leverage this pipeline to connect more of the people who would be valuable contributors to the project. Thanks
Am 10.07.24 um 16:47 schrieb David Sankel via Boost:
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it? Boost was used at the place I worked at when I was a student. I quickly came to love the idea of RAII which was implemented in Boost (mainly smart pointers combined with Boost.Move). C++11 was just around the corner with experimental support by a few compilers but I had to stick to C++98 for work. Boost.Move and generally many Boost constructs provided many benefits of C++11 in C++98. Digging through the headers (source code is the best documentation ;-) ) also helped to improve my C++-fu.
Later I discovered an intricate bug in Boost.Serialization which severely affected a work project. Finding what went wrong and why, how to reproduce and fix it was quite a fun challenge (multiple shared objects). Next I introduced Boost and especially Boost.Locale for UTF8-support of (especially) paths on Windows in other projects. By that I found the not-yet-Boost library Nowide and used the "standalone" version of it. Later I pushed to finally include it in Boost and became a maintainer of that and later Boost.Locale. This was also in wake of "Boost is so huge" arguments which I could counter with "all we need is in Boost already". So I loved to see Boost as a complementary standard library especially until broad support of C++11. Learning quickly that "untested code is broken" I did a lot of work on CI also in the context of Boost. What kept me here is the continuous learning opportunity by conversing with the other Boost developers. Alex PS: Also not affiliated with the C++ Alliance
I've heard about Boost during my years in college. I started trying
out different libraries to see what they do, and how they work. Boost
quickly became my go-to source of research of advanced C++. Although,
at that point it has also been my main source of knowledge of
essential C++ idioms.
Some time later I found out about build systems (as before that I was
either using IDEs or compilers directly). I guess, due to the
simplicity of acquiring them, the first build systems I encountered
were CMake and Boost.Build. Although technically "Modern CMake" was
already around, it was only getting traction. Thus, the immense
difference in expressiveness between old CMake and Boost.Build made
the latter the obviously superior choice. I still maintain that b2 (as
it is called now) is fundamentally better than even Modern CMake,
which, as I later found out, was explicitly started to replicate some
of the features of Boost.Build.
My first contribution to Boost was actually several improvements to
b2. And a few more years later Vinnie Falco was looking for someone to
replace him as the maintainer of Boost.JSON. I decided to apply, and
have been employed by the C++ Alliance since then. I am extremely
grateful for this opportunity, as maintaining an open source library
is actually a pretty fun job which doesn't come by often. I still do
some Boost stuff not "on the clock", for example I recently managed a
library review.
So, to summarise, Boost was very useful for me in college, and then at
work (it was a company policy to prefer Boost to custom solutions). I
am still using Boost for my personal stuff, and I don't see myself
switching to standard library components, just for the sake of them
being in the standard. And while the size of my involvement in Boost
is the result of me being employed to maintain a Boost library, even
if we cut ties with the Alliance, I still see myself participating in
the community and making code contributions.
ср, 10 июл. 2024 г. в 17:48, David Sankel via Boost
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
For those who have been around for a while, what keeps you here? Why do you stay engaged?
I'm pretty new to Boost, and I'm mostly a lurker on the mailing list. I
originally heard of Boost when I was looking for a JSON library for a
personal project a few years ago, and Boost.Json seemed like it made the
most intuitive sense as a user. Later, since working with C++
professionally, I've been using Boost lightly at my day job over the past
few years. Things like `boost::intrusive::list` or
`boost::container::deque`, containers that allow me to do my work better.
After working for a bit, I realized I didn't like the idea of all my hard
work being owned by another entity, not freely available. Especially not
available to myself once I'm no longer at the company, even though I worked
hard writing the code. I thought it would feel good to contribute to the
community on top of my regular day job. I saw a Reddit thread where someone
was complaining about Boost documentation, and I had thought the same thing
before too. Boost documentation can be hard to work with, much harder than
cppreference which I find very easy to use. I wanted to help make Boost
docs better.
I had used Boost.Json, and I knew the name "Vinnie Falco" from him being
Boost.Json's author and from his comments on that same Reddit thread. So I
cold-emailed Vinnie asking for direction on how I could get started
contributing.
Fast-forward to now. I was since hired to work part-time with the C++
Alliance, where I've been mostly helping with Boost.Unordered optimizations
and user experience. I've been given the chance to attend a few
conferences, and even had the amazing opportunity to speak in a full slot
at C++Now 2024 just a few months ago.
I came to Boost because I wanted to contribute to the community, and I have
stayed here because of the mentorship I've received by those in the Boost
community and in the C++ Alliance. I particularly want to mention Joaquin,
who has helped me grow as a developer. I appreciate how meticulous he is in
his analysis of my code changes, without any sense of condescension or
derision.
So far I like Boost. I see myself sticking around. And maybe contributing
to the mailing list more often... but no promises.
On Wed, 10 Jul 2024 at 09:48, David Sankel via Boost
For those who got involved in Boost within the last couple years, how did you hear about boost? What attracted you to it?
For those who have been around for a while, what keeps you here? Why do you stay engaged?
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (16)
-
Alan de Freitas
-
Alexander Grund
-
Braden Ganetsky
-
Christian Mazakas
-
Christopher Kormanyos
-
David Sankel
-
Dominique Devienne
-
Fernando Pelliccioni
-
Klemens Morgenstern
-
Louis Tatta
-
Matt Borland
-
Mohammad Nejati [ashtum]
-
Richard Hodges
-
Ruben Perez
-
Vinnie Falco
-
Дмитрий Архипов