Why is data flow programming not the norm?
我写了一个简单的遗传算法来进化字符串"地狱世界"。我写了两次。第一次是用类写的。第二次是使用函数来编写的,在函数中,整个遗传世界的状态从一个函数传递到下一个函数……以模拟数据流范式。令人惊讶的是,这两种实现的代码都工作得很好。然而,我只有在每一个bug都被仔细清除之后才设法让它工作,这是一个相当费力的过程。
我问自己……必须有更好的方法。使用类编写代码比使用简单函数编写相同的代码要困难得多,我相信可视化地编写相同的代码,例如使用LabVIEW会比仅使用简单函数编写代码容易得多。
在这种程度上,我读到了数据流编程和可视化编程,坦率地说,以可视化、面向数据的方式编程似乎比以语句方式编程更自然、更直观,这正是大多数编程语言使我们今天能够做到的。我的问题是……如果是这样,为什么没有数据流,像"labview"这样的可视化编程成为标准?
我不相信数据流/"可视化编程"几乎具有设计良好的代码的性能。
与任何图形化的代码相比,基于文本的代码可以表达更复杂和微妙的数据结构和流。它使程序员能够详细控制复制的内容、访问的内容以及对步骤序列的精确控制。我很难理解数据流是如何表现出来的。
最终,数据流/可视化编程只能描述已经知道的事情。文本编程(缺少更好的术语)实际上可以让您表达更多。程序员可以创建全新的数据结构和算法,而这些数据结构和算法还没有被直观地表示出来。
使用单个问题作为如何设计编程语言的基础是危险的。例如,我不确定数据流范式如何改进GUI框架设计。