LabVIEW的哪些特定功能让您感到沮丧?

Joe*_*e Z 17 labview

请耐心等待:这不是语言辩论或火焰.这是对意见的真实要求.

偶尔,我必须帮助教育传统的文本编码器如何在LabVIEW(LV)中思考.通常在这个过程中,我会听到LV糟透了.除了"语言X好得多!"之外,这种见解很少伴随着理性的观察.虽然这句话令他们满意,但它并没有帮助我理解让他们感到沮丧的是什么.

那么,对于那些拥有LabVIEW 文本语言经验的人来说,关于LV的具体事情会让你疯狂吗?

------总结-------

感谢所有的答案!下面的评论中回答了一些问题,其中一些问题存在于其他网站上,有些只是LV的真正问题.根据原始问题的精神,我不打算在这里回答所有这些:检查LAVANI的网站,你会惊喜地发现有多少这些东西可以克服.

  • 无意的并发
  • 无法访问传统的文本处理工具
  • 仅二进制源代码控制
  • 很难分支和合并
  • 打开的窗户太多了
  • 文本具有更清晰/更清晰/更具表现力的语法
  • 清晰的编码需要大量的时间和操作
  • 庞大,难以访问的API /调色板系统
  • 需要鼠标
  • 文件命名空间:内存中没有重复的同名文件
  • LV对象本身仅按值进行
  • 需要dev环境才能查看代码
  • 缺乏变焦
  • 启动缓慢
  • 记忆猪
  • "巨型"代码难以使用
  • UI锁定很容易
  • 触控板和LV不能很好地混合
  • 字符串操作图形化膨胀
  • 有限的UI定制
  • "隐藏"原语(是的,这些存在)
  • 缺乏官方的元编程能力(不过更长时间)
  • 缺乏unicode支持

小智 12

LabVIEW中使得执行并发/并行编程更容易,真的.它并没有,但是,使调试,测试,或约并发/并行变得更容易.您仍然可以在LabVIEW中编写错误的并发代码,并且(与任何语言,平台或工具集一样)没有银弹或魔术棒使并发"正常工作".

如果有的话,你必须更加小心并发,因为如果你没有明确地考虑(并声明)它,那么LabVIEW可能会使你不期望的并发事物.

其他牛肉:这不是文字.以有意义的方式表示数据流意味着图形语言,这意味着您无法使用我们几十年来操作文本的工具,从sed到emacs的所有内容.这也意味着源代码控制应用程序必须将您的代码视为不透明的二进制文件,而不是...源代码.反过来,这使得分支和合并运动变得痛苦.


Cha*_*esB 12

我在很多方面都很欣赏LabView,特别是能够轻松驱动硬件(当然,当它是National Instruments的硬件时),以及并发编程功能.但是在代码导航中反对基于文本的编程语言:

  • 当你浏览代码时,你最终会有大量打开的窗口,因为你一次又一次地连续打开subVis
  • 因为单词比图标更具表现力,与文本语言相比,你在一个屏幕上看到的指令更少,特别是在表达式语法中,比如python
  • 没有异常处理,因为我们在其他语言中知道它; 错误以结构表示,从一个VI传输到另一个VI,对于每个VI,您必须添加一个if error return; else do stuff代码.
  • 调试期间无法在出现错误时暂停


Azi*_*zim 8

Labview非常适合控制硬件.我已经编写了几个Labview应用程序来收集数据(来自各种传感器的模拟电压)和控制硬件(主要是压电电机).Labview使得并行执行多个任务变得相当容易.

现在回答你的问题.我对Labview感到沮丧的是什么?

  1. 用于组织框图的时间

    • 移动电线
    • 组织节点

    也许,因为我自学成才,我花了太多时间试图清理电线并试图跟踪它们,试图破译它们携带的数据和它的去向.

  2. 点击并单击工具箱,查找我想要放置在程序框图或前面板中的节点/功能.

我应该能够使用参数键入我需要的函数/方法的名称,而不是......

"嗯...我现在需要计算RMS vi在哪里?现在我需要一个AND操作.确定回到顶层,到逻辑函数,其中一个是AND哦,就是那个.下图把它连接起来测试!那只花了15分钟!"

但是可能有一种更有效的方式来使用Labview,我只是不知道它!


Man*_*noj 7

1.LabVIEW对象不通过引用传递.
2.没有其他观察者(特别是免费观看者)用于查看方框图.
3.需要打开大量的窗口来查看项目.希望它是MDI,以便减少窗口数量.


Bil*_*ard 6

我最沮丧的是它把我的手从键盘上移开了.我是一个触摸打字员,可以用文本语言快速编写代码.LabVIEW强制您使用鼠标从菜单中选择VI和程序节点,并将节点连接在一起.虽然如果你是一名电气工程师,用于在图形环境中设计电路,这真的很快捷方便,如果你习惯输入你的代码,那将是一件痛苦的事.


披露:自从我上次使用LabVIEW以来已经有两年了,所以接下来的两个可能现在已经修复了.

下一个烦恼是源控制.您最常使用源代码控制存储库执行的操作之一是将当前版本与先前版本区分开来以查找更改.你不能用像LabVIEW这样的图形语言来做到这一点.流行的版本控制系统,如CVS和SVN,在幕后使用基于文本的差异工具.我希望NI为你们所有仍在使用LabVIEW的人提出自己的版本控制解决方案.

我遇到的最后一个烦恼是缺乏真正面向对象的语言功能.LabVIEW 6i,我使用的最后一个版本,最好是基于对象.没有人能真正准确地宣称它是面向对象的.我无法使用继承创建真正的类层次结构,并且仅为少数内置类型保留了多态性.我意识到6i是两个版本的,所以我真的希望这是固定的.


Cra*_*een 6

GUI中缺乏Unicode支持

它使我们日本公司的发展变得困难.

更新:显然有8.6的支持.请参阅LabVIEW中使用Unicode的提示和工具列表.


Ati*_*son 5

  • 几十个打开的窗户是一个明确的痛苦.
  • 由具有更大显示器的人编辑的vi必须调整大小.
  • UI在处理其他东西时暂时锁定(也许我还没有弄清楚labview的多线程潜力)
  • 用触控板在笔记本电脑上编辑是可怕的,(不要忘记小显示器问题).
  • 复杂的字符串操作占用了大量的空间(方程有一个函数节点,为什么不是用于字符串操作的正则表达式节点?)
  • 我有时在其他人的代码中找到原始的vi,我在菜单中的任何地方都找不到.
  • UI只能定制到一个点.

我想补充一点,我认为labview非常强大且设计精良.我很少遇到让我希望自己拥有不同语言的东西.


Tim*_*Tim 3

我编写了一个程序(用C++)来从计算机控制rs232设备,但被要求提供labview的驱动程序或Vi或其他任何东西。我满怀信心地下载了labview,相信我可以在短时间内做出一些成果。(我是一名常春藤学校的计算机科学毕业生,已经用 C++ 编程了 15 年,学习并使用了 C、Scheme、C#、Java 等 - 这应该是理所当然的)

我还下载了 Labview 的示例应用程序和文档。

我对这个结果感到震惊。Labview 庞大、缓慢且不直观。它不遵循我习惯的 MFC、Visio、Rational Rose 或 VB 等范例。尝试找到正确的文档也是一次艰难的经历。那里有太多东西,人们需要了解 Labview 才能知道从哪里开始。

这是一个庞大的程序,可以做很多事情。如果没有人向您展示如何使用它是非常困难的。我自学了很多东西,但到目前为止我还没有掌握labview。(当然我没有花我应该花的时间,但到目前为止这是一次令人沮丧的经历)

总而言之,它庞大、缓慢且不直观。这些文档是压倒性的。

(我仍然对有一天能完成这个项目抱有很大的希望)