请耐心等待:这不是语言辩论或火焰.这是对意见的真实要求.
偶尔,我必须帮助教育传统的文本编码器如何在LabVIEW(LV)中思考.通常在这个过程中,我会听到LV糟透了.除了"语言X好得多!"之外,这种见解很少伴随着理性的观察.虽然这句话令他们满意,但它并没有帮助我理解让他们感到沮丧的是什么.
那么,对于那些拥有LabVIEW 和文本语言经验的人来说,关于LV的具体事情会让你疯狂吗?
------总结-------
感谢所有的答案!下面的评论中回答了一些问题,其中一些问题存在于其他网站上,有些只是LV的真正问题.根据原始问题的精神,我不打算在这里回答所有这些:检查LAVA或NI的网站,你会惊喜地发现有多少这些东西可以克服.
小智 12
LabVIEW中使得执行并发/并行编程更容易,真的.它并没有,但是,使调试,测试,或想约并发/并行变得更容易.您仍然可以在LabVIEW中编写错误的并发代码,并且(与任何语言,平台或工具集一样)没有银弹或魔术棒使并发"正常工作".
如果有的话,你必须更加小心并发,因为如果你没有明确地考虑(并声明)它,那么LabVIEW可能会使你不期望的并发事物.
其他牛肉:这不是文字.以有意义的方式表示数据流意味着图形语言,这意味着您无法使用我们几十年来操作文本的工具,从sed到emacs的所有内容.这也意味着源代码控制应用程序必须将您的代码视为不透明的二进制文件,而不是...源代码.反过来,这使得分支和合并运动变得痛苦.
Cha*_*esB 12
我在很多方面都很欣赏LabView,特别是能够轻松驱动硬件(当然,当它是National Instruments的硬件时),以及并发编程功能.但是在代码导航中反对基于文本的编程语言:
if error return; else do stuff
代码.Labview非常适合控制硬件.我已经编写了几个Labview应用程序来收集数据(来自各种传感器的模拟电压)和控制硬件(主要是压电电机).Labview使得并行执行多个任务变得相当容易.
现在回答你的问题.我对Labview感到沮丧的是什么?
用于组织框图的时间
也许,因为我自学成才,我花了太多时间试图清理电线并试图跟踪它们,试图破译它们携带的数据和它的去向.
我应该能够使用参数键入我需要的函数/方法的名称,而不是......
"嗯...我现在需要计算RMS vi在哪里?现在我需要一个AND操作.确定回到顶层,到逻辑函数,其中一个是AND哦,就是那个.下图把它连接起来测试!那只花了15分钟!"
但是可能有一种更有效的方式来使用Labview,我只是不知道它!
我最沮丧的是它把我的手从键盘上移开了.我是一个触摸打字员,可以用文本语言快速编写代码.LabVIEW强制您使用鼠标从菜单中选择VI和程序节点,并将节点连接在一起.虽然如果你是一名电气工程师,用于在图形环境中设计电路,这真的很快捷方便,如果你习惯输入你的代码,那将是一件痛苦的事.
披露:自从我上次使用LabVIEW以来已经有两年了,所以接下来的两个可能现在已经修复了.
下一个烦恼是源控制.您最常使用源代码控制存储库执行的操作之一是将当前版本与先前版本区分开来以查找更改.你不能用像LabVIEW这样的图形语言来做到这一点.流行的版本控制系统,如CVS和SVN,在幕后使用基于文本的差异工具.我希望NI为你们所有仍在使用LabVIEW的人提出自己的版本控制解决方案.
我遇到的最后一个烦恼是缺乏真正面向对象的语言功能.LabVIEW 6i,我使用的最后一个版本,最好是基于对象的.没有人能真正准确地宣称它是面向对象的.我无法使用继承创建真正的类层次结构,并且仅为少数内置类型保留了多态性.我意识到6i是两个版本的,所以我真的希望这是固定的.
我想补充一点,我认为labview非常强大且设计精良.我很少遇到让我希望自己拥有不同语言的东西.
我编写了一个程序(用C++)来从计算机控制rs232设备,但被要求提供labview的驱动程序或Vi或其他任何东西。我满怀信心地下载了labview,相信我可以在短时间内做出一些成果。(我是一名常春藤学校的计算机科学毕业生,已经用 C++ 编程了 15 年,学习并使用了 C、Scheme、C#、Java 等 - 这应该是理所当然的)
我还下载了 Labview 的示例应用程序和文档。
我对这个结果感到震惊。Labview 庞大、缓慢且不直观。它不遵循我习惯的 MFC、Visio、Rational Rose 或 VB 等范例。尝试找到正确的文档也是一次艰难的经历。那里有太多东西,人们需要了解 Labview 才能知道从哪里开始。
这是一个庞大的程序,可以做很多事情。如果没有人向您展示如何使用它是非常困难的。我自学了很多东西,但到目前为止我还没有掌握labview。(当然我没有花我应该花的时间,但到目前为止这是一次令人沮丧的经历)
总而言之,它庞大、缓慢且不直观。这些文档是压倒性的。
(我仍然对有一天能完成这个项目抱有很大的希望)