
C++ for C Programmers: part 1 - janvdberg
https://ds9a.nl/articles/posts/c++-1/
======
mr337
I have recently used C++ in a project to get some performance increase from
python code base (computation geometry/gis).

I have been very surprised how quickly I got up and running. Modern C++ had
come a long way from what I remember a ways back.

~~~
_diyu
I tried to rewrite my node backend in C++ but I got stuck at the package
management part. When I learned Node I was able to install NPM and run “npm i
-P uws” and was up and running quickly. Reading through about 5 WebSocket C++
lib installation instructions and still not making any progress was enough to
make me wonder if my time would be better spent paying for a faster and/or
bigger server cluster and just keeping node.

~~~
gaius
Packages are not really a thing in C++, partly because there are so many
different environments and compilers anyway, and partly because C++ apps
aren’t really made by stitching together hundreds or thousands of tiny
packages like in Node.

On Windows you might use NuGet, on Linux you might use whatever the native
package format is, but you would thinking fewer, bigger libraries rather than
what you’re used to.

If you are looking for REST stuff try Casablanca, it’s on Github or in the
repo for Ubuntu.

~~~
pjmlp
Vcpkg is becoming the way to go for those that don't mind compiling
everything, otherwise NuGet as usual.

~~~
andrewmcwatters
Vcpkg has been really helpful for me, however I can't recommend its usage in
day-to-day work considering it compiles things differently from vanilla
releases.

It was a rather deceptive aspect of its usage that wasn't well advertised.
Compilation units should be functionally equivalent to releases directly from
vendors.

------
ahubert
author here, comments are welcome btw!

~~~
colanderman
I don't know what you have planned for future installments, but I would make
sure to emphasize that C++ more-or-less simply codifies common practice in C.
E.g. how std::vector just codifies the practice of dynamically sized arrays
using realloc, and iterators just codify and generalize the use of pointers as
indices. I was not a C++ convert until I realized this.

~~~
ahubert
hi colanderman, that is exactly the plan! I have a section on classes already
done as something that most C projects eventually do by hand (ie, bunch of
functions that accept a pointer to a struct as first parameter, which is
actually "this"). You can even extend that into inheritance where you see most
C based GUI toolkits emulating classes in all kinds of ways. Even the Linux
kernel has tricks like this. Thanks for the tips!

~~~
pjmlp
Regarding the standard library you might also give a brief explanation about
bounds checking in debug builds for example.

