
Awesome C++ – find the best libraries - stanislavb
https://cpp.libhunt.com/
======
babuskov
The best?

Here's the problem I had with my previous game project. JSON writing and
parsing. I type "JSON" into your search box and get 20 libraries without much
difference explained. 17 of those match my license requirements. And then I
have to try each one to compare.

You might say that I could just pick one at random and see if it works... I
did exactly that for my previous project. 11 months into development when I
had huge chunks of code depending on it, I discovered a subtle bug that only
showed up on big JSON files (over 2MB) and only when the library was compiled
with MSVC. The author doesn't want to debug it because he doesn't use Windows.
I wanted to use use MSVC because of Steam API. So I had to either rewrite the
code to use another library or give up on SteamAPI. I picked the latter.

Dumping a list of 20 libraries to solve a single problem isn't "curating".

I suggest you remove "the best" from the title as this site doesn't solve that
problem.

~~~
xixi77
I feel you, but one problem is that it is often hard to rank libraries best to
worst. 20 may be a bit much, but still -- one library may be the most popular,
another fastest, another correctly handles this one specific unusual case,
another works well with large objects, another has more convenient interface
for your case, etc.

What would be ideal is if there was useful information about such things
available right on the aggregator site -- Amazon style reviews wouldn't be too
useful here tbh, ideally one would like to see multiple comparisons from
people like you who tried or at least looked at a few of them.

~~~
babuskov
Yes! This is exactly what I expected from the website.

~~~
lttlrck
I use github to figure this out by perusing the issues and history.

------
Jdam
For me, libhunt is just scam. Take Github "Awesome lists", add sorting and
ads, profit with other peoples' work.

[https://github.com/fffaraz/awesome-cpp](https://github.com/fffaraz/awesome-
cpp)

~~~
swah
But thats what the author wanted :P

[https://github.com/fffaraz/awesome-
cpp/blob/master/LICENSE](https://github.com/fffaraz/awesome-
cpp/blob/master/LICENSE)

    
    
        Copyright (C) 2015 Faraz Fallahi <fffaraz@gmail.com>
    
        THE LIST IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES.
    
        TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION:
    
        1. You just DO WHAT YOU WANT TO.

~~~
fffaraz
I thought nobody will ever open the license file :))

------
restalis
The classification can be done a little better, maybe a tree-view with
available branches where it makes sense to sub-classify. The project seems to
be a good (useful) thing otherwise.

------
ausjke
Looks good to me. Now I want to find an "Awesome C" list somewhere too, if
they exist.

~~~
w8rbt
This is mostly a C library list. OpenSSL, LibreSSL, etc. are all pure C (not
C++).

------
turrini
Fantastic work!

------
zyngaro
I find it hard to justify starting a new projet using C++ today when there is
languages like Rust, swift and golang to a lesser extent. C++ was the only
viable option for a compiled, fast and scalable language. Java has replaced
C++ on the server/backend side for years and the same thing is going to happen
on the Desktop/mobile in the coming years as the other new language offerings
start to gain momentum.

~~~
AlexeyBrin
> I find it hard to justify starting a new projet using C++ today when there
> is languages like Rust, swift and golang to a lesser extent.

A simple reason, for Swift and Rust at least, if you want that your code from
today to work without changes in 10 years from now you will use C++.

~~~
_yosefk
I'm not sure C++ is more stable than Rust. It's pretty stable but it does
introduce breaking changes and code written 10 years ago will not compile as
C++11 without changes. Of course if you need to port C++ code across
platforms, which can easily happen if code is to survive a decade, then even
if the built-in type sizes don't change, you'll have to deal with things like
there being no standard build system for C++, no standard interfaces for most
of the functionality found in an OS, etc.

Overall, while C++ indeed is fairly stable, I wouldn't bet on C++ code to be
easier to drag into the future than code in those other languages (of course I
wouldn't easily bet the other way, either; it's hard to know in advance with
these things which will bite you the hardest.)

~~~
AlexeyBrin
Personally I never seen a C++03 program that doesn't compile in C++11/14.

Obviously, if you are talking about C++ code written before C++ was
standardized, like in the 90's, you are probably right.

~~~
_yosefk
I've seen and ported such programs. I no longer remember what the problems
were, but I think some of them had to do with array initializers - C++11 seems
to have become stricter wrt implicit casts of values used to initialize arrays
(meaning that more casts need to become implicit.)

Perhaps it's a compiler issue, not a language issue; my only point is that the
issue exists (and I'm not saying it was that terrible - I recommend everyone
to upgrade to C++11 - just that code will not compile unchanged.)

Sister comments say that they have old C++ code that compiles just fine. Of
course such code exists, I'm just saying that not all code is like that; I bet
you can get there with Rust or some other reasonably stable new language _if
you program conservatively enough._ Also a big question is what platform your
code runs on; if you've targeted gcc since forever and you don't use -Werror,
then your code and your Makefiles will be very stable relatively to having to
port to VS - even if you're not really targeting standard C++ but the dialect
GNU C++. Different C++ compilers, build environments and platform libraries
are very different, and it seems a safe bet that newer languages will do a
better job of minimizing differences between implementations (or keeping their
number small.)

Porting C++ code compiling fine under g++ to clang, for instance, is a metric
ton of work (and this one I gladly wasn't involved in but I've seen others do
it; again, if your C++ code ports just fine, more power to you.) And g++ and
clang are much closer to each other than the average pair of C++ compilers.

