Rosetta has gone through a number of different major versions over the years.
Originally Rosetta was written in Fortran and focused primarily on protein folding (e.g. abinitio). This would be (retrospectively) Rosetta 1.
The Fortran code was then auto-converted into C++ code, and then subsequently expanded into other areas, like protein design and docking. This is Rosetta++ or Rosetta 2. (These releases have version numbers like 2.1 and 2.3.1)
At some point it was recognized that the Fortran legacy of Rosetta++ was a hindrance to further development. A project was started to clean up the Rosetta codebase, reorganizing it with proper C++/object oriented design. The internal name for this project was originally “minirosetta”, but that’s a misnomer, as it has since grown to be much, much bigger than Rosetta++ ever was. The official name for this version is Rosetta 3. (These releases have version numbers like 3.4 and 3.5, as well as the weekly releases. PyRosetta, FoldIt, and the current versions of Rosetta@home are all based off the Rosetta 3 codebase.)
No development on Rosetta++ has happened in about 4 years, and almost all usage has switched to Rosetta 3. (There’s a few protocols in Rosetta++ which have not been converted to Rosetta 3, but that’s primarily because they’ve been superseded, or are only used rarely if at all.) Use Rosetta 3 unless you know you absolutely need Rosetta++. There’s really no reason to use Rosetta++ anymore, unless you want to recapitulate old results or need one of those few non-transitioned protocols.