-->

文本与图形化编程语言(Textual versus Graphical Programming La

2019-07-04 09:43发布

我是一名高中机器人团队的一部分,并没有要使用我们的机器人程序的语言一些争论。 我们在C(也许C ++)和LabVIEW之间进行选择。 有每种语言的优点。

C(++):

  • 广泛使用
  • 为未来做好准备(大多数编程职位需要基于文本的程序员)。
  • 我们可以在从去年我们的C代码库扩大
  • 让我们更好地了解我们的机器人在做什么。

LabVIEW的

  • 更容易可视化程序流(而不是行代码块和电线,)
  • 容易教(据说...)
  • “编程的未来是图形化的。” (也这样觉得?)
  • 接近ROBOLAB背景下,一些新的成员可能。
  • 不需要密切知道发生了什么事情。 简单地告诉模块找到红球,也不需要知道如何。

这对我们是一个非常艰难的决定,我们已经讨论了一段时间。 基于这些优点对于每一种语言,并在经验,你有, 你觉得什么是更好的选择是什么? 请记住,我们是不是一定要去纯效率。 我们也希望我们的准备程序员编程未来。

也:

  • 你认为图形语言,如LabVEIW是编程的未来?
  • 是一个图形化的语言更容易学习比文本语言? 我认为他们应该差不多同样具有挑战性的学习。
  • 眼看因为我们partailly植根于帮助人们了解多少,我们应该依靠预先写好的模块,我们多少应该尝试在我们自己写的? (“好程序员编写好的代码,优秀的程序员复制伟大的代码。”但是,是不是值得为一个优秀的程序员,第一?)

感谢您的建议!


编辑:我想强调这个问题更多:球队队长认为,LabVIEW是因为它容易学习和教学的更好。 真的吗? 我认为C可以很容易地教,和初学者水平的任务仍然是各地的C.我很想听听你的意见。 没有任何理由,打字,{}应该是没有什么难度比创造“而盒子?” 不只是作为直观的该程序由线流线,仅由IFS和循环修改,因为它是直观的,该程序流过导线,仅通过IFS和循环改性!?

再次感谢!


编辑:我刚刚意识到这属于的主题“语言的争论。” 我希望这没关系,因为它是关于什么是最好的节目的具体分支,具有一定的目标。 如果不是......对不起......

Answer 1:

我到达之前,我们团(博士学位的科学家,很少编程背景)一直在试图实施了近一年,并关闭一个LabVIEW应用程序。 该代码是凌乱的,太复杂(前端和后端),最重要的是,没有工作。 我是一个热衷程序员,但从未使用过的LabVIEW。 从一个LabVIEW大师一点帮助谁可以帮忙翻译我知道到LabVIEW概念有可能在一周内编写应用程序的文本预设电台的范例。 这里的关键是, 。

LabVIEW是伟大的使用它所最初被设计为。 即从数据采集卡获取数据,然后在屏幕上,在中间的一些细微的操作可能显示。 然而,编程是不容易,我甚至认为它是比较困难的。 例如,在大多数的过程语言执行顺序之后通常是线线,采用伪数学符号(即y = x*x + x + 1 ),而LabVIEW中会实现此使用一系列VI的的其不必从每个遵循其他(即左到右)在画布上。

此外编程作为一个职业比知道编码的技术细节了。 如果能够有效地求人/寻找答案,写可读的代码,并与旧代码工作是这是不可否认的图形语言更困难,如LabVIEW所有的关键技能。

我相信,图形化编程的某些方面可能成为主流-使用子VI的完美体现节目的“黑盒”本金和在其他语言的抽象,例如还使用雅虎管道和苹果的Automator -也许将来的某个图形语言将彻底改变我们的编程方式,但LabVIEW的本身是不是在语言设计一个巨大的范式转变,我们还有while, for, if流量控制,类型转换,事件驱动编程,即使对象。 如果未来真的会在LabVIEW编写,C ++程序员不会有太大的麻烦跨越。

作为postcript我想说的是C / C ++更适合于机器人,因为学生无疑将不得不面对在某些时候嵌入式系统和FPGA。 低级别的编程知识(位,寄存器等)将是宝贵的这种东西。

实际上LabVIEW中使用了很多行业,特别是对控制系统。 诚然NASA不可能用它来载卫星系统,但随后的软件开发空间系统是一个完全不同的球赛 ...



Answer 2:

我遇到我目前工作中的研究组中的有些类似的情况。这是一个生物物理学研究的,而且我们使用LabVIEW所有的地方来控制我们的仪器。 这工作绝对伟大的:它很容易组装UI来控制仪器的各个方面,以查看其状态,并保存数据。

现在我必须从写5页咆哮阻止我自己,因为我的LabVIEW一直是一个噩梦。 让我来代替试图总结出一些优点和缺点:

免责声明我不是一个LabVIEW的专家,我可以说的东西都是偏,出过期或只是简单的错误:)

LabVIEW的利弊

  • 是的,这很容易学习 。 许多博士在我们集团似乎已经获得足够的技能在几周内谬以千里,甚至更少。
  • 。 这是一大看点。 你必须仔细研究这对你自己的情况(我不知道你需要什么,如果有良好的LabVIEW库,或者是否有其他语言的替代品)。 在我的情况,发现,例如,一个良好的,在Python快速图表库一直是一大难题,已阻止我重写我们的一些Python程序的。
  • 你的学校也许已经安装并运行。

LabVIEW的利弊

  • 这也许是过于简单易学。 在任何情况下,似乎没有人真正困扰于学习最佳实践,让节目迅速成为一个完整的,无法挽回的一塌糊涂。 当然,这也是必然,如果你不小心用基于文本的语言发生,但国际海事组织是更难做正确的事情在LabVIEW中。
  • 有往往是与查找子在LabVIEW重大问题 (甚至达到8.2版本,我认为)。 LabVIEW中有自己知道在哪里可以找到库和子VI的,这使得它非常容易彻底打破你的软件的方式。 这使得大项目一个痛苦,如果你没有做的人周围的人谁知道如何处理这个问题。
  • 获取LabVIEW的版本控制工作是一种痛苦 。 当然,这是可以做到,但在任何情况下,我从不要使用内置的VC。 退房LVDiff了LabVIEW的差异工具,但千万别想合并。

(最后两个点使在一个团队中工作的一个项目很难。这可能是重要的,你的情况)

  • 这是个人的,但我发现,视觉编程的时候,许多算法只是不工作。 这是一个烂摊子
    • 一个例子是东西,是严格的顺序; 这得到繁琐很快。
    • 这是很难有代码的概述。
    • 如果您使用的子VI对小任务(就像它是一个很好的做法,使执行一个小任务功能,并且适合在一个屏幕上),你不能只给他们的名字,但你必须提请每个图标他们的。 这仅得到在几分钟内非常讨厌和麻烦,让你变得很动心, 不要把东西在子VI。 这太麻烦了。 BTW:做一个很好的图标可以采取专业小时。 去尝试做一个独特的,立即可以理解的,可识别的为你写的每个子VI图标:)
  • 你必须在一个星期内腕管。 保证。
  • @Brendan:听,你听!

结束语

至于你的“我应该写我自己的模块”的问题:我不知道。 取决于你的时间限制。 不要花重新发明轮子的时间,如果你不就得了。 这太容易,花天编写低级代码,然后意识到你已经用完了时间。 如果这意味着你选择的LabVIEW,去了。

如果会很简单的方法来LabVIEW和,例如,C ++相结合,我很想听到这件事:那可能会给你两全其美的,但我怀疑有。

但要确保你和你的团队花时间学习的最佳做法。 看着对方的代码。 互相学习。 写作可用的,可以理解的代码。 玩乐!

并请原谅我的探空前卫,也许有点迂腐。 这只是LabVIEW的一直是我一个真正的噩梦:)



Answer 3:

我觉得LabVIEW中的选择与否归结为是否要学习编程的常用语言作为出售的技术,或者只是想完成各项工作。 LabVIEW中,您可以得到的东西非常迅速,高效地完成。 正如其他人所观察到的,它不会奇迹般地从不必了解你在做什么你自由,这是相当可能的,如果你没有创建一个邪恶的混乱 - 尽管有传言称,不良的编码风格在LabVIEW中最糟糕的例子是通常谁是在文本语言经验,并拒绝以适应LabVIEW如何工作的,因为人民犯下“已经知道如何编程,该死!”

这并不是暗示的LabVIEW编程是不是适销对路的技能,当然,; 只是它并不像大众市场为C ++。

LabVIEW中,使得它非常易于管理不同的事情在进行并行工作,你可能有一个机器人控制的局面。 在代码中的竞争条件,应该是连续的不应该是(即如果是这样,你这样做是错误的)一个问题:对于确保事情发生在必要时正确的顺序简单的技术 - 链接子VI的使用误差线或其他数据,使用通知或队列,建立一个状态机结构,即使使用LabVIEW的序列结构如果需要的话。 再次,这是简单的抽出时间来了解LabVIEW和它们如何工作可用的工具的情况下。 我不会去想不得不作出子VI图标是很好执导的抱怨; 你可以非常快速地创建一个包含文本的几句话,也许与背景颜色之一,这将是对大多数的目的。

“的图形化语言的未来之路”是基于一个错误的二分法红鲱鱼。 有些东西很适合于图形化语言(并行代码,例如); 其他的事情西装文本语言好得多。 我不希望LabVIEW和图形化编程要么走开,或接管世界。

顺便说一句,我会感到非常惊讶,如果美国航空航天局并没有在太空计划使用LabVIEW。 最近有人在信息,LabVIEW的邮件列表他们如何使用LabVIEW来开发和测试由电动机波音787动飞行面的闭环控制上的描述,并给了LabVIEW将在飞机的发展广泛使用的印象。 它也可用于实时控制大型强子对撞机!

最活跃的地方目前用于获取进一步的信息和帮助,通过LabVIEW,除了National Instruments公司自己的网站和论坛,似乎是LAVA 。



Answer 4:

这不回答你的直接问题,但你可能要考虑一种解释型语言混合的第三个选项。 Lua中 ,例如,被已经 使用在机器人领域。 它速度快,重量轻,可以配置为固定点数而不是浮点运行,因为大多数微控制器没有一个FPU。 第四是类似的使用另一种选择。

它应该是很容易编写C薄界面层,然后让学生用宽松的解释脚本。 你甚至可以将它设置为允许无需重新编译和闪烁的芯片动态加载代码。 这将减少迭代周期,让学生更快地学会通过观察结果更好。

反对使用可视化工具,如LabVIEW的偏见。 我似乎总是碰到了什么东西,它不能或不会很喜欢我想要它做的工作。 所以,我更喜欢绝对的控制你的文字代码得到。



Answer 5:

LabVIEW中的其它力量(除了库)是并发性 。 这是一个数据流语言 ,这意味着运行时可以处理并发你。 所以,如果你正在做一些高并发,不希望有做传统的同步,LabVIEW能够帮助你。

当他们站在今天的未来不属于图形化语言。 它属于谁可以拿出数据流的表示(或其他并发友好型编程)作为图形化的方式是的AS简单,但也是由程序员自己的工具可分析的。



Answer 6:

这里是美国国家仪器公司主办的主题的发表的研究报告:

图形化的研究与文本编程教学DSP

它特别着眼于对LabVIEW的MATLAB(相对于C)。



Answer 7:

我认为,图形语言西港岛线总是在表现力的限制相比,文本的。 比较试图在视觉符号(例如,REBUS或符号语言)来进行通信使用的话进行通信。

对于简单的任务,使用图形化语言通常更容易但对于更复杂的逻辑,我发现,图形化语言的方式获得。

这种说法隐含的另一个辩论,虽然是声明式编程与势在必行。 声明通常是任何东西,你真的不需要了的东西是怎么做的细粒度控制更好。 您可以使用C ++声明方式,但你会需要更多的工作了前做出这等,而LabVIEW是设计为说明性语言。

一张图片胜过千言万语,但如果一个画面代表了千言万语,你不需要,你不能改变,那么在这种情况下的图片是毫无价值的。 然而,你可以创造数千个使用的话,指定每一个细节,甚至引领着观众的视觉焦点明确的图片。



Answer 8:

LabVIEW中可以让你快速上手,并(如其他已经说过)具有代码做各种测试,测量和控制有关的东西一个巨大的图书馆。

LabVIEW中的一个最大的区别,不过,是你失去所有的程序员编写自己的工具。

您的代码存储为VI的。 这些都是不透明的,二进制文件。 这意味着你的代码确实不是你的,它是LabVIEW中的。 你不能写自己的解析器,你不能写一个代码生成器,你不能做到通过宏或脚本自动修改。

吮吸当你有一个5000 VI应用程序,需要普遍适用的一些小调整。 你唯一的选择是手动完成每VI,天上帮助你,如果你错过了一个VI的改变关在某处角落。

是的,因为它是二进制的,你不能做差异/合并/补丁像您可以用文本语言。 这确实让有多个版本的代码的可维护性的可怕梦魇的工作。

通过一切手段,使用LabVIEW如果你正在做简单的东西,或者需要为原型,或不打算保持你的代码。

如果你想要做真正的,可维护的程序,使用文本语言。 你可能会比较慢起步,但你会在长期运行得更快。

(哦,如果你需要数据采集库,NI的得到这些的C ++和.NET版本了。)



Answer 9:

我在这里的第一篇文章:)温柔......

我来自于汽车行业的嵌入式的背景,现在我在国防工业。 我可以从经验告诉你,C / C ++和LabVIEW是在不同的目的真正不同的东西。 C / C ++总是用于在微控制器嵌入式的工作,因为它是紧凑和编译器/工具是来之不易。 在另一方面的LabVIEW被用于驱动测试系统(连同测试台作为一个定序器)。 最让我们使用的测试设备均来自NI的LabVIEW所以提出了我们拥有的工具和作业所需的驱动程序,与我们所需要的支持。伴随的环境..

在便于学习方面,还有很多很多的资源在那里为C / C ++和许多网站,奠定了设计考虑和例子算法的几乎任何东西,你以后可以免费获得是。 对于LabVIEW,用户社区的可能不是等不同的C / C ++,它需要多一点点的努力来检查和比较示例代码(必须有LabVIEW的等权版)...我发现LabVIEW中很容易挑并学习,但也有一些已经在这里提到的并行性和需要一点点的经验,你意识到他们以前的各种其他的事情要做一个滋扰。

所以结论毕竟是什么? 我会说两种语言的学习,因为他们确实代表了两种不同风格的编程是值得的,它肯定是值得了解和精通两种。



Answer 10:

噢,我的上帝,答案就是这么简单。 使用LabVIEW。

我已经设定嵌入式系统10年,我可以说,如果没有基础设施(非常小心的基础设施!)至少一两个月,你就不会因为你在使用LabVIEW 1天的生产。

如果你正在设计到销售和使用的军用机器人,继续前进,以C开始 - 这是一个良好的通话。

否则,使用该系统,可以让你尝试在最短的时间量品种最多。 这是LabView的



Answer 11:

我认为,图形化语言可能是未来的语言.....所有这些即兴的MS Access开发人员那里。 总是会有的纯文本编码一个点。

就个人而言,我必须问什么是建立一个机器人,如果这一切都为你做的真正的乐趣? 如果你只是落个“发现红球”模块在那里,看着它去? 你会为你的成就是什么自豪感? 就个人而言,我不会有多大。 另外,会是什么教你的编码,或软件/硬件接口,是机器人关键的(非常重要)方面的?

我不主张在该领域的专家,但问自己一句:你认为NASA采用LabVIEW编写火星探测器? 你认为任何人在机器人真正突出的是使用LabVIEW?

真的,如果你问我,使用类似的LabVIEW俗套的东西来构建这个唯一会为您准备的是一些散养机器人制造商,仅此而已。 如果你想要的东西,会给你更多的东西一样的行业经验,建立自己的“LabVIEW'型系统。 构建自己发现的有球模块,或者你自己的“后续的线”模块。 这将是困难得多,但它也将是更多的方式太爽。 :d



Answer 12:

我爱的LabVIEW。 我会极力推荐它,特别是如果对方记住使用了类似的东西。 这需要一段时间的正常程序员习惯它,但结果的要好得多,如果你已经知道如何编程。

C / C ++等于管理自己的记忆。 你会在内存中的链接来游泳,担心他们。 使用LabVIEW去,请务必阅读附带的LabVIEW文档并观看了比赛的条件。

学习一门语言是很容易。 学习如何编程不是。 这甚至如果它是一个图形化的语言不会改变。 图形语言的优点是,它更容易视觉什么的代码会做,而不是坐在那里破译一堆文本。

重要的不是语言,但编程概念。 它不应该不管你学什么语言编程的,因为一点点的努力,你应该能够在任何语言编程好。 语言来来去去。



Answer 13:

免责声明:我没有亲眼目睹LabVIEW的,但我已经使用了一些其他的图形语言,包括流动的WebMethods和建模工具,在大学动态模拟语言,呃,麻省理工学院的划痕:)。

我的经验是图形化语言可以做编程的“管道”部分的一个很好的工作,但我使用的那些积极获得Algorithmics公司的方式。 如果你的算法是非常简单的,这可能是确定。

在另一方面,我不认为C ++是非常适合你的情况无论是。 你会花更多的时间下来指针和内存管理问题的跟踪比你有用的工作要做。

如果你的机器人可以使用脚本语言来控制(Python和Ruby,Perl的,等等),那么我认为这将是一个更好的选择。

然后是混合选项:

如果有你的机器人没有脚本选项,你有一个C ++怪胎在你的团队,然后再考虑具有怪胎写绑定到你的C ++库映射到一个脚本语言。 这将允许人们与其他专业的机器人更容易编程。 绑定将使一个很好的礼物给社会。

如LabVIEW允许它,使用它的图形语言编写的文本语言模块下探在一起。



Answer 14:

你在高中。 多少时间,你必须对这个方案的工作? 有多少人在你的小组? 他们知道C ++或LabView的了吗?

从你的问题,我看到你知道C ++和大多数组没有。 我还怀疑,组长是足够敏锐的注意到,该小组的一些成员可以通过一个基于文本编程语言所吓倒。 这是可以接受的,你在高中的时候,这些人都是normies。 我觉得好像普通的高中生将可以比C ++更直观地了解LabView的。 我猜大多数高中学生,像一般的老百姓,都吓得一个命令行的。 对你来说有少得多的差别,但对他们来说,这是白天和黑夜。

你是正确的,相同的概念可以适用于LabVIEW作为C ++。 每个人都有其长处和短处。 关键是选择了合适的工具。 LabView的是专为这种应用 。 C ++是更通用的,可以应用于许多其他类型的问题。

我要推荐的LabView。 有了正确的硬件,可以在启动和运行几乎出的即装即用。 您的团队可以花更多的时间让机器人做你想做的 ,这是本次活动的重点应该是什么。

图形化语言不是编程的未来; 他们是为了解决某些类型的问题,可用选项,其一,多年。 编程的未来是在抽象层层从机器代码远。 在未来,我们会奇怪,为什么我们浪费了这么长的时间了个遍编程“语义”。

我们应当在多大程度上依赖于预先写好的模块,我们多少应该尝试在我们自己写的? 你不应该浪费时间重新发明轮子。 如果有在Labview中提供的设备驱动程序,使用它们。 您可以通过复制代码的功能类似,它定制您的需求学到很多东西 - 你能看到其他人是如何解决类似的问题,并有解释他们的解决方案,才能正确地将其应用到你的问题。 如果你一味地复制代码,它获得工作的机会很渺茫。 你必须是好的,即使你复制的代码。

祝您好运!



Answer 15:

我会建议你使用LabVIEW,你可以踏踏实实地做你想要做的更快,更容易什么机器人。 LabVIEW中已经设计了这个主意。 OfCourse C(++)都是伟大的语言,但LabVIEW中做的事情是应该做的比什么都好。 因为它提供了充分的余地和支持,人们可以写在LabVIEW真的好软件。



Answer 16:

还有就是我发现在使用LabVIEW为我的应用程序的负面一个巨大的东西:组织设计的复杂性。 作为physisist我找到原型,仪器控制和数学分析Labview的伟大。 有一个在你得到更快,更好的结果,然后在LabVIEW中没有语言。 我用的LabView自1997年自2005年以来我完全切换到.NET框架,因为它是更容易设计和维护。

在LabVIEW中一个简单的“如果”的结构必须被绘制并采用了大量的空间,你的图形设计。 我刚刚发现,我们的许多商业应用是很难维持的。 更复杂的应用成了,这是阅读更加困难。

我现在使用的文字。语言和我保持一切要好得多。 如果你想比较C ++到LabVIEW中我会使用LabVIEW,但相比于C#不赢



Answer 17:

作为永诺,这要看情况。

我使用LabVIEW,因为现在约20年,做了相当大样的工作,从简单的数据采集到非常复杂的可视化,从设备控制测试序。 如果这还不够好,我肯定会切换。 这就是说,我开始用穿孔卡片编码Fortran和使用一大堆的编程语言的8位“机”,从基于Z80-的。 语言范围从汇编到BASIC,从涡轮帕斯卡尔C.

LabVIEW的是因为它的数据acqusition和分析大量库的重大改进。 一个人,但是,学习不同的PARADIGMA。 和你一定需要一个轨迹球;-))



Answer 18:

我不LabVIEW的任何东西(或很多关于C / C ++),但..

你认为图形语言,如LabVEIW是编程的未来?

没有...

是一个图形化的语言更容易学习比文本语言? 我认为他们应该差不多同样具有挑战性的学习。

容易学? 没有,但他们更容易解释和理解。

要解释你必须解释变量是什么(这是相当困难)编程语言。 这是不是与流图/节点编码工具的问题,像乐高MINDSTROMS编程接口,或石英作曲家..

例如, 在这是一个相当复杂的LEGO MINDSTROMS程序 -这是很容易明白是怎么回事的......但是如果你想要机器人运行INCREASEJITTER块5次,然后向前行驶10秒,然后再尝试INCREASEJITTER循环一遍吗? 事情开始变得凌乱很快..

石英作曲家就是一个伟大〔实施例,为什么我不认为图形化语言将永远“是未来”

这使得它很容易真的很酷的东西(3D粒子特效,从一个摄像头的像素的平均亮度控制的摄像机)..但令人难以置信的很难做简单的事情,比如在迭代从XML文件中的元素,或存储该平均像素值到一个文件中。

眼看因为我们partailly植根于帮助人们了解多少,我们应该依靠预先写好的模块,我们多少应该尝试在我们自己写的? (“好程序员编写好的代码,优秀的程序员复制伟大的代码。”但是,是不是值得为一个优秀的程序员,第一?)

在学习方面,它是如此容易得多既解释和理解的图形语言..

这就是说,我会建议一个专门的基于文本的语言语言的发展。 例如,对于图形像处理或NodeBox 。 他们是“正常”的语言(处理是Java,NodeBox是Python)的有根深蒂固到他们非常专业的,易于使用的(但荒谬的强大)的框架..

重要的是,他们是非常互动的语言,你没有写数百行只是为了得到一个圆在屏幕上。你只需要输入oval(100, 200, 10, 10)按运行按钮,并出现! 这也使得他们很容易演示和讲解。

更多的机器人技术相关,甚至像LOGO将是一个很好的介绍 - 你键入“转1”和乌龟向前驱动一个箱..类型“LEFT 90”,它旋转90度。这涉及到现实的很干脆。 您可以直观地想象每个指令都行,那么尝试一下,确认它确实有效的方式。

告诉他们shiney寻找的东西,他们会皮卡他们会在C学习沿途中,有用的东西,如果他们有兴趣或进步,他们需要一个“真正”的语言点,他们将有所有的知识,而不是遇到语法错误和编译砖墙..



Answer 19:

看来,如果你试图准备我们的团队对未来的规划是C(++)MA,是更好的途径。 这与视觉构建模块通用编程语言的前景似乎从来没有兑现,我开始怀疑,如果他们是永远。 看来,虽然它可以为特定的问题域来完成,一旦你进入试图解决许多问题,一般一个基于文本的编程语言是很难被击败。

有一段时间,我已经有点买成可执行的UML的想法,但似乎一旦你过去的对象关系和一些处理的流程的UML将建立一个应用一个非常悲惨的方式。 想象一下连线了这一切的GUI。 我不介意被证明是错误的,但到目前为止,这似乎不太可能,我们会点,很快点击编程随时随地。



Answer 20:

我大约2年前开始与LabVIEW和现在使用它所有的时间,可能会有所偏差,但发现它非常适合在数据采集和控制所涉及的应用程序。

我们使用LabVIEW主要用于测试,我们需要连续测量和控制燃气阀和ATE外壳。 这涉及到数字和模拟输入和输出,信号分析程序和工艺控制的所有从GUI运行。 通过打破各部分到子VI,我们能够重新用鼠标点击和拖动测试。

不完全一样C / C ++,但类似的执行使用Visual BASIC测量,控制和分析的出现复杂,难于通过比较来维持。

我认为编程的过程比实际的编码语言更重要,你应该遵循一个图形化编程语言的风格指南。 LabVIEW程序框图显示的数据流( 数据流编程 ),所以它应该很容易看到潜在的竞争条件,虽然我从来没有任何问题。 如果你有一个C代码库然后将其建设成一个dll将使LabVIEW来直接调用它。



Answer 21:

有一定的优点既选择; 然而,由于您的域名是一个教育经验,我觉得C / C ++的解决方案将受益最多的学生。 图形化编程将永远是一种选择,而是根本就没有提供一个优雅的方式的功能,这将使比文本编程的低级编程使用它更加高效。 这不是一件坏事 - 抽象的整点是让一个问题领域的一个新的认识和看法。 我相信很多的原因可能与图形化编程失望的是,虽然,对于任何特定的程序,在C到图形化编程,从去增量增益是不是几乎一样从装配去C.

图形化编程的知识将有利于未来的程序员肯定。 有可能会在未来的机会,只需要图形化编程,也许你的一些学生可以从它的一些早期的经验中获益的知识。 在另一方面,在基本的编程概念了坚实的基础用文本的方式提供将有利于所有学生的,肯定必须是更好的答案。



Answer 22:

球队队长认为,LabVIEW是因为它容易学习和教学的更好。 真的吗?

我怀疑这将对于任何单一的语言或范式是真实的。 LabView的肯定可以为人们与电子工程背景更容易; 在其制作程序是“简单的”拉电线。 再说,这样的人可能已经接触到编程,以及。

一个本质区别 - 除了从图形 - 是LV是基于需求(流量)的编程。 您可以从结果开始,并告诉,什么是需要得到它。 传统的编程往往是势在必行(走另一条路轮)。

有些语言既可以提供。 我制作的多线程库的Lua最近(车道),它可以在另外势在必行环境中使用的基于需求的节目。 我知道有(在Lua那里大多运行成功机器人疯狂伊万在Lua的哦六)。



Answer 23:

你吃过看看微软机器人工作室? http://msdn.microsoft.com/en-us/robotics/default.aspx

它允许可视化编程(VPL): http://msdn.microsoft.com/en-us/library/bb483047.aspx以及现代语言,如C#。 我鼓励你至少看看教程。



Answer 24:

我反对的Labview(和Matlab在这方面)的抱怨是,如果你计划在x86之外的任何嵌入代码(和Labview有工具把的LabVIEW VI武器),那么你就必须在这个问题抛出尽可能多的马力你可以,因为它是低效率的。

LabVIEW是一个伟大的原型工具:许多库,便于串起来块,也许有点难以做到的先进的算法,但可能有一个块,你想要做什么。 你可以得到的功能迅速完成。 但如果你认为你可以采取的VI,只是把它你就错了的设备上。 例如,如果在LabVIEW做加法块有两个输入和一个输出。 什么是内存使用量? 三个变量有价值的数据? 二? 在C或C ++,你知道的,因为你可以写z=x+yx+=y ,你知道内存的情况正是你的代码是做什么。 内存使用可以迅速秒杀特别是因为(其他人指出的)LabVIEW是高度并行的。 所以准备抛出比你想象的问题更加RAM。 而更多的处理能力。

总之,LabVIEW是伟大的快速成型,但你失去了在其他情况下,过多的控制。 如果你有大量的数据或者有限的存储/处理能力,然后使用一个基于文本的编程语言,所以你可以控制发生的事情的工作。



Answer 25:

人们总是比较C ++与昼“哦LabVIEW是高水平的,它有那么多的内置功能尝试采集数据做了DFFT和显示数据那么容易在LabVIEW尝试在C ++”的LabVIEW。

误区1:这是很难找到任何与C ++的,因为它如此之低的水平和LabVIEW有许多事情已经实施完成。 问题是,如果你正在开发一个在C机器人系统++,你必须使用像OpenCV的库,PCL .. ECT,如果你使用专门构建的机器人系统,如ROS(机器人操作系统)软件框架,你就会更聪明。 因此,你需要使用全套工具。 当您使用,ROS +蟒蛇/ C ++与图书馆如OpenCV的和PCL逸岸有更多可用的高级工具。 像ICP我已经使用LabVIEW机器人并坦言常用算法是不存在和它的不喜欢,你可以用到其他库容易了。

Myth2:这是比较容易理解的图形化编程语言

这取决于实际情况。 当你编写一个复杂的算法图形元素会占用宝贵的屏幕空间,这将是很难理解的方法。 要了解LabVIEW代码一定要仔细阅读过这是O(n ^ 2)代码的复杂性你刚才读从上到下的区域。

如果你有并行系统。 ROS实现了基于使用回调和它很容易在运行和通信的多个程序,来实现subcriber /发行消息的基于图形架构。 有分开的独立平行成分更容易调试。 例如通过并行LabVIEW代码步进是恶梦因为控制流程跳到形式一个地方到另一个地方。 在ROS你不明确“抽出你的archietecture像在LabVIEW中,但是你仍然可以看到它在我运行运行rqt_graph命令ROS(它会显示所有连接的节点)

“编程的未来是图形化的。” (也这样觉得?)

我希望不会,目前执行的LabVIEW不允许使用基于文本的方法和图形方法编码。 (有MathScript的,然而,这是令人难以置信的慢)

它很难调试,因为你不能轻易隐藏并行性。

它难以阅读LabVIEW代码,因为有你有看在这么多的面积。

LabVIEW是非常适合数据水溶液和信号处理,但不是实验机器人,因为最像SLAM(同步定位和映射),点云登记,点云处理ECT高电平分量的丢失。 即使他们添加这些成分,它们易于集成像ROS,由于LabVIEW是专有的,昂贵的,他们决不会与开源社区跟上。

总之,如果LabVIEW是未来机电一体化,我改变我的职业生涯路径,以投资银行业务......如果我不能享受我的工作,我可能也赚了一些钱和提前退休?



文章来源: Textual versus Graphical Programming Languages