为什么大多数程序员不看好图形化编程?

对于图形界面开发还是蛮有用的,只不过对于功能开发还是有局限性的。如果局限性解决,其实蛮看好的,为啥不看好。工具就是帮助人解决问题的,否则等着雷劈取火种就好,干啥演变成用天然气呢


常见两大编程伪命题:中文编程和图形编程。(用于教育和实验的不在范围内)


不看好图形化编程,虽然我不是程序员。

现在的图形化编程,无非是把编程语言画成了图形符号。打个比方,我们好不容易从原始涂鸦发展出了语言文字。但有人却觉得还是涂鸦好懂,都用涂鸦了,就没有文盲了。于是,又把语言再改成涂鸦,这其实是一种退化。因此,图形化编程存在着很多弊端。比如,无法准确做调试,做不了太复杂的程序(我相信x宝绝对不会用图形化编程)。

图形化编程不能局限到某种语言上,而应该实现所见即所得的功能。想象一下,你画出一个网页,立刻就能变成代码运行起来,这才是图形化编程该有的样子,不仅仅是图形,手式、表情甚至是对话都可以用来编程,让电脑理解人的意图,而不是让人理解抽象的程序语言,这才是图形化编程的该有的目标吧。


稍微基础点的算法都需要上百行得代码,扩展成图形化的话,至少也要在界面上放上上百个图形,你确定你能理解图形化代码里表达的算法含义吗?有点逻辑能力的人无所谓是否图形化,是否是中文编程。没那点逻辑能力的人,连口头表述沟通算法都有点问题,图形化能拯救他们吗?不能


我用过labview工作几年,是种图形化编程语言,设计初衷是给不是程序员的工程师用的,相比程序员专门用的语言,简化了很多,但也保留一些高级特性。也带有很多快速开发组件,很快就能上手应用,而且里面的代码就像电路一样,天然的并行运行,自动垃圾回收。

问题1因为是图形编程,所以不是打代码,而是用鼠标拖代码符号出来,比如1加1,就要把加法的符号拖出来用。一天下来用鼠标的手累酸了。

问题2,当你要编写一个很多需求的大项目的时候,字符化编程拖动屏幕就能看,图形化编程是二维扩展的,会平铺成一个巨大的平面图,非常难阅读这些代码。我之前也说过他们像电路一样并行运行,就得考虑数据输入输出的时序问题,很容易出bug

而现在成熟的程序语言,能很轻松组织起大的框架,在设计时就能做好约束,当好保姆防止出错,也能写出很高效率的代码。


你这问题能用几张图片回答吗?

一样的道理,简单的问题能用图像表述,有些复杂的问题能用图像表述是因为问题被抽象了,表述的是抽象部分,而不是问题的全部。

讨论问题,或者描述问题可以这么做,但是解决问题这么做就是找死


先说结论,我也不看好,虽然我也是程序员。

图形化编程这个目前还处在早期,人工智能没有解决自动生成代码之前,所谓的图形化只是有教学意义,并不能实际提高产生生产力,基于规则的只能生成基础代码,并不能用在业务上跑。

如果这样来看,确实不看好。


我觉得图形化编程,应该抛开图形界面设计,重点关注交互设计,模块化,接口标准化。之后才会考虑用途。通过用户自定义模块方式提升复杂度和灵活性。模块化和接口保证易用性。通过集合方式进行模块组合,提升复用性。希望中国要是能做出这样的软件。


写了十几年代码的来分享一下!可以关注我,聊聊写代码的经历

图像化编程也不是刚出现的概念,以前在我读书的时候在电子工程专业中电路设计实际上就用上了图形化编程来设计电路的。虽然那时的应用还很有限,但是发展了那么十几年还是应用非常有限,实际上还是有其原因的。

研发困难

任何一个产品要使用起来简单往往代表着需要复杂的研发过程,图形化编程就是这样的一个产品,毕竟编程是一个非常个性化的过程。就算有很多代码规范,但是每个项目都有他们独特的方面,那作为图形化编程工具就需要考虑到方方面面,简单举例来说,一个按钮,可能就会有十几个不同的参数,如果是一系列按钮的话,那就更复杂了。这个时候如果要做出可用的图形化编程工具就需要非常抽象的设计每个组件。那如果对一个组件,参数设置一多实际上就体现不出图形化编程的优势了。以前电路设计的时候,因为每个组件所需要设置的参数非常有限,所以就比较容易实现,比如一个三极管可能只需要设置触发电压值就可以了。

功能有限

这个和研发复杂是有直接关系的,因为研发过程中需要考虑到很多可能性,或者为了有一款可用的产品,就会牺牲一些功能,这样就会对于最终使用这个编程工具的用户感觉限制变多了,毕竟程序员基本是通过编程来实现某个类型的产品,而且很多时候新产品需要比较创新的写法,如果编程工具在扩展性上有限制就不会是一款很值得使用的编程工具了。再说刚刚那个按钮组件的例子,比如工具开发的时候没有将按钮在画板外会是什么样的状态做设计,那么如果需要一个不可见的按钮时如何处理呢?

逻辑不清

可能是因为程序员看代码比较习惯,图形化编程过程中很多逻辑都不是那么一目了然。尤其对于一些隐形不可见的逻辑,比如点击这个按钮,某段文字会变色等等这样的交互就不太容易在图形化编程中实现,可能可以通过连线来关联两个不同组件的逻辑关系,不过当系统比较复杂之后,这样的线就会很多,也就变得非常难以一眼看明白。

代码实现效率高

图形化编程可能一个优势就是可以不用记代码的意义,直接通过所见即所得的方式来选择不同组件,建立组件之间的关系。不过因为涉及很多参数的设置,一行代码能解决的样式,可能在图形化中需要通过几次鼠标点击加上几次键盘输入才能完成。写代码最高效的过程是双手不离开键盘,这样既减少了手从键盘到鼠标这个过程所需的时间,而且打字和点击鼠标需要不同的操控习惯,反复切换也会比较浪费时间。

总之程序员不会看好图形化编程主要还是现在通过写代码能做的事情比图形化编程要多,而且效率还高。不过,图形化编程还是有其适合的领域的,比如少儿编程入门等等,这样图形化编程的优势就能被更大的发挥了


谢邀,大多数程序员不喜欢图形化编程是因为没有技术含量


图形化编程一个最大的问题就是版本管理控制,版本迭代过程差异不好进行比较或者非常的不方便,特别是开发人多逻辑又复杂的工程。


程序本身就是在无界面下一行行代码编辑和运行的,那么编程也无法避免开发者和晦涩难懂的代码的直接接触。那么一般情况下,开发者多半时间都是要直接和代码接触而不是以图形化的方式来进行编程。

图形化编程一般用在学生教学、简单小型的项目(如winform、wpf等)等上面,适用范围很小,而且这些图形化编程工具还是需要通过晦涩难懂的代码,通过调用系统图形显示接口,驱动显示器来呈现出好看易用的图形化编程界面的,很多东西都做了封装,长时间习惯图形化编程,拖拽式编程以后,会极度依赖于此编程方式,当出现异常错误等情况时,由于高度的封装,问题难以排查,也不能看到源码来了解其中内部的原理,自己的技术不能得到提升,如果不是初学者,不推荐。


原始地址:/yanjie/38743.html