从“玩具”到“工具”,低代码能否完全替换纯代码?

作者 | ClickPaaS创始人胡柏

出品 | 《程序员》编辑部

这两年,低代码市场的繁荣终于从美国走到了中国,在需求市场、资本市场双轮驱动下,给企业客户带来空前的价值。同时,新的产品和公司,抑或“新瓶装老酒”的公司层出不穷、眼花缭乱,同时也给企业服务领域的从业者带来了不少困惑。

很多人问我:到底“低代码”是个什么东西?未来人人都是开发者吗?程序员是不是被颠覆了?我借此机会结合我所做的事情,分享一下自己的经验和想法。

“低代码”到底是什么?

首先,“低代码(Low Code)”和“无代码(No Code)”是一个市场营销的词汇,并不是一个严格的技术词汇,这也就解释了为什么不同的人对低代码和无代码的理解差异如此之大,这和“中台”在诞生之初的情形很相似。

但和“中台”不一样的是,低代码和无代码这两个词的背后,有着两类不同的、明晰的技术路径,即表单驱动的Airtable模式,和模型化的OutSystems模式。 

Airtable模式即“表单驱动模式”,代表“在线数据库”(Online Database),利用Excel的形态,以个人用户自身为中心,形成点状轻应用(Sweet Spot)的逻辑;Outsystems则是“模型驱动模式”,代表以领域模型为基础,为实现关键性应用(Critical Apps),甚至核心应用(Core Systems)为目标而提供的开发路径。这两种开发模式所对应的目标场景和客户是不一样的。 

国内有文章把IDE同上述两种模式一块当作分类的标准,这其实是很荒唐的。IDE只是一种工具,而上述两种模式则属于设计思想(即表单化、模型化),两者完全不是同一类别。

低代码是否将人人都变成了开发者?

在表单驱动领域,普通用户能按照自己的需求,自己动手形成一套轻逻辑应用,就像用Excel一样。这种模式利用了Excel的用户习惯和用户基础,聚焦2C用户,形成了今天很火的“人人都是开发者”的理念,但其本质逻辑却是“人人都是Excel的使用者”。

在北美这条路是走得通的,而且Airtable和Smartsheet的策略就是在蚕食微软和Google庞大的文档协同市场。反过来再看国内,互联网巨头对市场影响是巨大的,云资源和中小企业的流量都在巨头手里,以小博大,蚕食云巨头的市场非常之不易。

此外,软件工程领域有一个基础理念:设计即架构,即关键性及核心的应用,一定是需要专业人士,而非“业余选手”来主导。就如同建筑领域一样,要盖10层楼,一定需要建筑设计师和力学工程师来参与,新的技术只是帮助他们提高效率、降低门槛,但“素人”是无法取代专业人士的。

但另一方面,低代码工具的出现,降低了软件开发的技能和经验要求,行业具备了大规模培养专业人士的基础。大家如果看OutSystems、Mendix,以及微软的Power Apps,不难发现这些低代码平台,其实对使用者都有一定的编程思维能力的要求。但它们所达到的效果却是,大大降低了编程技能的门槛,让开发者可以快速完成不同类型业务场景的数字化实现,并安全稳定地运行。

低代码技术的演变

不用写代码就能开发出应用,一直以来都是企业应用开发领域终极幻想。这个幻想起源于1982年,美国科罗拉多大学波德分校的James Martin的著作《没有程序员参与的应用开发》(Application Development Without Programmers)。这一39年前的著作,预测了软件工程领域的发展趋势,而James Martin这一极具前瞻性的预测,也终于在2014年变成了行业共识。产业分析公司Forrester Research首先提出了Low-Code(低代码)的概念,之后,低代码的概念以燎原之势迅速蔓延。但低代码和无代码平台的接受度却很低,被认为是“玩具”,因此30年来虽然不乏先行者,但低代码和无代码仍然没有被主流市场认可。

转折点发生在云原生技术的兴起,美国的低代码和无代码平台在云原生技术兴起之后发生了巨大的变化。以Salesforce的Force.com为代表的aPaaS逐渐被市场认可,成为了企业服务市场的重要分支,跨越了“玩具”到“工具”的鸿沟,并成为很多新一代SaaS平台的必要地基。

从“玩具”到“工具”,这是历史的转折点。要知道早期汽车也只是富人的玩具,还是马车主宰了马路。今天各种“拖拉拽”的儿童编程平台,也是一个面向小朋友的玩具,但时代在悄然发生变化,汽车逐步替代马车的进程在悄然发生。

仔细去看硅谷这个领域的领头羊,可以发现模型化低代码平台变得能力越来越强,适用场景也越来越广,并且已经具备了服务企业复杂化业务的能力。加上疫情对全球敏捷信息化的庞大需求,低代码终于在去年迎来大规模爆发,并逐渐向主流趋势靠近。

当今模型化低代码的发展与边界

美国市场上大多数的低代码平台能够让用户创建和运行应用,这听起来很普通,但如何去支持应用的环境运行,却产生了根本性的架构差别。

传统的低代码平台采取代码生成的方式,它提供一种可视化的应用开发平台简化应用的创建。一旦创建完毕,平台就可以生成可执行代码(或可编辑的源代码),这些代码可以在Java的JVM或微软的CLR环境下运行。

新一代低代码平台的方向则是采取元数据模型的方式,提供一种可视化创建应用的环境,能够生成模型层及特定域的表达方式(Domain-Specific Representation),再通过平台去解释并直接执行应用。

这两种方式各有优劣:代码生成的方式最大的优势是能够独立于开发平台运行,同时可以提供源代码并支持以源代码级的灵活度进行修改。但本质来说,从信息系统治理的角度来看,这种操作是最不应该发生的;模型驱动的方式则是典型的云架构,用户通过各种元数据化的组合构建模型,并进行测试交互。这类平台提供了保证未来“Future-Proofing”的能力,如果更新了模型的某个部分,比如说一个权限调整,需要打了一个补丁,应用能够完全不受影响,正常运行。而对比代码生成的方式,任何类似的补丁都需要重新创建和部署应用。除此之外,元数据模型方式完全能够发挥云的优势,比如水平伸缩扩展(horizontal scalability)、按需计费(pay-as-you-go)、基于使用计费(pay-as-what-you-use)。

因此,云架构的新一代低代码平台普遍采取第二种方式,Salesforce、ServiceNow、Quickbase都是典型案例。 

那么低代码的能力边界在哪?能不能完全替换纯代码?一个新的技术出现需要经历很长的“爬坡期”,完成新技术的可商业化,就像新能源汽车替换燃油汽车。因此,我认为趋势正在发生,但需要经过一个周期,才会形成绝大多数的应用采用新技术和新平台的局面。但传统的纯代码方式,依然会长期存在,并进入到生命周期的长尾阶段。所以未来我们可以看到“低代码+纯代码”长期并存,作为组合的方式提供给客户,而客户则会按照市场规则、效率规则来选择不同的方案。

低代码在全球的发展

我在日本学习工作过,在美国也从事了很长一段时间的应用基础平台开发工作。回过头来看,美日在这个赛道的发展是非常有意思的,软件的应用基础技术领域,美日是有很多地方值得我们好好学习,好好追赶的。但国人也无需妄自菲薄,更不能狂妄自大。

2015年,我从旧金山回上海之前,特地咨询了一众美国的行业大佬,到底他们怎么看模型化应用PaaS的未来发展空间。坦率讲当时大多数我认识的专家对创业公司做这件事都是充满质疑,并不看好的。原因很简单,这事的时间周期太长,且看Outsystems和Mendix在欧洲趴在地上十多年才有起色,而且大有最后被巨头收割的趋势。例如2015年Mendix就传出要被SAP收购,结果2018年被西门子以7亿美元并购了。 

但有趣的事情发生了,去年(2020年)春节期间,我乘着假期再次和这帮老朋友们聊的时候,发现大家的态度发生了180度的改变:认为模型化、低代码会是全行业的趋势。所有的应用系统都会低代码化,不单单是低代码的创业公司,SaaS公司、RPA企业、AI企业,包括传统软件巨头SAP和Oracle都会低代码化。更重要的是,所有人都开始“坚定”地认为低代码的未来市场空间极大,这一转变非常有意思。

总结下来大家有如下三个观点:

  • Monolithic Platform即“大一统的应用系统”必将结束,此处SAP需要划个重点。当然SAP是行业精英,不可能不知道这一趋势,所以它提出了“重新崛起”(RISE)战略,而且收购了AppGravy。

  • SaaS主要代表了标准化应用(Standard Apps),及应用碎片化,这个已经被时代证明,但它不能替代SAP这一类大一统的应用系统;

  • Composable Platform即“模型化低代码平台及模型化组合式的应用平台”会逐渐成为主流,它代表着定制化应用(Custom Apps)。

最后,在美国市场,标准化应用和定制化应用的市场规模是一样大的。也就是说,对比今天美国SaaS的市场规模,低代码平台的未来市场规模有多大就不难想象了。这也解释了为什么Outsystems会突然变成了95亿美元的估值体量的公司。

再看日本市场,日本市场发生了更有趣的现象。当我和日本朋友们交流行业发展的时候,简直不敢相信自己的耳朵。之前当国内都在疯传特斯拉抛弃了SAP,用Mendix开发了一个ERP应用的时候,我特地去问了下,实际并不是这么回事。特斯拉只是用Mendix做了SAP不擅长的事,Mendix在美国的策略就是围绕SAP的Core ERP做各种灵活多变,及创新的业务的实现。

但去年(2020年)一年,日本的汽车工业基本全部低代码化了,这是在一年之内发生的。考虑到日本企业的文化,这是一个疯狂的渗透速度,而且几乎所有的低代码巨头都云集在日本市场,开始和日本本土的才望子公司(Kintone)竞争,并在核心客户上几乎是碾压式的胜利。

中国的行业发展及未来展望

美国、日本市场的发展再次证明了这个方向是没问题的,日本没有特别厉害的消费互联网巨头和云巨头,所以在本土大平台没有优势的情况下,这个赛道的核心技术就很关键,技术能力、产品能力是最后的分水岭,否则与美国的技术产品公司交锋,基本上就是被“吊打”。 

回到国内市场,国内的创业公司其实有个巨大的天然优势,就是庞大的市场体量。虽然软件的市场和美国比起来非常小,但国家经济体量巨大,而且未来成长性非常好。但不一样的是,中国的SME市场同质化竞争激烈,还有云巨头们挟云资源和流量之力,以2C化的战略来打2B市场,它们往往初期不考虑收入,只考虑日活、月活,在快速教育市场、发展市场、垄断市场之后再考虑变现。在2B领域,这种打法真心在全球都是独此一家,这一点和其他主要国家的市场都不一样。

在头部企业市场,主要玩家的困难在于,要能不以项目为主活下来,并且能不断打磨产品,只有产品力足够好才能立于不败之地。但这个市场的客户群和日本一样,都用过最好的产品,了解最好的技术,需求也非常复杂,要求也非常苛刻,没有金刚钻揽不了瓷器活。因此我们希望能做出一些自己的努力,也希望今年能够在海外市场和美国的同类产品过过招,当作在“战斗中成长”。

结语

我和朋友们常说,虽然有很多坎坷,但最大的幸运在于能够亲历一个行业的周期。低代码这个赛道真正起步是在2015年,我们看到了这个赛道的种种发展,从蛰伏期进入到快速发展的爬坡期,而且会经历到泡沫期,最后形成一个成熟行业,沉淀下来一两家优秀的企业。我也相信这个过程中,会诞生出能够比肩美国的中国产品和企业。


胡柏,ClickPaaS创始人,上海交通大学计算机系硕士,曾加入甲骨文从事企业信息化架构咨询,服务超过20家国内大型客户,并成功交付了43个跨国企业数字化转型项目。对企业信息化架构和应用构建有着丰富的经验积累和行业理解。2015年回国创建ClickPaaS,推动应用PaaS技术在中国企业数字化进程的落地。

从 Unix 开发者 Brian W. Kernighan,到 OpenCV 创始人 Gary Bradski,再到 Vue.js 作者尤雨溪……新《程序员》第一期以「开发者的黄金十年」为主题,与多位国内外知名的技术领袖和新锐代表进行了深度对话,希望为中国开发者打开新时代的「机遇之窗」。

除了技术引领,我们也希望透过技术对行业进行深入洞察。因此,新《程序员》第一期也邀请到了来自快手、滴滴、贝壳找房、作业帮等知名企业的技术负责人,用案例实践为读者阐述直播、出行、居住、在线教育等多个行业变革背后的技术架构和技术引擎。

《新程序员·开发者黄金十年》正式发布

由近百位专家参与、经数月打磨后,《新程序员001:开发者黄金十年》面向所有开发者正式官宣发布!不仅包含了开发者们一如既往期待与喜爱的全球技术大师深邃思考、优秀开发者技术创造等深度内容,更以数字多媒体的新形态让开发者们随时随地阅读、观看,带来视频图文的多重体验。

用一位开发者和我们说的话来表达:“当年的那个《程序员》回来了!”

当年的那个《程序员》不仅回来了,而且洋溢着新的活力。

加入新程序员读者俱乐部:

移动端的同学也可以扫码下方二维码加入

 

相关推荐
提供的是书中的源代码,非课后练习源代码。 本版本是高清版,是第1版第18次印刷,是书签最全最好的版本。 基本信息 原书名: The C++ Programming Language, Special Edition 原出版社: Addison Wesley 作者: (美)Bjarne Stroustrup 译者: 裘宗燕 丛书名: 计算机科学丛书 出版社:机械工业出版社 ISBN:7111102029 上架时间:2002-7-12 出版日期:2002 年7月 页码:936 版次:1-1 内容简介    本书介绍了标准c++以及由c++所支持的关键性编程技术和设计技术。标准c++较以前的版本功能更强大,其中许多新的语言特性,如名字空间、异常、模板、运行时类型声明等使得新技术得以直接应用。本书围绕语言及库功能来组织,内容涉及c++的主要特征及标准库,并通过系统软件领域中的实例解释说明一些关键性的概念与技术。 本书的目的就是帮助读者了解c++是如何支持编程技术的,使读者能从中获得新的理解,从而成为一名优秀的编程人员和设计人员。适合做高校面向对象编程课程的教科书,也可作为c++爱好者的参考书。 [center] [a href=http://www.china-pub.com/main/sale/c++tb.htm target=_blank]c++之父bjarne stroustrup博士专访[/a]    [a href="http://www.is.pku.edu.cn/~qzy/cpp.htm" target="_blank"]《c++程序设计语言》程序的更正和更新[/a]    [a href="http://www.china-pub.com/temporary/list/cooperate/zipdownload/zg.zip" target="_blank"]本书忠告[/a] [/center] 作译者 作者: Bjarne Stroustrup Bjarne Stroustrup现任AT&T实验室的大型程序设计研究部的主管。1990年,Bjarne荣获《财富》杂志评选的“美国12位最年轻的科学家”称号。1993年,由于在C++领域的重大贡献,Bjarne获得了ACM该年度的 Grace Murray Hopper大奖并成为ACM院士(成立于1947年的ACM协会是历史最悠久、目前世界上最大的教育和科学计算协会,成为ACM院士是个人成就的里程碑)。1995年,BYTE杂志颁予他“近20年来计算机工业最具影响力的20人”的称号。 [同作者作品] C++ 程序设计语言(特别版)(英文影印版) C++语言的设计和演化[按需印刷] C++程序设计语言(特别版) 译者: 裘宗燕 知名译者,翻译严谨,喜与读者交流。   裘宗燕教授是北京大学数学学院信息科学系的,关心的主要学术领域包括计算机软件理论、程序设计方法学、程序设计语言和符号计算。已出版多部著作和译著,包括《程序设计语言基础》(译著,1990),《Mathematica数学软件系统的应用与程序设计》(1994),《从问题到程序——程序设计与C语言引论》(1999) [同作者作品] 计算机基础教程(上下)(文科类)(裘宗燕等) 数据结构——C++与面向对象的途径 数据结构--C++与面向对象的途径(修订版) 目录 出版者的话 专家指导委员会 中文版序 译者序 序 第2版序 第1版序 导 论 第1章 致读者 3 1.1 本书的结构 3 1.1.1 例子和参考 4 1.1.2 练习 5 1.1.3 有关实现的注记 5 1.2 学习c++ 6 1.3 c++ 的设计 7 1.3.1 效率和结构 8 1.3.2 哲学注记 9 1.4 历史注记 9 1.5 c++ 的使用 11 1.6 c和c++ 12 .1.6.1 给c程序员的建议 13 1.6.2 给c++程序员的建议 13 1.7 有关在c++里编程的思考 14 1.8 忠告 15 1.9 参考文献 16 第2章 c++概览 19 2.1 为什么是c++ 19 2.2 程序设计范型 19 2.3 过程式程序设计 20 2.3.1 变量和算术 21 2.3.2 检测和循环 22 2.3.3 指针和数组 23 2.4 模块程序设计 23 2.4.1 分别编译 24 2.4.2 异常处理 25 2.5 数据抽象 26 2.5.1 定义类型的模块 27 2.5.2 用户定义类型 28 2.5.3 具体类型 29 2.5.4 抽象类型 31 2.5.5 虚函数 33 2.6 面向对象的程序设计 33
提供的是本书的课后习题源代码,也就是《C++程序设计语言(特别版)题解》的源代码。非书中源代码。 本版本是高清版,是第1版第18次印刷,是书签最全最好的版本。 基本信息 原书名: The C++ Programming Language, Special Edition 原出版社: Addison Wesley 作者: (美)Bjarne Stroustrup 译者: 裘宗燕 丛书名: 计算机科学丛书 出版社:机械工业出版社 ISBN:7111102029 上架时间:2002-7-12 出版日期:2002 年7月 页码:936 版次:1-1 内容简介    本书介绍了标准c++以及由c++所支持的关键性编程技术和设计技术。标准c++较以前的版本功能更强大,其中许多新的语言特性,如名字空间、异常、模板、运行时类型声明等使得新技术得以直接应用。本书围绕语言及库功能来组织,内容涉及c++的主要特征及标准库,并通过系统软件领域中的实例解释说明一些关键性的概念与技术。 本书的目的就是帮助读者了解c++是如何支持编程技术的,使读者能从中获得新的理解,从而成为一名优秀的编程人员和设计人员。适合做高校面向对象编程课程的教科书,也可作为c++爱好者的参考书。 [center] [a href=http://www.china-pub.com/main/sale/c++tb.htm target=_blank]c++之父bjarne stroustrup博士专访[/a]    [a href="http://www.is.pku.edu.cn/~qzy/cpp.htm" target="_blank"]《c++程序设计语言》程序的更正和更新[/a]    [a href="http://www.china-pub.com/temporary/list/cooperate/zipdownload/zg.zip" target="_blank"]本书忠告[/a] [/center] 作译者 作者: Bjarne Stroustrup Bjarne Stroustrup现任AT&T实验室的大型程序设计研究部的主管。1990年,Bjarne荣获《财富》杂志评选的“美国12位最年轻的科学家”称号。1993年,由于在C++领域的重大贡献,Bjarne获得了ACM该年度的 Grace Murray Hopper大奖并成为ACM院士(成立于1947年的ACM协会是历史最悠久、目前世界上最大的教育和科学计算协会,成为ACM院士是个人成就的里程碑)。1995年,BYTE杂志颁予他“近20年来计算机工业最具影响力的20人”的称号。 [同作者作品] C++ 程序设计语言(特别版)(英文影印版) C++语言的设计和演化[按需印刷] C++程序设计语言(特别版) 译者: 裘宗燕 知名译者,翻译严谨,喜与读者交流。   裘宗燕教授是北京大学数学学院信息科学系的,关心的主要学术领域包括计算机软件理论、程序设计方法学、程序设计语言和符号计算。已出版多部著作和译著,包括《程序设计语言基础》(译著,1990),《Mathematica数学软件系统的应用与程序设计》(1994),《从问题到程序——程序设计与C语言引论》(1999) [同作者作品] 计算机基础教程(上下)(文科类)(裘宗燕等) 数据结构——C++与面向对象的途径 数据结构--C++与面向对象的途径(修订版) 目录 出版者的话 专家指导委员会 中文版序 译者序 序 第2版序 第1版序 导 论 第1章 致读者 3 1.1 本书的结构 3 1.1.1 例子和参考 4 1.1.2 练习 5 1.1.3 有关实现的注记 5 1.2 学习c++ 6 1.3 c++ 的设计 7 1.3.1 效率和结构 8 1.3.2 哲学注记 9 1.4 历史注记 9 1.5 c++ 的使用 11 1.6 c和c++ 12 .1.6.1 给c程序员的建议 13 1.6.2 给c++程序员的建议 13 1.7 有关在c++里编程的思考 14 1.8 忠告 15 1.9 参考文献 16 第2章 c++概览 19 2.1 为什么是c++ 19 2.2 程序设计范型 19 2.3 过程式程序设计 20 2.3.1 变量和算术 21 2.3.2 检测和循环 22 2.3.3 指针和数组 23 2.4 模块程序设计 23 2.4.1 分别编译 24 2.4.2 异常处理 25 2.5 数据抽象 26 2.5.1 定义类型的模块 27 2.5.2 用户定义类型 28 2.5.3 具体类型 29 2.5.4 抽象类型 31 2.5.
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页