未来-中国要不要有自己的编程语言

    坦白讲,这会是一个非常有争议的话题。在世界大同的今天,中国要不要开发出自己的编程语言?这是否必要?

    在构思这个问题的时候,原本以为中国是没有自己的编程语言的。但在仔细查询确认后,发现有一款名为“易语言”的编程语言。这款语言最早可以追溯到2000年,是一款采用中文编写程序的语言。即语法部分采用中文表达,这也是其饱受争议的主要原因。在绝大多数开发工程师看来,这种以中文作为语法基础的编程方式完全没有必要。除了大家都已经习惯了英文语法外,从编译原理看,其词法分析就是构建在对每个字符的分析处理基础上,一个英文字符只占一个字节,而一个中文则至少占了2个字节,损耗不少。但我们也有看到一部分人会认同“易语言”。这些人英文水平较弱,他们会很享受中文编程给其带来的便利感觉。比如一个小学生,其英文不太好,逻辑思维也没有完全建立起来。但看到可以用中文来编写程序,学习起来障碍很低,于是就开始喜欢上编程。凭借这个兴趣,孩子最终通过学习其他编程语言进入职场,是一件善莫大焉的事情。笔者过去从未注意到过这类用户的需求,但看到易语言直到今天仍有用户,足矣证明其存在的合理性。在这里,我们就不进行深入讨论了。

    在这里,我想探讨的是一个由中国或中国人发明的,能够在世界范围内得到较广泛应用的编程语言。先说说我的答案,我认为中国未来应该有一款这样的编程语言。下面说说我的认知理由。

    中国的计算机软件产业比西方国家起步晚,很多软件早期的问题,伴随着产业的发展已经被西方国家发现并解决了。比如:计算机需要操作系统、数据存储需要数据库等,这些软件概念以及基础理论都是由西方国家构建起来的。但伴随着中国软件技术几十年的蓬勃发展与积累,中国现在储备了大量的软件技术人才,在各个领域也逐步构建起了高水准的软件产品,如:红旗Linux、鸿蒙操作系统、TiDB等。中国正在努力减小与西方国家软件水平上的差距,在每个软件产品品类中都试图构建一种或多种可替代产品。

    因此,我认为中国也应该有一款编程语言出现了。这个论调与软件技术主张的开源、共享等理念显的有些冲突。就开发者而言,更不应该唯某种开发语言论,应该是能用的开发语言就是好的开发语言,不要重复造轮子。但我们也看,这个世界除了强调协作、共享外,还有竞争。如今美国对中国的技术封锁仍在,目前虽未波及到编程语言领域,但拥有一个替代品,在战略上总还是有意义的。除去竞争方面的考虑外,其实更大的原因是中国软件产业发展了几十年了,也应该有一款相对通用的开发语言了,这更多是一种国家软件技术发展水平的体现。

    当然我们也不主张为了拥有一种编程语言而强行发明一种编程语言。这样的编程语言缺乏用户基础,无法得到用户的认可,没有使用者,这样的编程语言发明的再多也没有用。关于发明何种编程语言,笔者曾经跟一个业界资深朋友一起探讨过。我们可以看到,绝大多数新流行的编程语言一定是对之前的编程语言有了很深刻理解,为其设置了很多程序员喜欢的、区别于其它开发语言的语法糖。这些语法糖带有明显的编程语言特色,吸引着早期用户使用。至于编程语言是否能够获得大范围普及则需要一点点运气成分了。看看过去几年编程语言兴起的例子,以Spark、Flink为代表的分布式大数据计算框架的兴起带火了Scala语言;深度学习的兴起带火了Python语言;Docker、K8S的兴起带火了GO语言等。那么在哪个机会里能够再次带火一种编程语言呢?朋友的看法是在云原生开发领域存在机会。云端的开发生态有别于传统开发生态,因此有机会伴随云的特点构建起一种新的开发语言。

    除去通用的编程语言外,其实发明一些特定领域专用的编程语言也未尝不可。比如SQL就是一种典型领域编程语言,其特定用于数据查询的应用场景中,通用性、流行性非常广泛,为全世界的开发工程师们所熟知。特定领域的编程语言由于是面向特定环境的,因此,其可以适当减弱通用语法能力,而加强其专业相关的语法设计。这样更容易形成语法糖,为使用者所接受。比如:某特定领域的可视化编程可以成为一个方向。

    中国的软件产业发展和积累到今天,各项条件都已基本成熟。呼吁有梦想、有能力的工程师们,不管是替代品也罢,软件技术发展水平体现也罢,不妨开始勇敢尝试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB 设置账号密码_mongodb设置用户名和密码

MongoDB 设置账号密码_mongodb设置用户名和密码 1、安装 安装可以看我这篇文章:https://blog.csdn.net/u014641168/article/details/123937775 2、说明 由于默认安装的MongoDB是没有设置用户密码的,极其危险,所以需要设置一下用户密码 3、创建用户 用Navicat15连接Mon…

三、nginx代理功能

目录 SQUID代理服务器配置安装squid编辑squid配置文件 定义拒绝访问启动squid服务 linux客户端配置linux客户端配置正向代理测试http代理服务器上查看日志/var/log/squid/access.log windows 也可以配置网页代理 SQUID代理服务器配置 安装squid yum install squid -y 编辑squ…

c#自动更新升级工具

c#更新工具,wpf开发,所有windows桌面程序均可使用,基于.net 4.0,最低支持windos xp系统 更新工具优点 使用简单批量更新跨版本更新数据备份手动还原数据体积小 程序更新使用效果 使用简单 只需添加两个类,以及三个路径的指定,就可以从任何地方下载更新包,并解压到主程序目录…

AI人工智能虚拟现实行业发展分析

AI人工智能和虚拟现实是当今科技领域最受关注和研究的两个领域。这两项技术的迅速发展给各行各业带来了巨大的变革和机遇。在过去的几年里,AI和虚拟现实已经取得了显著的进展,并且有着广阔的发展前景。 AI人工智能作为一种模拟人类智能的技术&#xff0…

openEuler22.0.3安装oracle11.2.0.4报错总结

openEuler是CentOS8系列魔改来的 1.xstart无法打开报错x11拒绝转义 yum install *x11* vi /etc/ssh/sshd_config X11Forwarding yes systemctl restart sshd 2.执行runinstaller报错,无论是直接无法打开界面报错: when installed in the jdk 1.2 Linux 还是打开界面报错: no o…

探索检索增强生成(RAG)技术的无限可能:Vector+KG RAG、Self-RAG、多向量检索器多模态RAG集成

探索检索增强生成(RAG)技术的无限可能:VectorKG RAG、Self-RAG、多向量检索器多模态RAG集成 由于 RAG 的整体思路是首先将文本切分成不同的组块,然后存储到向量数据库中。在实际使用时,将计算用户的问题和文本块的相似…

c++学习:智能指针的底层作用原理+用法

目录 智能指针作用原理 作用 原理 模仿int*类型的智能指针 模仿所有类型的智能指针(模板) 共享智能指针类 思考;如果多个智能指针同时指向同一个堆空间,怎么只执行一次析构函数进行释放空间 (共享智能指针类&…

在VS Code中安装Copilot与安装其他扩展的方法一样,只需简单几步

GitHub Copilot是由OpenAI和GitHub开发的人工智能工具。它的目的是通过自动完成代码来帮助开发人员使用集成开发环境(IDE),如Visual Studio Code。它目前仅作为技术预览版提供,因此只有在候补名单上被认可的用户才能访问它。对于用…

Redis:原理速成+项目实战——Redis实战8(基于Redis的分布式锁及优化)

👨‍🎓作者简介:一位大四、研0学生,正在努力准备大四暑假的实习 🌌上期文章:Redis:原理速成项目实战——Redis实战7(优惠券秒杀细节解决超卖、一人一单问题) &#x1f4d…

神经网络语言模型(Neural Network Language Model,NNLM)

神经网络语言模型(Neural Network Language Model,NNLM)是一种用神经网络建模语言的方法。NNLM 通过学习文本序列中的词汇之间的概率关系,能够捕捉到语言的结构和语境,从而能够生成自然语言文本或进行其他与语言相关的…

Spark与Cassandra的集成与数据存储

Apache Spark和Apache Cassandra是大数据领域中两个重要的工具,用于数据处理和分布式数据存储。本文将深入探讨如何在Spark中集成Cassandra,并演示如何将Spark数据存储到Cassandra中。将提供丰富的示例代码,以帮助大家更好地理解这一集成过程…

Nginx配置反向代理实例一

Mac 安装Nginx教程 提醒一下:下面实例讲解是在Mac系统演示的; 反向代理实例一实现的效果 在浏览器地址栏输入www.testproxy.com, 跳转到系统Tomcat主页面。 反向代理准备工作 第一步:在系统的 hosts 文件进行ip和域名对应关系的配置。 …

【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格

背景需求: 制作一个EXCEL模板,每个班级的班主任统计 班级图书量(一个孩子10本,最多35个孩子350本) EXCEL模板 1.0版本: 将这个模板制作N份——每班一份 项目:班级图书统计表 核心:一个EXCEL模板批量生成…

Android block quick OnClick event,simple implement,Kotlin

Android block quick OnClick event,simple implement,Kotlin var time 0Lview?.setOnClickListener {val now System.currentTimeMillis()if (now - time > 300) {Log.d("fly", "正常点击")} else {Log.d("fly", &…

Android BUG 之 Error: Activity class {} does not exist

项目场景: 更换包名,运行报错 问题描述 原因分析: 在替换包名的时候要确认,配置文件跟build中的保持一致,在更换后还要将旧包的缓存数据清理掉 解决方案: 1 替换后删除 app 下的build 文件夹 2 Rebuild Pr…

Python-抖音无法拒绝的表白代码【附源码】

一个无法被拒绝的表白代码 运行效果: 一:主程序: import sys import cfg import random import pygame from tkinter import Tk, messagebox Function:按钮类 Initial Args:--x, y: 按钮左上角坐标--width, height: 按钮宽高--text: 按钮显…

gem5学习(10):创建一个简单的配置脚本——Creating a simple configuration script

目录 一、gem5 configuration scripts 1、An aside on SimObjects 二、Creating a config file 1、导入m5库和SimObjects 2、创建模拟系统 3、设置系统时钟 4、设置内存模拟方式 5、创建CPU 6、创建系统级内存总线 7、连接请求-响应端口 (1)A…

js解决pdf使用iframe打印报跨域错误问题

报错如下: Uncaught DOMException: Failed to read a named property ‘print’ from ‘Window’: Blocked a frame with origin “https://xxxx.com” from accessing a cross-origin frame. at iframe.onload (:10:26) 解决方法: 把 pdf 转 blob 二…

【项目管理】CMMI-风险与机会管理过程

1、文档结构 2、风险与机会概率 风险与机会概率指的是风险与机会实际发生的可能性。可以用自然语言术语来映射数字概率范围。下表列出了七段概率分级中自然语言术语和数字概率范围映射关系。注意,用来计算的概率值等于概率范围的中间值取整。有了映射表格的帮助&am…

计算机视觉技术-区域卷积神经网络(R-CNN)

区域卷积神经网络(region-based CNN或regions with CNN features,R-CNN) (Girshick et al., 2014)也是将深度模型应用于目标检测的开创性工作之一。 本节将介绍R-CNN及其一系列改进方法:快速的R-CNN(Fast R-CNN&#x…