可视化编程能够取代高级语言吗?即使现代的计算机技术得到了飞速发展,可视化编程取代高级语言依旧是其行业内最高理想。本文将从国内外流行的可视化编程商业工具入手,分析现阶段可视化编程的局限性,以及未来可视化编程的发展前景。
之前在知乎看到了一则较早的问题现在的可视化编程发展到什么程度了,什么时候可以取代高级语言?这在可视化编程行业内可是最高理想。但期中有一个回答真实反应了现实——可视化编程无法取代高级语言。接下来分析几款国内外可视化编程商业工具(可以做出商业产品),从而分析一下可视化编程的桎梏,以及可能的发展前景。
国内外几种商业可视化编程工具
1.Mendix
全行业做低代码开发几乎都用积木的方式去做,确实积木的拼接组合操作很容易,也符合程序员的操作习惯,但全行业似乎陷入了创意沼泽。这时候 mendix 出现在我眼前,流程图式编程是哪个神经病想的,真有意思(下文的 Outsystems 也是相同的形式)。这里引用一下别人对 mendix 的基本介绍:
“专攻企业应用开发,面向 B 端用户,一般是面向有开发团队的中大型企业,提供模型驱动 IDE 和微流,减少代码量,使业务人员可以通过可视化组件参与到开发过程中,与程序员在 Mendix platform 上合作开发本企业的应用。提供一些企业解决方案、模板,开发平台上也支持自定义 UI 和组件。拥有 Atlas UI Framework 开发框架,根据应用和业务类型,会推荐相关的模板和组件,达到快速开发的目的。内置 DevOps 功能,可以持续交付,也可以使用 Mendix platform API 集成其他 DevOps 工具。”
可以做原生 app,web 系统。但编辑器功能本身并不完善,给定的功能模块无法满足企业用户的全部需求。本身有全栈的能力,最近还引入了 socket,但其设计的出发点还不是很适合国内的生态。接入微信等需要额外配置,很烦。编辑器界面本身足够硬核,流程图绘制本身就是可视化的经典与难点,箭头的直观性也很强。其工具只能企业或学生邮箱注册,有兴趣的同学可以注册试试。
2.Outsystems
和 mendix 一样也是针对企业的可视化工具,注册需要企业邮箱。较早版本只包含基本的前端 UI 组件,目前已经丰富了很多。支持数据驱动的 list 组件,每种组件都有封装的事件(这点大同小异,视每个工具的设计思路,有需要可以发邮件提)。css 样式的编辑及其复杂,基本就是原生 css,没有经过任何的封装,说白了还是给前端程序员做的。
数据库关联可视化,这算是一大特色。基于关系型数据库的可视化工具都应该这么 neng。。通过发布后的项目可以发现,他们早期官网主页都不是用他们自己的产品做的。现在官网是用自己产品做的,但是点主页这里的导航点之后点点会鬼畜地上下抖动,可以说每个在线编程的主页都是自己的门脸,希望能尽快优化吧。
其实国外这种商业可视化编程的工具还不少 bpmonline、Zoho Creator、微软的 Microsoft PowerApps 。功能上各有千秋,但受限于线路问题和工具语言,在国内想推行起来还是有难度,那么国内前沿的可视化编程水平怎么样呢,我就直接四个二加两个王了哈!
3.iVX
ih5 团队打造的 v4 版本,在国内网页编辑器中处于鄙视链的最顶层。对于一个程序员而言可以利用 js 进行开发才能满足其工作的成就感,但 ivx 可以做到对没有编程基础开发人员的有效对接。ivx 的组件数量比起国外的产品不是最多的,但确是最契合中国开发需求的,封装全面的微信功能,支持方便认证登录(封装好的取 openid/unionid 的方法),支持微信支付/红包,各种移动端选择器,直播组件(限企业用户)。支持微信小程序、web 开发、原生 app(4.1beta),后端接口/数据库的操作也相对简单。对于国内做外包的从业者而言确实能节省人员和学习成本,但可视化编程即便如此依然有其无解的局限。
scrtch 在可视化编程领域很具有代表性,但相对初级,仅针对儿童教育。另外像部分 apaas 的 crm 编辑器由于功能太过单一也没有拿出来说。
局限
1.功能/性能的局限
看了之前介绍的产品,即便是当中功能最完备的,相比起一门语言来说是不是依旧显得单薄无力。即便可以代替传统程序员开发中档产品,但要说可视化能取代高级语言无疑是在宣称制造零件不需要自然资源,不论用什么新材料新工艺制造零件,其本源都要依赖自然资源。利用高级语言开发好比将矿石做成零件再拼装,可视化编程好比拿到现有的零件组装。零件是否好用只能依赖别人,虽然像 ivx、mendix 有自定义组件的功能,但那依旧是对已有组件的封装,无法真正意义上与 w3c 完美对接。一门高级语言有多少的操作空间?想想 3-4 年前 js 都能写人工智能了呢。可视化工具要想写深度学习该怎么做?估计只能引用外部接口。
性能问题就更不用说了,由于可视化编程的目的基于开发商业产品,其限定死了程序的执行只能是单线程的,最终将用户的 js 用 evil 嵌入最终的包。因此没有一款编辑器敢开放 web worker 功能。
2.社会因素/混乱的生态/没有标准
在大厂呆过的同学一开始一定很好奇为什么要经常重复造轮子,网上明明有很多封装好的库,怎么不能拿来直接用呢?安全问题、法律问题、技术储备,这些都是社会属性性对人类发展的影响。react 中发现存在隐藏协议的时候百度连夜重构代码,之后改用修改过的框架开发了。
与开源的框架不同,可视化编辑器是开发团队赖以为生的产品,除了麻省的 scratch、pblock 面向教育的公益类可视化开源项目外,其他不管 to B 还是 to C 的产品基本都要收费(Outsystems、mendix 针对在校生免费,ivx 在一定流量额度下免费,其余国内大部分产品只要使用都收费)。这导致的第一个问题是生态的缺乏,一个人想要学习使用还要有这样那样的条件限制,那在校生或刚入行的人宁愿去选择行业认可的技术。第二个问题是由于市场没有被某个或某些厂家垄断(想想 dji 出数字图传套件前 fpv 圈子的生态),导致了一家一个标准。一个程序员熟练使用 5 个主流语言 3 款框架就差不多了,因为主流语言就那么多,但是市场上的可视化编程公司几百家,而且做得好的都是自研,没有统一的标准,每家的特色和亮点都不同,到底选谁是很大的问题,都选怕你时间不够。这种混乱导致了小白的迷茫和程序员的不屑,不如学好基础自己开发。
3.相关研究不足
low code develop 是国外传入的概念,被中国互联网人翻译为低代码开发,在国外炒了有一阵了。相关的技术文章有多少呢?先从 eric 查一下国外的研究状态,完全搜不到相应的研究,怎一个惨子了得:
再来看看 cnki,3 个结果,一篇真相关还是科普文,学教育技术的同学你们的研究方向有了!
学界的研究向来喜欢偏向资本市场或争议问题,区块链、深度学习、转基因等课题都要经过一段时间的资本宣传或舆论发酵才能让这些教授学者关注这些议题。比起可视化编程的市场综述研究和发展潜力研究,学界倒是对可视化编程、scratch 等教育学议题更加关注,毕竟现在儿童编程有资本注入。当有了一定学术支撑后,研究和使用的人就会逐渐增多,相应的标准或评级也能展开,间接可以让混乱的学习生态聚焦主流。
总结
可视化编程取代高级语言在短期内不可能实现。首先市场的发展陷入守城之势,真的得出现类似 dji 参与 fpv 开发、腾讯出小程序等事件,某个大厂介入出一套东西然后主推,改变大家的编程习惯然后可视化编程立刻进入大家视野切逐渐形成一套生态。否则可视化编程依然只能是小众的开发方式。
从技术角度说一款图形 IDE 无论如何做不到一门语言的完整性,作为一种开发方案,可视化编程极力做到锦上添花,简化开发流程,节约开发成本,完善最终编译结果,代替一般 web/小程序项目的开发模式是完全没问题的。
评论 1 条评论