Jump to content
Gary Rubin

Ugly, Ugly, Ugly

Recommended Posts

I've downloaded the LINX LabVIEW interface for Ardiuno and am now doing my first LabVIEW programming after about 5 years of exclusively coding in MATLAB.

Wow, is it ugly!  And how did all those sequence structures get in there?!  :o

 

EDIT: I'm talking about my own code, of course.  The LINX VIs look just fine.

Edited by Gary Rubin

Share this post


Link to post
Share on other sites

There are way too many things wrong with LINX for me to use it.  I made a post on their forums and the response was more or less that nothing is going to change.

 

https://www.labviewhacker.com/forums/viewtopic.php?f=12&t=55

 

I am so glad to see that I am not the only one who thinks it is ugly.

 

Who uses strict types in a driver level code?  And who uses silver controls?  And who hides data in a cluster by not showing it?  Seriously I found myself changing all of their code just trying to use it.  

 

I was digging into the low level VIs and I saw them also constantly making their own subVI to do a function that already exists nativly, or in OpenG.  Building relative paths, making a zip out of a directory, create folder if none exist, Get LabVIEW Data folder, Get LabVIEW Directory, Get File Extension, Get Relative Path, Strip Path to EXE, relative path to array of string, etc.  These are just a few subVIs that are remade, instead of using the native function, or the OpenG function.  If you look at some of the LAVA tools we have they replace even more functions, but I figured I wouldn't include those since they are less popular.

 

In the end I am staying away from LINX.  I don't really need it, LIFA does what I need when it comes to Arduinos, and the other supported hardware I haven't needed yet.  I was just looking to extend the LIFA features and thought I would start with LINX instead.  For me it was better starting with LIFA and adding the functions I wanted.

Share this post


Link to post
Share on other sites
Who uses strict types in a driver level code?  

 

Me! I pretty much use strict for everything except GUI typedefs/controls that I want to customise a little bit. I suppose I use strict over normal typedef just out of habit.

 

And who uses silver controls?

 

What silver controls? I don't see any silver controls on the pallette. I think you are mistaken, silver controls do not exist. System, Modern and Classic are all I can see on mine  :P

Share this post


Link to post
Share on other sites

What's wrong with the silver palette? From what I've seen, it makes UI's look a bit more slick and modern, are there more technical reasons for the dislike from more experienced users than I?

Share this post


Link to post
Share on other sites

What's wrong with the silver palette? From what I've seen, it makes UI's look a bit more slick and modern, are there more technical reasons for the dislike from more experienced users than I?

 

All my dislikes are purely aesthetic, I think they look quite cartoony and waste way too much space. I pretty much use System controls exlusively for GUI front panels.

  • Like 1

Share this post


Link to post
Share on other sites

What's wrong with the silver palette? From what I've seen, it makes UI's look a bit more slick and modern, are there more technical reasons for the dislike from more experienced users than I?

I have used silver controls, but I have two issues with using them.

 

There isn't a silver control equivalent for every classic, or modern control.  So UIs will generally need a mixture of mostly silver controls, and then a modern, classic, or system, because that control isn't available in the silver palette.  

 

Secondly if silver controls are made for the UI then why would they be used for a driver level piece of code that we should assume no user will ever see?  If it is for the UI, then why use it in a program that has no UI?  Silver Clusters, and Arrays take up a lot of space on the front panel especially when you have arrays of clusters of arrays etc.  Again for a driver level piece of code where we really only care about the inputs and outputs as data, not as they are seen this is a waste.

 

As for strict types.  In the past 2 years I have made 2 strict type defs, in the dozen of applications I've made.  For me it restricts the things I can do, and again unless it is for a UI why do that?

Share this post


Link to post
Share on other sites

I was posting on NI's forums today and linked to the LIFA page.  On their main page they link to LINX saying it includes all the features of LIFA with a bunch more.  I certainly wouldn't recommend it.

 

https://decibel.ni.com/content/groups/labview-interface-for-arduino

Share this post


Link to post
Share on other sites

So far LINX works and at this point, that's really all I care about from my middleware.

If I start trying to make it do things that outside its current scope, then I might care about the LINX VI architecture and design.  But isn't the whole reason for downloading such a library is so that I don't have to worry about such things?.

Share this post


Link to post
Share on other sites

But isn't the whole reason for downloading such a library is so that I don't have to worry about such things?.

Along the same line of thought, why should source code need to be well documented, it will just go into an EXE where the user doesn't see it anyway.

Share this post


Link to post
Share on other sites

Along the same line of thought, why should source code need to be well documented, it will just go into an EXE where the user doesn't see it anyway.

From a user standpoint, it doesn't.

 

If user experience isn't affected, do you care if MS Word source code is well documented?  Or even well-written? 

 

Unless you need to modify or support code, I don't see why in-code documentation matters.

Share this post


Link to post
Share on other sites

In my argument, we are developers, not users.  Style guides exist for a reason, and not following them things more difficult for developers.  Something about that code bothers me way more than it should.  If I ever need to use it I will surely spend making my own copy and fixing it.

Share this post


Link to post
Share on other sites

At this point (and this may change), I'm looking at LINX as  just a set of driver functions, much like a dll.  I don't really care what's going on in the middle - all I know is that I make a function call and get the proper response.  

 

If I get to the point that I'm writing code to run on the Arduino and using LINX to talk to that code, my opinion may change.  Right now, I'm more than happy thinking of it as a black box.

 

EDIT: I've used plenty of non-NI acquisition hardware for which I've written LabVIEW wrappers around the vendor's dll functions.   I see the Arduino/LINX combination the same as those hardware/dll combinations.  That may be why you and I see this differently - I'm used to having black box functions sitting between me and the hardware, so I didn't even look into the LINX VIs.

Edited by Gary Rubin

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.