Looking at the response to the poll and comments to-date the results are interesting. The first observation is that there is not a question on why those that have adopted LV classes use them. Between Aug 2006 and Aug 2007, have you used LabVIEW classes?80% of the respondants have tried classes in some form.If you have NOT used LabVIEW classes, why?Even though 20% of the respondants said they have not used LV classes 54% still gave reasons why they have not used classes.If grouping these responses by reasons why not in similar categories you get the following breakdown of the 54%:
Training issues (training or learning) 25%
Application issues (stability, upgrading, targets) 17%
Other (by-ref, boycot, or other) 12%
Do you plan significant development using LV classes within the next year?Even with the issues described over 60% still want to use classes in the near future.Analysis of the results.Between Aug 2006 and Aug 2007, have you used LabVIEW classes?Question: Do the respondants represent a normal population of the LabVIEW community? Or another way to approach this, has 80% of all LabVIEW users throughout the world tried LabVIEW classes?Simple answer to this question is no. Question: Do the respondants represent a normal population within the certified develeoper community? Maybe although this is still a little high. If you have NOT used LabVIEW classes, why?Of the 54% that gave reasons why not it appears that 42% would use classes as implemented if they knew how to use them and felt that LabVIEW classes were mature enough. Do you plan significant development using LV classes within the next year?There is still a strong desire in this population to support LV classes but is unclear based on these results whether the non-certified user would use or understand these tools.Personally I am begining to understand the class mentality from an abstract perspective (i.e. a cow is an instance of a four legged, mamal). The basic concepts of utilizing private & public functions, dynamic dispatching, overrides, inhertance, etc. are powerful tools that can support re-use, data hiding, expandability, etc. These concepts, if not applied correctly, can also result in project overruns, debugging errors, confusion, etc. I personally have not found enough examples or material specific to the implementation of LV classes to significantly embrace this architecture in applications other then personal experimental purposes. A tool in the tool box should speed the development process or allow the ability to accomplish a task that otherwise could not be done. I have yet to find either of these conditions met by LV classes.It appears in order for native LV classes to mature the following is needed:
NI needs to continue to support bug fixes & new features (which appears they are doing)
New Training courses, added content to existing courses (maybe the advanced LabVIEW course) and example code is needed similar to the State Machine, Producer/Consumer course material used for the CLD.