我正在学习使用LabVIEW作为荣誉项目的一部分,并且想知道图形编程语言对文本编程语言有什么好处?
答案 0 :(得分:19)
对我而言,LabVIEW的好处不在于图形与文本。
这是数据流与命令式的对比。
Dataflow programming适用于并发,因为您的执行被建模为黑盒子,当它们的输入有效时执行,其输入/输出连接在一起。这与隐式状态相反,其中包含有关如何修改它的指令列表。 (宽松地解释'kipedia,上面链接的文章更好。)
每个黑盒子都可以在一个单独的核心/处理器/节点上运行,如果你以数据流的方式组织你的程序,它可以有效地提供免费的并发性。
不幸的是(这通常是数据流编程的一个弊端),可视化和编辑数据流程序的最佳方式是图形化,而不是文本化。这使得使用诸如版本控制和代码生成器之类的工具非常困难。
问题是:对于您和您的项目,数据流的优点是否超过缺点?
答案 1 :(得分:7)
使用LabVIEW进行图形化编程的一个主要优点是源代码与电路图非常相似,因此它是电气/电子工程师学习的一种非常简单的语言。这就是LabVIEW在数据采集和自动化领域变得如此受欢迎的原因之一,那里的EE很多。
我发现的另一个优势是原始开发速度。您可以从可用的前面板控件选项板中组装GUI,这与您在Visual Studio中的操作方式非常相似。源代码以类似的方式编写,有许多预定义的组件,您可以从菜单中将它们连接在一起。
第三个优点是与硬件的兼容性。 NI的主要业务是数据采集硬件,他们竭尽全力确保所有产品都可以直接与LabVIEW软件进行通信。数据采集和自动化控制行业的许多其他硬件供应商都在这样做。
答案 2 :(得分:6)
之前我用过labview来计算调整nMRI机器的参数。它们的存在是因为从理论上讲,对于编程语言经验很少的人来说,创建程序更容易。控制流程和决策结构可以以图形方式排列,他们可以在他们想要的地方输入他们的公式。
对于教授和实验室助理......很有帮助。 对于真正的软件开发人员......用另一种语言编写会更容易。
答案 3 :(得分:6)
关于设备驱动程序和用户功能。 NI(Labview)拥有一组支持良好的实验室设备驱动程序。测试操作员(不是开发人员)需要带有绿色/红色通过/失败按钮的gui。我在cygwin中通过python实现了复杂的自动化。 Labview开发人员能够调用cygwin / python系统和数据挖掘日志文件。所以你可以做到这两点。 python系统是可移植的,可维护的,可扩展的,可用的,最重要的是免费的。
答案 4 :(得分:5)
我过去曾使用过LabView,对于数据采集,虚拟仪器等,没有什么比这更好的了。我最后一次使用它的时间是10年前的事了,从那以后我所看到的一切都与90年代中期的情况不相符。
答案 5 :(得分:3)
我认为LabVIEW的一些优点是:
内置的用户界面组件,如按钮,图形等,几乎不需要编程;您只需将它们放在前面板上,数据终端就会出现在程序框图中。
有一个用于数据采集硬件和测试仪器的大型驱动程序库。如果您的任务基本上是从这些数据中获取数据并在其上放置用户界面,那么您几乎不需要编程即可实现它。
自动处理多个任务的并行执行 - 在图上放置两个独立的循环,它们将同时执行。这通常是数据采集和控制应用中的一项要求。
许多人,包括“真正的软件开发人员”,认为图形范式更适合他们思考和可视化软件的方式,而不是文本方式。毫无疑问,文本语言比LabVIEW更好(在本网站的另一个讨论中有所涉及),但LabVIEW适合它,它非常擅长完成工作。
答案 6 :(得分:1)
对我来说,这取决于你感到满意的是,如果你对基于文本的语言感到满意,你可能会发现Labview只是引入了另一种学习曲线。除非您有特定的目标来学习和使用Labview,否则我认为您的项目没有意义。
另一方面,如果您对基于文本的语言不太满意,我倾向于认为Labview更容易学习和学习,特别是对于非软件工程师。
我经常使用基于文本的语言进行测试工程以及Labview和TestStand,对我而言,更多的是关于谁将使用我的软件而不是关于我。有些公司有几个受过Labview培训的人,有些人更喜欢用基于文本的语言写作。在公司范围内对另一种语言进行培训可能成本非常高,并且会改变公司内部职位的招聘要求,因此一些公司实际上“锁定”了一种范式或另一种范式。我想说,如果你打算在这个行业工作,你最好的选择就是要精通两者,这样你才灵活。如果是这样的话,你有时间学习,我会说你最不舒服的工作,扩大你的知识面,这就是学校的权利吗?