G#

cancel
Showing results for 
Search instead for 
Did you mean: 

GOOP vs G#.. What's the difference?

I would like to know as I'm quite experienced with GOOP (Sybio & NI-GOOP), but this G# seems to be new to me... If there is any document which compares these two by-reference model, it would be great. 

Best,

Ajay.

0 Kudos
Message 1 of 6
(8,393 Views)

Hi,

I don't think it exists any document, but I can say that both GOOP4 and G# are both completely LabVIEW based, both are based upon LabVIEW classes with a DVR to an cluster to implement reference based OO. Since I have a background developing both GOOP2 and partly GOOP3, the intension with G# is that is should be very similar to GOOP, but take advantage of the new features that was introduced in LV2009. You can say that referenced based GOOP splitted into two paths after GOOP3, one branch is G#, the other is GOOP4. GOOP3 was originally developed by Endevo which is both my and GOOP4 creator Mikael H former employer. But when Endevo was sold to Symbio, we went separate ways.

There are a few differences:

  • All G# classes inherits from a common ancestor class called G#_Object, GOOP4 does not. In the G#Object class there is common methods like test if a reference is valid, get class names etc. Compare with C# where all classes inherits a class called "Object".
  • G# comes with a very powerful event based debugger. I don't think GOOP4 has this.
  • G# has a optional External Create Process functionallity in order to keep references alive if you have multiple top-level VIs.
  • G# has a garbage collector
  • GOOP4 has built in UML Editor
  • GOOP4 is less code

But you ask this question in a G# forum and since I am the creator of G#, I may not be totally objective, but since GOOP4 is nowdays owned by NI, and I do think GOOP4 creator Mikael H is still active in the development and he is one of the most skilled LabVIEW developers in the world, you can be very sure that GOOP4 will continue to live and be supported as well. Whatever choice you make,  you get some well tested and well used object-oriented code. Actually G# and GOOP4 can coexist in the same project, but can not inherit from each other.

Best regards,

Mattias Ericsson

AddQ

Message 2 of 6
(7,493 Views)

To put it very short, GOOP functions similar to C++, G# similar to C# (by design).

Or as a pun, we're sharp and they're goop.

Seriously though, the G# concept has a slight overhead due to garbage collection (generally negligable) and allows some very nice general solutions due to all objects inheriting G#Object.

/Y

G# - Award winning reference based OOP for LV, for free! ADDQ VIPM Now on GitHub
"Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
Certified-LabVIEW-Developer
Message 3 of 6
(7,493 Views)

That looks clean Mattias_Ericsson...

Kudos to @Yamaeda's fun mixed answer...

I see that G# is free now and I knew Symbio was paid one... In such case, is this G# will be chargable anytime? 

Also, as GOOP merged with NI, any plans G# will also do?

0 Kudos
Message 4 of 6
(7,493 Views)

G# is free, NI GDS and OpenGDS are both free. It comes down to your taste and what you expect from your tools.

Message 5 of 6
(7,493 Views)

G# has always been, and shall continue to be, free. That's one of the reasons why it's Open Source. It's also a way to spread our name and show what we can do. G# is a tool we use ourselves, some more than others (depending on projects).

If NI plans to buy us they sure hasn't told us yet.

/Y

G# - Award winning reference based OOP for LV, for free! ADDQ VIPM Now on GitHub
"Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
Certified-LabVIEW-Developer
Message 6 of 6
(7,493 Views)