G#, NI-GDS and OpenGDS are 3 different IDE add-ons to LabVIEW which gives you more features when creating and handling classes.
Then we have different class flavors:
G# has their class type (by reference) that has lots of extra supporting features from the beginning. It also inherits a G# base class that all g# classes inherits from.
NI-GDS, and OpenGDS (OpenGDS is the open source version and maintained version), have support for 3 class flavors, the standard by-value class that comes with LabVIEW, and 2 by-reference types. GOOP3 and GOOP4.
The GOOP4 was created when NI introduced DVRs, and is the most common class flavors people use when they need a by-reference class.
GOOP4 is a light-weight class that you add design pattern to when you need more features, such as debugging, class-attribute, persistent object.
A simple GOOP4 class don't need and additional support libraries installed like GOOP3 and G# classes need.
The new version of OpenGDS (LV2020) also support the native interface support.
If you use LV2020, you can download the beta version here: http://opengds.github.io/