通过开源创新打造我国计算机编程语言体系
2021-06-04隆云滔中国科学院科技战略咨询研究院
■文/隆云滔(中国科学院科技战略咨询研究院)
数字经济的发展对数字技术提出了更高要求。美国对华技术封锁,凸显了技术生态自主可控的重要性。当下我国计算机语言生态体系的构建与编程教育的创新尤为迫切。计算机编程语言体系的全方位打造既是历史的选择也是时代使然。通过开源开放创新模式打造我国自主特色的计算机语言体系,将计算机语言的少儿编程教育纳入国民基础教育体系,对构建自主信息技术生态具有重要的战略意义和价值。
数字经济已成为经济发展的主战场,数字经济的底层支撑是信息化技术。纷繁复杂的各类信息化应用,不论是传感探测、网络传输,还是数据存储、数据检索和处理等,其底层支撑都可归到软件或硬件两大类型。硬件以大规模集成电路和芯片等为核心,软件以操作系统、计算机语言及配套编译环境等为基础。硬件和软件相互配合支撑应用,共同构成数字经济的底层技术生态。我国当前大力推进的新基建正是试图将信息生态的底层软硬件基础设施化,作为上层应用的基础,为新应用、新模式、新产业的创新提供生态支持。
自计算机面世以来,几乎所有的开发语言如C/C++,Java,Python,Swift,Scratch等都产自国外。我国高等教育所采用的编程语言几乎都源自国外,而随着计算机教育在中小学的普及,中小学校和中小学生培训机构广泛使用的教学语言Python、Swift、Scratch也都是国外语言。尤其令人担忧的是,我国工业软件市场长期被欧美软件巨头严重垄断,计算机语言受制于人的威胁已开始显现。2018年,被我国乃至全球互联网行业广泛使用的Java语言开发平台服务商甲骨文(Oracle)公司宣布,“2019年1月之后,如果没有商业许可证,Java SE 8平台将不会再收到公开更新,也将无法用于商业或生产用途”。在此之前的版本,虽然还可免费使用,但甲骨文公司不会再提供最新的安全修补程序更新,甲骨文公司也不建议将这些版本用于生产。虽然除了甲骨文公司提供的Java开发平台外,还有开源的Open JDK可作为Java开发平台免费使用(其背后维护者也是甲骨文公司),但此事对软件开发界还是造成了较大冲击——使用了20多年的开发环境,说不让用就不可用了,这就是受制于人的宿命。
美国近年来逐渐加强了对华技术封锁,进一步凸显了信息技术生态自主可控的重要性和紧迫性。通过开源开放创新模式打造我国自主特色的计算机语言体系,将自主语言的少儿编程教育纳入国民基础教育体系,对构建自主技术生态具有重要的战略意义和价值。
一、我国计算机编程语言发展的重要性和紧迫性
经过30多年的快速发展,我国互联网商业模式经历了从跟进、学习到创新、引领的发展过程,目前已和全球最领先的国家美国并肩成为全球互联网应用最重要的两极,所取得的成绩举世瞩目。但与高度发达的互联网产业不相称的是,国产计算机语言缺位严重。各类培训机构培养的信息技术人才几乎没有使用国产计算机语言的,各类招聘网站所罗列的计算机开发语言技能要求,也没有国产语言的踪影。而且,到目前为止,我国不论是政府还是民间,在芯片、操作系统等研制领域已投入大量资金和人力,并出台了不少支持政策,争取尽快走出“缺芯少魂”的不利局面。但计算机编程语言似乎仍处在被人遗忘的角落——这是一个亟待改变的处境。2018年中美贸易摩擦以来,处于技术后发地位的中国在关键核心科技领域受制于人所产生的不利影响,再加上2020年美国不断升级对华先进技术封锁、断供我国全球领先的信息技术企业,信息产业面临的国家安全威胁正在变成现实的利益损害。在全球经济发展放缓以及国际科技环境逐渐恶化的大背景下,我国于2020年5月首次提出“构建国内国际双循环相互促进的新发展格局”,其中“以国内大循环为主体”的定位,进一步强调了产业链完备和关键核心技术自主可控对国家利益的重要性。那么,对计算机语言而言,自主可控需要从产业链培育入手,需要从教育培训抓起。如此,不论从国家安全出发,还是从民族自豪感需要,迫切需要有一款国产计算机语言,走入中小学和高校的课堂、走进软件开发行业,肩负起信息化大国应有的担当。因此,我们迫切需要打造国家自主可控的计算机编程语言体系。
二、青少年编程教育语言概况
从少儿编程语言发展历程来看,由计算机和软件编程语言先驱、美国麻省理工学院教授西蒙·派珀特(Seymour Papert)于1960年代发明的LOGO(小海龟)语言是少儿编程语言的先驱,可视为少儿编程语言的1.0版本。LOGO语言承载了计算机语言先驱们关于编程教育的理念和期望:“编程最重要的不是学习所谓的知识,而是通过编程来改变思维模式”。在这种理念下创立的LOGO语言简单、优美、功能强大,而且有利于培养编程思维,十分适合中小学生的计算机教育。
由麻省理工学院米切尔·瑞斯尼克(Mitch Resnick)教授带领的“终身幼儿园团队”在2006年设计开发的“积木拖拽式”编程语言Scratch,可视为少儿编程语言的2.0版本。作为西蒙的学生和思想的继承者,米切尔创造的Scratch以图形化编程的方式让编程对儿童更形象有趣,其提出的“终身幼儿园”让计算机先驱们关于编程教育的理念更容易为大众所理解。相比LOGO,Scratch的优势在于更“好玩”,图形化编程有更佳的乐趣体验,容易吸引青少年参与学习。但Scratch的不足也在于“图形化编程”,这种界面很容易掩盖背后的编程思想,缺乏真正编程语言的灵活性和抽象性,对于通过编程的学习来训练抽象思维能力帮助有限。
就目前的市场发展情况来看,LOGO早在1990年代就已实现了界面中文化并进入中国市场,曾是少儿编程的主流语言。但目前Scratch已是国内少儿编程课程使用的主流软件,甚至还被纳入江苏、河南、湖北、广东、浙江等省市的小学信息技术教科书中。但作为在线交流的Scratch社区,存在大量辱华内容,并不适合面向全国中小学生推广使用,少儿编程语言的本土化愈发显得重要。
三、计算机编程语言创新生态构建
自中美贸易摩擦持续扩大和升级以来,我国在芯片、操作系统等底层核心技术领域受制于人的情况,成为我国产业安全和国家安全的极大威胁。华为公司以及TikTok和微信等App被美国封锁的遭遇只不过是这种威胁的变现而已。关键核心技术求不来,买不来,必须自主掌握,否则必将受制于人。计算机编程语言的创新生态构建是一个长期而艰巨的系统工作。编程创新生态的打造需要各方协同努力突破。在西方主导计算机编程基础架构的世界,要建立一套自主研发的计算机语言体系并非易事。从我国早期开发的“易语言”等的应用到推广,不难看出自主创新的计算机语言体系的研发与应用的挑战。
(一)计算机编程语言创新环境和路径分析
当前主流的计算机编程语言大多由美国等西方国家主导,而目前全球几乎所有的基础软件都是建立在“美国技术体系”之上的。因此,我们一方面必须正视美国信息技术产业的强大,但同时也要加大对我国计算机编程语言创新环境的构建,分析可能的实现路径。当下数字化快速转型,不难发现我国在行业定制化软件方面的基础是中国发展软件生态的锚点。在数字化转型、智能化发展的时代机遇中,我们有机会改变现有格局,但面临更大的挑战,需要国家整体推动,行业齐心发展方能成功。
要打造自主创新的语言,除了鼓励企业开发自主创新语言外,还需要打造一个自主的生态底座。在信息技术领域,由于现有市场生态几乎全依赖国外(尤其是美国)技术所建立,要想推出自主可控的的国产品牌,除了要有过硬的技术生产出尖端产品外,还离不开市场生态的支持。国产CPU至今未能突破X86体系所形成的商业壁垒、形成可与之抗衡的局面,产业生态难以构建是最根本的原因。要实现自主可控,除了要有生产技术,还得有市场生态。CPU如此,操作系统如此,计算机编程语言也是如此。因此,鼓励企业自主研发编程语言体系,需要强大的应用市场做支撑。
编程语言用户的培育,是打造自主生态的重要一环。从低龄儿童开始、从中小学生开始,利用自主计算机语言培养编程能力和创造能力,让他们逐渐成长为具备创造性思维和拥有编程技能的新型科技人才,同时还有助于提高自主语言的用户粘性。这是自主计算机语言得以发展并培育出本土生态的可行路径。如此,我们才可能在现代科技发展中有自己的“语言”土壤,可与世界进行深度广度的交流,做出我们对世界文明的贡献。
在培育本土编程教育生态上,还可大力支持高校毕业生成为中小学生(包括混龄班)编程指导老师以填补计算机语言师资短缺问题,这将有助于他们在教学相长中学会真正控制计算机、网络和人工智能的能力,成为人工智能的主宰而不被机器人和人工智能所代替。
(二)开源助力中小学编程教育生态的打造
开源是未来软件的主导方向,“无开源不软件”几乎成为业界共识。开源软件的盛行给我国自主研发编程语言体系提供了宝贵的发展契机。Python、Scrach语言的开发平台在全球最大的开源代码托管平台Github上均有账户,也说明了开源的重要性。在中小学编程教育生态构建上,可立足于自主研发的编程语言及交流学习平台,结合我国自主建设的开源社区(如码云Gitee)作为软件代码的托管平台,运用开源软件的运营模式,积极推动青少年编程学习和交流。同时还可加强与国际同行的交流,共同推动我国自主研发语言的开发与应用。
在软件人才培养上,加强开源理念与开放意识的培养,通过开源社区的建设与运维,与全球开发者共同建设一个开放、多元与架构包容的软件生态体系。此外,建设运营开源软件基金会,借鉴国外成功开源基金会的运营经验与方式,创建并运营好我国开源社区。借助我国自主原创的开源社区平台的建设,培养一批又一批优秀的软件开发者,从而推动我国计算机语言编程体系建设。
四、结论与展望
计算机编程语言体系的构建,需要从中小学编程教育体系的改革入手。虽然我国已在政策层面引起重视,不少省份已将编程教育纳入基础教育体系,但从整个国家的教育导向来看,相比国外科技发达国家,我们在编程教育领域的投入还远远不够。在原创自主创新的计算机编程语言体系生态打造上,应以工业设计制造、核心关键技术突破等为起点,从“娃娃”抓起,将编程教育课程纳入中小学核心教育体系,从小培养学生的编程思维与工程架构能力,守护孩子们的好奇心,培育创新的种子。
在“软件定义一切”的未来,尤其是第四次工业革命的发展契机,守护好孩子们的智慧源泉,通过编程教育进一步激发创新活力与动力,孕育未来的科技大师与工匠家。未来在计算机编程语言体系构建上,选择开源路径应被视为一个非常重要的战略决策。开源是当今经济中不可否认且至关重要的一部分,为全球大多数商业提供了重要基础。成千上万的开源软件包是贯穿整个供应链的生产应用程序,因此,迫切需要充分发展好并运用好开源生态的优势,促进我国计算机语言体系的研发。