Migrating to C++ From Other Languages

Alain Galvan
10 min readAug 29, 2020

--

How do I get started writing C++ projects? I have experience with JavaScript, Go, Rust, Ruby, etc. so what are the package managers, build tools, and libraries?

C++ is a systems level programming language designed as an extension to C, introducing classes, generics, object initializers, destructors and by extension Resource Allocation is Initialization (RAII), and much more. The language was designed by Dr. Bjorne Strustrup (@stroustrup) in 1985 at Bell Labs in Holmdel, New Jersey.

Source: A New Urbanist Developer Gives Saarinen a Reboot by Bloomberg

Since then it’s been the de-facto language for high performance computing, games, film rendering, simulations, scientific computing, the underlying language for machine learning libraries, native applications for Windows, MacOS/iOS (with Objective C++), Linux, game consoles, web browsers, databases, and so much more.

With so much support across the industry, it’s a shame the C++ ecosystem is much more difficult to work with than other languages such as Rust, JavaScript, Python, Go, etc.

There’s a variety of different IDEs, each with their own project files such as:

  • .sln
  • .xcworkspace
  • makefile, though this is more of a build script.

There’s a variety of 🔨 build systems that can abstract IDEs for multi-platform development such as:

There’s no official 📦 package manager, rather there are a variety of different package managers and intermediary solutions. These include:

It’s also common for projects to use precompiled binaries for libraries (.lib, .so, or .a) as well, since that saves them the trouble of recompiling, increasing build speeds at the cost of tying your project to the compiler version your library was built for.

--

--

Alain Galvan

https://Alain.xyz | Graphics Software Engineer @ AMD, Previously @ Marmoset.co. Guest lecturer talking about 🛆 Computer Graphics, ✍ tech author.