写点什么

可视化编程已经能取代高级语言了吗?

  • 2019-09-28
  • 本文字数:3025 字

    阅读完需:约 10 分钟

可视化编程已经能取代高级语言了吗?

可视化编程能够取代高级语言吗?即使现代的计算机技术得到了飞速发展,可视化编程取代高级语言依旧是其行业内最高理想。本文将从国内外流行的可视化编程商业工具入手,分析现阶段可视化编程的局限性,以及未来可视化编程的发展前景。


之前在知乎看到了一则较早的问题现在的可视化编程发展到什么程度了,什么时候可以取代高级语言?这在可视化编程行业内可是最高理想。但期中有一个回答真实反应了现实——可视化编程无法取代高级语言。接下来分析几款国内外可视化编程商业工具(可以做出商业产品),从而分析一下可视化编程的桎梏,以及可能的发展前景。

国内外几种商业可视化编程工具

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/小程序项目的开发模式是完全没问题的。


2019-09-28 08:003604

评论 1 条评论

发布
用户头像
用过 OutSystems , 表示正常的开发者不会想用
2019-10-01 16:27
回复
没有更多了
发现更多内容

[架构实战营] 模块五作业

张祥

架构实战营

秒过!度目智慧通行让常态化防疫更高效

百度开发者中心

人工智能

年末冲刺!坚持就是胜利,12月日更来啦~

InfoQ写作社区官方

12月日更 热门活动

搭建企业级实时数据融合平台难吗?Tapdata + ES + MongoDB 就能搞定

tapdata

社区知识库|常见问答 FAQ 集合第 1 期

Apache Pulsar

Java 开源 Apache Pulsar 代码人生 社区

大规模 K8s 集群管理经验分享 · 上篇

尔达Erda

程序员 云原生 k8s K8s 多集群管理 经验分享、

Linux/CentOS/Ubuntu查看文件内容命令总结

入门小站

Linux

Python Qt GUI设计:QCalendar日历类和QDateTimeEdit时间类(基础篇—20)

不脱发的程序猿

Python qt GUI设计 QCalendar日历类 QDateTimeEdit时间类

四步做好Code Review

百度开发者中心

Code Review

Istio 实践手册 | 迎接新一代微服务架构

xcbeyond

istio 服务网格 28天写作 12月日更 Istio 实践手册

区块链应用食品溯源,为食品安全保驾护航

电微13828808271

云原生:详解|容器云平台应用解析

息之

容器安全 容器应用

云原生:详解|K8s核心对象技术

息之

k8s pod service Deployment

智慧社区服务平台搭建,智慧安防社区建设方案

电微13828808271

云原生:详解|容器核心技术解析

息之

Docker 镜像 技术优势

如何更快上手使用 OceanBase 社区版?

OceanBase 数据库

数据库 直播 课程 OceanBase 开源

官宣!yMatrix 完成A轮融资,打造超融合时序数据库!

YMatrix 超融合数据库

使用 @Transactional 时常犯的N种错误

程序猿DD

spring Spring Boot 事务

打造全新批流融合:详解 Apache Flink 1.14.0 发布的 Pulsar Flink Connector

Apache Pulsar

Java 大数据 分布式 云原生 Apache Pulsar

《鱿鱼游戏》中的 AI 是绝对公平的吗?

澳鹏Appen

人工智能 人脸识别

高层与基层思考上的差异与解决办法

光环PMO社群

项目管理

云原生:Docker实战之容器命令解析(附视频教程)

息之

Docker 视频课 解析

如何设置Activity背景颜色与ProgressBar进度条颜色

Changing Lin

12月日更

贝壳Flutter调试工具-FDB

贝壳大前端技术团队

flutter 调试工具 内存监控

浪潮云说直播间-云溪数据库之ClickHouse原理解析今晚开讲

浪潮云

云计算,

【有奖征文】第一届 OceanBase 技术征文大赛来啦!

OceanBase 数据库

数据库 开源 征文大赛 oceanbase

架构实战营模块五作业

spark99

架构实战营

区块链IM社交系统开发,区块链即时通讯直播系统搭建

电微13828808271

可视化编程已经能取代高级语言了吗?_AICon_iVX_InfoQ精选文章