魏永明:少谈情怀少作秀,多写代码多创新

简介: 魏永明:少谈情怀少作秀,多写代码多创新
魏永明,清华大学工学学士、硕士,飞漫软件创始人,开源软件杰出贡献人物。1999年发布知 名开源软件 MiniGUI并持续研发至今。出版有《Minicul 剖析》、《Linux 设备驱动程序》(二、三版)等技术著作。2018年11月,发起合壁操作系统开源协作项目。 2020 年8月,领街撰写国内第一部码农体长篇小说《考鼎记》并在线发表。2020年8月,提出并开发全新编程语言HVML。

本文首发自魏永明公众号:考鼎录,以下为文章全文

目前国内有一种风气,搞软件的言必谈开源,还有人强调,开源协作是软件开发模式的一种创新。中国最早的开源项目 MiniGUI 开发者、HVML 编程语言发明人、合璧操作系统架构师、开源软件杰出贡献人物魏永明,拥有 30 年的基础软件开发经验,深谙开源之道,谈到开源时感慨万分。他说:“开源,的确是一个世界级浪潮。但大多数人被这个浪潮裹挟着往前走,人云亦云,很少有人仔细去思考开源到底是什么。甚至有人认为开源是拯救中国基础软件甚至是所有软件产业的救命稻草,我觉得言过其实了。我认为开源本质上就是一种软件的分发手段,大家不要去神话它。”

首谈开源垃圾

魏永明指出:大家都说开源好,但实际情况也不尽然,任何事物都有两面性,开源也不例外,这几年,开源的坏处越来越多地展现了出来:

  1. 出现很多大量低水平复制其他开源软件设计思想甚至代码的开源软件,质量参差不齐,魏永明称之为“开源垃圾”。举个栗子,JSON 解析器,在互联网上可以搜到大大小小的 JSON 解析器十几种甚至是几十种的实现,大同小异,没有任何的价值。面对这么多良莠不齐的开源软件,大家怎么去分辨和评价它的优劣?这就要花费更多的时间和精力去辨别。
  2. 很多使用广泛的基础开源软件得不到良好的维护。例如,有 20 多年历史专门用来压缩、解压缩的函数库 zlib,处于无人维护的状态。还有一些软件维护特别吃力,发现安全漏洞也迟迟没有人去解决,即使有人解决了也不会回馈给开源社区。
  3. 更为恶劣的是故意在开源软件里面遗留隐藏很深的缺陷或者漏洞。2020 年 Linux 内核就出现过一次这样的事故:一个中国人在美国做一项调查,目的就是看开源社区的治理是否能拦住一些恶意的代码。结果开源社区没拦住,恶意代码堂而皇之地登堂入室,后来被发现了,此事上升为很恶劣的道德事件。

拧巴的关系:大投入与难发展

魏永明指出国内的开源运动有一个很有意思,但其实很拧巴的现象:一方面,高科技公司在开源软件方面投入很多人力物力和财力,尤其是以互联网大厂为代表。像华为,BAT 等这些大型互联网公司有专门的团队在做开源软件相关工作,比如维护 Linux 内核、维护 Linux 发行版等,每年的投入轻松超过亿元规模。但另一方面,软件的价值却越来越无法用直接的软件许可或者服务收入来衡量。很多开发自主基础软件的公司,很难从市场上获得它期望的收益。魏永明说道:“看一看我国的上市公司,几乎没有一家公司的主要利润来源于自主开发的基础软件。”

软件的价值取决于技术和市场,而非是否开源

魏永明指出:我们总是在说开源,甚至为了开源而开源,但是有没有想过开源软件怎么生存?如果生存都成了问题,那么开源就是无源之水,无本之木。软件要想具有生命力,能够长期持续健康发展,首先要思考几个问题:软件的竞争优势在哪里?软件的用户价值在哪里?软件的市场价值在哪里?如果这几个问题没有答案,那么不好意思,虽然软件开源听起来好像很高大上,但是有多少人会去下载,有多少人会去看代码,又有多少人会去提交缺陷报告,甚至是帮你去修正里面的错误呢?非常少。看看国际知名开源软件的情况,所有直接或间接被经济利益驱动的开源项目都发展得相对比较成功,如 Linux、Chromium、MySQL、Qt、MongoDB 等,而那些没有间接或直接的经济利益驱动的开源软件,典型的如 LibreOffice 和 FireFox,则发展缓慢,步履维艰。魏永明说:“这揭示了一个非常重要的秘密:开源软件作为一项技术或产品,其发展也要遵循同样的市场竞争规律,开源也解决不了软件是否有市场竞争力的问题,单凭情怀和激情是难以为继的。因此,我非常不赞同现在言必谈开源,甚至忽悠大家为情怀而无偿贡献开源的说法和做法。凭一时的热情永远做不了长久的事情,尤其是软件,它必须要靠持续的投入和维护才有可能有未来。”

正确看待开源

魏永明指出:软件开源之路很漫长,我们要正确看待开源。他说:“开源的本质只是一种软件的分发方式。如果你开发一个软件的目的是为了赚钱,那开源这个软件的行为,通常应该被定义为一种营销手段——希望通过开源的方式来让潜在用户或客户快速地用起来。但现实的情况是,我们强调开源以及所谓开源社区治理等等高大上的概念时,忘了一项技术或者一个产品,能否得到广泛应用,首先要考虑的是市场是否有这个需求,或者这项技术、这个产品,能否给用户带来切实的好处。其次是如何直接或者间接从这项技术或产品上获得开发和维护的资金。”

基础软件的开源

前几年物联网很热闹,国内很多大厂纷纷推出了自己的物联网操作系统。魏永明一针见血地指出:这些物联网操作系统,代码规模不大,技术路线雷同,乏善可陈,但仍然有一些社区或者开发者,乐此不疲地开发新的物联网操作系统,只为借开源和国产操作系统的营销风儿搞个噱头。这种做法,其结果一定是产生了更多的开源垃圾而已,并不能促进开源软件的进步和发展。而基础软件,其本质是工具。因此,在基础软件领域,如果一项新的技术或者产品,不能用来提高生产效率,解放生产力,那一定不是好的技术或产品。魏永明对国内那些鼓吹开源的人们大声呼吁:“少谈开源和社区治理,少开点会,少作秀,多花些精力研究市场需求和用户价值,多花些功夫在技术和产品上。”

不务虚名,魏永明在行动

2020 年 7 月,魏永明提出了一个全新的编程语言 HVML,并公开了相关的规范。魏永明认为:一个操作系统区别于其他操作系统最为重要的技术特征就是围绕某个特定编程语言形成的应用开发框架和编程接口(API)。他将这个技术特征比喻为操作系统的基因。要设计一个全新的操作系统,就必须在某个编程语言基础上设计一套完备的、可扩展的、易用的应用编程接口,而 HVML 就是魏永明为正在开发中的下一代操作系统“合璧操作系统”而设计的全新编程语言。HVML 和我们知道的很多编程语言,比如 Basic、Python、C/C++ 之类的完全不同,HVML 提出了一个数据驱动的概念,而代码里边也没有 if-then,do-while 之类的流程控制语言,所有的操作都基于数据。简单而言,HVML 是全世界第一个可编程的标记语言。魏永明解释说:他不喜欢重复别人的道路,比如做一个类似苹果 Swift 或者谷歌 Dart 那样的编程语言;要做就做点不一样的东西。2021 年 7 月,魏永明成立了一个攻坚团队,正式开始了 HVML 解释器(PurC)的开发。2021 年 8 月,魏永明通过”开源操作系统百家谈“公众号发表 HVML 的开发月报,向关注 HVML 的人们汇报相关研发进展。根据目前的进度预测,我们马上就可以看到 HVML 程序运行起来的样子!2021 年 8 月,魏永明看到国内基础软件的薄弱现状,他,作为千千万万码农中的一员,响应国家大力提倡的自主创新的号召,想以一己之力呼唤起千万人的担当与责任,凭借自身三十年的代码经验,毫无保留地推出微信视频号“考鼎录”。“考鼎录”收录了魏永明关于基础软件、编程语言、软件设计的思考和教程,上线后每一期都被微信视频号推荐,受到人们的青睐。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
11天前
|
机器学习/深度学习 人工智能
技术人的四大「造神」学习法,为啥就没人好好用呢?
技术人的四大「造神」学习法,为啥就没人好好用呢?
15 2
|
2月前
|
敏捷开发 程序员 测试技术
《高效率程序员的45个习惯》读后小总结
《高效率程序员的45个习惯》读后小总结
13 0
|
9月前
|
人工智能 JSON 缓存
身为程序员,你有哪些提高写代码效率的黑科技?
身为程序员,你有哪些提高写代码效率的黑科技?
|
11月前
|
SQL XML 前端开发
别再学了!这些技术已经被淘汰了,少走点弯路。。。
别再学了!这些技术已经被淘汰了,少走点弯路。。。
|
11月前
发散性思维(一)——通过变通和联想来解决问题
发散性思维(一)——通过变通和联想来解决问题
69 0
发散性思维(一)——通过变通和联想来解决问题
|
11月前
|
NoSQL Java 程序员
要学的东西太多,自己能力不足,很焦虑怎么办
总有人问我,兔哥,现在java要学的知识点这么多,记不住,怕学不精很焦虑怎么办? 这是很多初学者都有的痛点。 其实吧,你可以试试贪多而不必嚼烂。
138 0
|
Java Spring
9条消除if...else的锦囊妙计,助你写出更优雅的代码(下)
9条消除if...else的锦囊妙计,助你写出更优雅的代码(下)
|
设计模式 算法 Java
9条消除if...else的锦囊妙计,助你写出更优雅的代码
9条消除if...else的锦囊妙计,助你写出更优雅的代码
|
Dubbo Java 应用服务中间件
面对枯燥的源码,如何才能看得下去?
一个软件开发人员,工作到了一定的年限(一般是3、4年左右),如果他还没学会阅读源码,那么他就会遇到瓶颈。因为到了这个时候的开发,他应该不仅仅只会做那些 CURD 的业务逻辑,而应该会根据公司的实际情况去写框架。
747 0

热门文章

最新文章

相关实验场景

更多