Jump to content
Daklu

Observations: Microsoft's Visual Programming Language compared to Labview

Recommended Posts

Very interesting and nice to get out of our LabVIEW microcosm for a change.

Looking forward to your followup posts...

Share this post


Link to post
Share on other sites

Heretic! Burn him! ;)

Seriously though, competition is a good thing. If the MS product can nudge NI to implement some IDE improvements or accelerate the transition of LV from nitch language to a more widely accepted and available (read: lower barriers to entry) language, then that is good for all of us.

I wonder how this compares to NI Mindstorms environment which uses and MDI interface. Obviously that is designed for novices and children but there seems to be some similarities. Also, look at their web builder IDE for another view at dataflow language IDEs.

Share this post


Link to post
Share on other sites

Thanks for sharing the deep dive, Daklu. I'm sure this review will be helpful for any robotics designer considering a graphical approach to programming. I know first hand that a roboticist has to have at minimum a working knowledge of mechanical engineering, electrical engineering, computer science / engineering and controls engineering. So a graphical programming language (or visual programming language, depending on who you're asking) can be a life-saver in terms of building and deploying sophisticated code.

It was not too long ago that NI was developing our first "flavor" of LabVIEW - LabVIEW for Robotics. I considered myself privileged to be a part of that product launch. I did a lot of blogging during that time to help seed the product and gather market research and feedback. The blog is retired, but your post reminded me of a post I did when Microsoft initially launched MSRDS (and coined "VPL").

http://labviewrobotics.wordpress.com/2010/05/20/microsoft-ups-the-ante-in-the-robotics-market-makes-msrds-free/

And you'll see, I totally agree with the notion of some healthy competition. I've since moved on from the robotics role, so I don't have much say in the product direction today, but I will always <heart> robots.

Share this post


Link to post
Share on other sites

I wonder how this compares to NI Mindstorms environment which uses and MDI interface.

I don't like developing in the Mindstorms environment. It's kind of buggy and I find it hard to do anything moderately complex using the Mindstorms language. My Mindstorms kit sits around doing nothing because I dislike the environment so much and I haven't got around to setting up a better one.

I don't think Mindstorms and VPL are directly comparable. Mindstorms does use an MDI IDE, by it's really limited in what you can do with it. Given that it's designed for kids that's perfectly understandable. More importantly, Mindstorms is a code editor and compiler. If I remember correctly there is almost no debugging capabilities. Code execution occurs on the brick, not the pc. With VPL the code executes on the PC. The set of requirements is entirely different.

Also, look at their web builder IDE for another view at dataflow language IDEs.

It's been on my to do list for... 3 years or so?

I will always <heart> robots.

Robotics is a huge playground for anyone who likes to tinker. How can anyone not <heart> robots? :D

VPL started as a tool for roboticists, but I'm actually looking at it as more of a general programming tool. I've seen posts indicating people are using it to address concurrent programming issues in other domains. The more I learn about VPL the more... interesting... it becomes.

Share this post


Link to post
Share on other sites

We had first encountered this way back in 2007. It's good to see that MS did not abandon this project.

Yeah, MS has a habit of jumping into a market for a couple years then abruptly jumping out. (Home networking products and Zune come to mind.) From a business perspective cutting deadwood is good, but as a consumer it can be frustrating.

I've installed Robotic Studio several times over the years, but this is the first time I've actually been able to dig into enough to understand it. I don't believe MS intends to position it as a direct competitor to Labview, but I do think it has long term implications on Labview's future. I'm thinking MS developed Robotics Studio as a platform designed to help flesh out the underlying frameworks, DSS and CRR.

Share this post


Link to post
Share on other sites

Thank you for taking the time to do this and sharing you thoughts. I look forward to more observations.

Share this post


Link to post
Share on other sites
Yeah, MS has a habit of jumping into a market for a couple years then abruptly jumping out. (Home networking products and Zune come to mind.)

Although I worked on the team that designed and built the EOL testers for the Zune family, I have no internal knowledge on this - this is purely my own speculation: I like to think that MS "did" the Zune for a number of reasons, not only to try to make $ in that product domain. My gut feel is that a lot of what they learned during Zune has gone into the Windows phone, and part of me beleives that the Zune was, at least in part, a precursor to the phone by design.

  • Like 2

Share this post


Link to post
Share on other sites

[...] My Mindstorms kit sits around doing nothing because I dislike the environment so much and I haven't got around to setting up a better one. [...]

Amen.

Share this post


Link to post
Share on other sites

I have no internal knowledge on this...

I do. I actually worked on the Zune team from the time the Zune 30 was released up through the Zune HD. (I was responsible for testing the capacitive touch technologies.) I can't say what the army of MS vice presidents were talking about behind closed doors, but I can share my thoughts as a rank and file employee.

My gut feel is that a lot of what they learned during Zune has gone into the Windows phone, and part of me beleives that the Zune was, at least in part, a precursor to the phone by design.

Yes, Windows Phone 7 does include a lot of what was learned during Zune. No, it was not a precursor to phone by design. Zune was conceived and launched before the iPhone revolution. Windows phone had been fairly successful sticking with the interface it had and there was no reason to change it.

The Zune hardware and Zune Market were designed to compete with the iPods and iTunes that existed at the time. In that respect I think they were successful. In my admittedly biased opinion, Zune was better than iPods and iTunes in almost every way. The hardware was cheaper, offered more storage space, had bigger and better screens, and (imo) was more intuitive to use. It could play video, supported wifi, and had an fm radio. Zune software was way more visually interesting than iTunes, even if it had a smaller music library at the start. The Zune market also offered subscriptions long before iTunes did. (I'm not even sure if iTunes offers them yet.)

Why did Zune fail as a hardware platform? I believe unfortunate timing and poor marketing are primarily at fault. Marketing tried to attract the edgy/alternative crowd and used non-standard channels for getting the message out. That's not a bad thing; targeting early adopters is a good strategy. But the message they presented was, to be blunt, absolutely incomprehensible. (At the time I wondered if the advertisements made more sense with a healthy dose of THC.) I don't remember a single advertisement that highlighted any of Zune's advantages. Looking back, it seems like marketing was trying to "out cool" Apple at a time when the iPod defined coolness.

The iPhone and iPod touch were released a year after the Zune 30, and shortly before the first Zunes with capacitive touchpads. The buzz and excitement generated by the Cult of Apple is always hard to overcome. iOS changed the way things are presented to the user, but it wasn't exactly revolutionary. (Icons on a screen... wheee!) There were still holes in the iOS devices Microsoft could, and did, exploit. The one thing that was revolutionary was its multitouch support. Other devices have supported multitouch (like Microsoft Surface) but it had never been implemented so well on a platform that small.

I was given a couple early iPhones to test and characterize their multitouch capabilities. I'll be honest--it was damn impressive. During Zune HD development we tried lots of different ic vendors looking for a comparable solution. None of them even came close. Their algorithms were either too slow or not robust enough to prevent potential gesture confusion. We went through a lot of iterative development with ic vendors to get their multitouch capabilities up to expectations for the Zune HD. I think the first touchscreen Zunes were released 2 years after first gen iDevices.

(Just to poke a stick in the ribs of Apple fanbois who blast MS for never doing anything original, Apple purchased Fingerworks in 2005 to acquire the touch technology used in the iPhone.)

I don't think Zune hardware sales ever met expectation. During development of the Zune HD there was talk that it was going to be the last retail version and we'd start developing reference hardware platforms manufacturers could use to create their own devices. There were also rumors of providing the Zune software as a stand alone product to third party developers. I suspect around that time Zune executives started shopping it around to other divisions in Microsoft to see if it would stick somewhere.

I think Zune's influence on Windows Phone 7 is simply a matter of WP7 designers finding elements they liked in it. I haven't seen anything to suggest a grand scheme to use Zune as a development platform for the WP7 user interface.

------

In case anyone is wondering why I mentioned those two products, I also worked in MS's mouse/keyboard group when the gaming device group--a sister to our group--switched to home networking. Our devices offered real ease-of-use advantages over other offerings at the time, but the profit margins plummeted and MS bailed out.

You guys know there's a free LabVIEW toolkit for NXT, right?

Yeah, and I've even downloaded and installed it a few times. Never got around to trying it out though...

Share this post


Link to post
Share on other sites
In my admittedly biased opinion, Zune was better than iPods and iTunes in almost every way.

Can't argue with that. IMO Zune's biggest downfall was that it wasn't marketed by Apple.

Share this post


Link to post
Share on other sites

Like you, I occasionally try to look at various other graphical languages to see what's out there. I don't remember if I just read about VPL or whether I actually tried it when it was new, but in any case it was long enough ago that I wouldn't have any useful feedback now, other than making two off topic but useful comments:

1. You should definitely use the LV toolkit for NXT. It has its bugs (or at least did the last time I used it. It probably improved since then), but I found it a lot easier to use than the Mindstorms IDE.

2.

Also noteworthy is the blue information icons on the palette. Clicking on the icon opens the help associated help page in a browser. It seems insignificant, but it is more natural than LV's process of hovering over the sub vi and mousing over to the context help window to click the link.

Just right click the subVI and select Help. If the VI has a help page, it will be opened directly.

  • Like 1

Share this post


Link to post
Share on other sites

Interesting comments about messaging. I wonder if NI would ever consider extending dataflow to include 'messageflow'. Perhaps adding another layer on top of LabVIEW to define the flow of messages between actors? Something along the lines of the state-chart add-on? Since there is a push to mainstream the actor framework, this might be on the long term roadmap.

  • Like 1

Share this post


Link to post
Share on other sites

Perhaps adding another layer on top of LabVIEW to define the flow of messages between actors? Something along the lines of the state-chart add-on?

Yeah, any sort of message routing framework would probably best be presented as a different development environment. I hadn't considered something similar to the state-chart add-on. That's a good idea.

VPL runs on top of the Decentralized Software Services (DSS) framework, which in turn runs on top of the Concurrency Coordination Runtime (CCR.) I suspect the Labview runtime engine can fill the role of the CCR, but NI would have to develop an equivalent for DSS. As far as I can tell, when I run a VPL application the DSS framework is responsible for starting all the services needed by the app. Something similar would have to be implemented for the Labview environment. Also, any actors used by the messaging toolkit would need to have some sort of reflection capabilities so the toolkit knows what methods the actor exports. Not trivial, but not impossible either.

Since there is a push to mainstream the actor framework, this might be on the long term roadmap.

Emilie liked your comment so maybe it is. ;)

Just right click the subVI and select Help. If the VI has a help page, it will be opened directly.

I didn't know that. Thanks for the tip.

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.