为什么我们不再发明编程语言了?

中国为什么没有自己的编程语言?哲学、数学和语言学是关键 中国为什么没有自己的编程语言?不是不需要,而是缺乏哲学、数学、语言学和编译原理方面的理论和实践,看明白才知道差距不小。 中国为什么没有编程语言 中国都是应用编程语言,很少有自己开发语言的人。应用制造是两码事。所以你问这个问题,就像问一个乘坐火箭到太空旅游的人,火箭是怎么造出来的?很难得到你想要的答案。 他们多半不清楚火箭是怎么造出来的 要形成一门编程语言并不是一件容易的事。计算机和软件程序的创始发明应该属于冯诺依曼(John von Neumann)和图灵(Alan Mathison Tur 阅读详情

上个世纪,数百种编程语言被发明出来,但是进入21世纪,当我们都进入互联网时代时,只剩那么寥寥几个了。 

如果你翻一下TIOBE得编程语言排行榜,就会发现20年来,上蹿下跳的就是那几张老面孔:C , Java, Python ,C++ , C#, JavaScript......

80年代后期,平均每个月就会出现一种新语言,现在,平均每年出现一个就不错了。 

我有点好奇,就去扒了扒其他编程语言的出现时间,把他们分成了分为中生代、新生代和 老年代。 

先看中生代的家伙们,20多岁,30出头,正是编程的中坚力量。

Python : 1991

Visual Basic :  1991

PHP : 1995

Ruby : 1995

Java : 1995

JavaScript : 1995

C# : 2000

(1995年还真是神奇的一年啊,几位大佬同时诞生。)

再看这些老前辈,尤其是C语言,老而弥坚,屹立50年不倒,把系统级编程吃得死死的。

Lisp : 1958

Pascal : 1970

C : 1972

Objective-C : 1984

C++ :1985

Object Pascal : 1986

新生代则活力无限, 锋芒毕露,对老家伙们虎视眈眈。

Go : 2009

Rust : 2010

Kotlin : 2011

Elixir : 2011

Julia : 2012

TypeScript : 2012

Swift : 2014

新生代只是它们想挑战中生代的地位,抢班夺权,希望渺茫。 

主要有这么几个原因:

1.  编程范型没有变化

还是老三样:面向过程,面向对象, 函数式。 

在冯诺依曼架构下,恐怕也不会出现什么新的范型了吧。 

现在TIOBE排行前十的中生代语言完美涵盖了这些范型,例如Java,刚诞生的时候支持面向对象,但是后来补上了函数式这一课。

像Python、JavaScript一开始就支持面向对象和函数式编程。

2. 开发领域

开发领域有桌面开发、Web开发、系统级软件开发、后端开发,数据分析,人工智能等。 

中生代的编程语言不但这些领域看得死死的,还互相扩展,侵入对方的领地。 

其中最典型的就是JavaScript这个屌丝的逆袭,一开始不过是寄居在浏览器中的一个小语言,后来通过V8, Node.js竟然进入了后端,还用Electron蚕食桌面开发!

Python也是,本来用它写点儿小工具,开发点儿小网站,后来竟然傍上了人工智能这个大款,从此发达了。

3. 生态系统

Java , Python, JavaScript,C , C#等经过这么些年的发展,哪个不是积累了海量的类库,哪一个没有庞大的生态系统?想动它们,没有一场革命是绝对不行的。

新语言即使很好,但是看看那么多现有的代码,谁敢轻易切换?

4. 时代的红利

Java遇到了互联网,Python遇到了大数据和AI, JavaScript遇到了前端开发, 时代的机遇让它们爆炸式发展。 

Go的运气不错,遇到了云计算,强势崛起。其他几位想要出头,那是相当难了。

我曾经悲观地认为:主流的编程语言已经都被发明出来了! 

以后新出现的语言都是改进,改良,没法闹革命翻身了。 

举个不恰当的比喻, C, Java, Python, JavaScript,C# , C++, PHP 就像现在的西方七国集团,牢牢占据着最大的市场,然后只要有新人冒出来,就会受到无情的打击。就像现在中国想技术突破,被美国和西方不择手段地打压一样。 

但是也并不绝对,就像中国一定要向上突破一样,我看到在系统编程领域,也有一个新星冉冉升起:Rust。

Rust虽然没有发明新东西,但是却融合了多种语言的特性和多种编程泛型,它不但包含了上面说的三大编程范式,还集结了泛型、底层内存管理、所有权等特性,可以说是一个集大成者(这也恰恰是它学习曲线陡峭的原因)。

Rust是一门同时追求安全、并发和性能的现代系统级编程语言,有望挑战C语言的地位。

当然,编程语言少,对程序员来说是好事,程序员可以少学一点东西,少掉几根头发。

最后再聊聊人工智能时代的编程问题,我在《天才程序员》中看到一个有趣的比喻,说普通的编程就像循规蹈矩的机械装置,机器会一板一眼地去执行,程序员在逻辑的宫殿中穿行,沿着头脑中的路线行走,一切都有章可循。

但是训练神经网络就完全不同,程序员和程序之间更像园丁与田园的关系。

豆角为什么突然不长了?西红柿为什么不好吃?园丁可能会换换土壤,可能会调整一下作物之间的距离,也有可能把豆角转移到阳光充足的地方,或者少用些肥料?成功了!它们又开始茁壮成长了!

园艺技能的长进有赖于数之不尽的实验和来之不易的经验。很多新手园丁栽种的第一批作物要么长不好,要么就死了。但最终,经过不断试错(和借鉴同行的经验),园丁们会积累更多知识,形成难以言传的直觉,比如什么有效,什么无效。此时,如果你带他们去新的田园,即便那里的土壤和光照条件完全不同,他们也可以很快弄清楚哪些作物更适合在此处栽种。

看到了吧,虽然编程技能必不可少,但是重点变成了收集数据,不断训练,不断调整,然后“祈祷”程序奏效。

不知道这是程序员的幸运呢,还是不幸?

深空探测处理软件USGS-ISIS的下载安装 深空探测处理软件USGS-ISIS下载安装教程 阅读详情

相关推荐

Dinic算法的复杂度分析及证明

一般图 复杂度主要取决于dfs增广的过程。 将dfs部分的复杂度分成两部分来分析:1)修改增广路上边的流量。至多会增广mmm次,一条增广路的长度至多是nnn,所以这一部分的复杂度是O(nm)O(nm)O(nm)。2)dfs遍历时找增广路失败时经过的边。由于一旦从某条边出发找最短路失败了,我们就不会再走那条边(当前弧优化),所以这一部分的复杂度是O(m)O(m)O(m)的。故而dfs增广的复杂度是O...

这个博客已经搬到了:zhongyuwei.github.io 4390

经典的编程语言 发明时间

我们一个统计出来256种编程语言,当然,这么多的语言中只有一些是常用的或实用的。  发明时间 语言类型 1951 Regional Assembly Language 1952 Autocode 1954 IPL(LISP语言的祖先) 1955 FLOW-MATIC(COBOL语言的祖先) 1957 FORTRAN(第

sarck3的专栏 4845

开源光标主题实战:从Moshi Monsters到自定义指针的完整指南

光标主题是操作系统个性化的重要组成部分,它通过替换系统默认指针图标来改变视觉交互体验。其原理在于操作系统允许用户自定义指针资源文件,这些文件定义了不同状态下的光标图像。从技术价值看,一套设计良好的光标主题不仅能提升桌面美观度,还能增强用户的情感连接和操作愉悦感,是低成本高回报的数字幸福感提升方案。在应用场景上,无论是开发者、设计师还是普通用户,都可以通过更换光标主题来个性化工作环境。本文以热门的Moshi Monsters开源光标项目为例,深入解析了光标主题的设计逻辑、系统适配方案以及二次创作方法,涵盖了W

weixin_30879833的博客 554

巴西都发明两门流行的编程语言了!

1993年,巴西里约热内卢天主教大学的三个老师发明了Lua。Lua以其简单性、小尺寸和可移植性,成为嵌入式编程语言之王。除了游戏这个主战场之外,Luah还入侵了各种软件(TeX排版,Neovim,Nginx......),各种硬件(三星的电视、思科的路由器、TI的计算器,罗技的键盘......)Lua的故事可以移步我这篇文章《巴西的编程语言都占领全世界了,中国怎么就不行呢?》20年后,巴西人Jos...

码农翻身 5678

深入CRSF协议数据包:手撕STM32代码,教你像调试串口一样分析ELRS遥控数据流

本文深入解析CRSF协议数据包,通过手撕STM32代码,教你如何像调试串口一样分析ELRS遥控数据流。从硬件准备到数据包捕获状态机设计,再到高级数据分析技巧和实战应用,全面覆盖CRSF协议的解析与优化,帮助开发者构建稳定可靠的通信系统。

weixin_29194693的博客 337

亚马逊商品评论爬取与情感分析实战:Python+BeautifulSoup高效解析(附反爬技巧)

本文详细介绍了使用Python和BeautifulSoup库高效爬取亚马逊商品评论并进行情感分析的完整实战流程。文章从环境搭建、核心代码编写入手,重点讲解了如何通过设置请求头、添加延迟等防封策略应对反爬机制,确保数据抓取的稳定性。最后,利用TextBlob库对评论文本进行情感分析,并通过可视化图表直观展示产品口碑,为电商选品与市场调研提供数据支持。

weixin_29046611的博客 1164

python谁发明的1003python谁发明的_编程语言简史:有人不喜欢花括号,于是他发明了 Python...

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。(本文节选)1957年约翰·巴克斯(John Backus)创建全世界第一套高阶语言FORTRAN,这是程序员真正意义上使用的第一种语言。1959年葛丽丝·穆雷·霍普(Grace Hopper)发明了第一个面向企业的面向业务的编程语言,为“面向商业的通用语言”...

weixin_33597080的博客 154

Upload Symbols Failed:The archive did not include a dSYM for the LiveKitWebRTC.framework with the UU

你需要从源码构建 LiveKitWebRTC,而不是使用 CocoaPods 安装的预编译 .xcframework。Step 2: 修改 Podfile 使用本地路径引用(不是从源下载的 xcframework)方法 :强制从源码构建 LiveKitWebRTC.framework(推荐)这样它就会编译 WebRTC 并带上正确 UUID 的 dSYM。替换路径为你 clone 下来的 LiveKit 源码位置。Step 1: 克隆源码仓库。

baidu_40537062的博客 2135

python谁发明的1003python谁发明的_编程语言简史:有人讨厌花括号,于是他发明了Python...

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer 为我们进行了整理。1800年Joseph Marie Jacquard 教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明受到了预见天网(Skynet)诞生的纺织工人的强烈反对。1842年Ada Lovelace(英国诗人拜伦之女)为计算程序拟定“算法”...

weixin_39557402的博客 157

llama2-7b下载并转llama-2-7b-hf

④输入https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py会下载 convert_llama_weights_to_hf.py 文件,我们需要用到这个文件将llama2-7b转成llama-2-7b-hf。③下载完之后是这四个文件,这里我是在windows操作系统中安装的WSL,没有linux操作系统,没办法。

wenling54321的博客 1030

SAP UI5 用数据绑定导出:从 ExportTypeCSV 到 Spreadsheet 的完整实践与取舍

SAP UI5 数据绑定导出机制通过复用 Model、Binding Path 等配置,将控件视图转换为文件格式。早期方案使用 sap/ui/core/util/Export 生成 CSV,需自定义 ExportType 扩展格式;现代方案推荐 sap/ui/export/Spreadsheet 直接导出 XLSX,支持类型精度和智能表格集成。注意 CSV 方案已弃用但仍有业务价值,需根据项目需求选择合适方案。两种方式都基于数据绑定,避免重复定义列结构和格式化逻辑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 268

python语言发明者 google_看看9种编程语言的发明者是怎么说的

从Node.js到C++,看他们的发明者是如何评价他们的语言的未来。Ryan Dahl:Node.js问:它的主要优势是什么?Dahl:Node与其他的语言有一点明显的区别,就是处理I/O。所以它永远不允许用户锁上程序。它要求用户不断的处理新事物,因此它很适用于网 络编程。在你的服务器上要与很多人打交道,你必须处理链接。Node鼓励人们用非阻塞的模式。由于这个特性,你会发现Node在开发服务器上比...

weixin_39560066的博客 106

Modis数据处理工具:MRT百度网盘下载和手把手图文安装教程

如下图所示为MODIS Reprojection Tool(MRT)的软界面,看似简单,却是Modis遥感影像必不可少的处理工具,如投影变换等。本文以图文并茂的形式,详细讲解MRT软件在Windows10平台上的安装过程,并附MRT软件百度网盘下载地址。 Modis Tool主界面: 一、安装过程 1、安装Java运行环境 双击Java.exe,安装运行环境。默认的安装路径为C:\Program Files (x86)\Java\jre6\bin,后面需要用到这个路径。 等待...

智慧空间实验室 2622

假如你来发明编程语言

聪明的人类发现把简单的开关组合起来可以表达复杂的bool逻辑,在此基础之上构建了 CPU ,因此 CPU 只能简单的理解开关,用数字表达就是0和1。创世纪:聪明的笨蛋CPU 相当原始,就像...

码农的荒岛求生 364

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

编程语言简史:有人不喜欢花括号,于是他发明了 Python

编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?Casper Beyer为我们进行了整理。(本文节选)海风教育投诉 https://www.hfjy.com/feedback 海风教育在线辅导0元一对一试听课等你来领取,领取课程方法: 1、私信留下您的手机号和姓名,需要补习的科目。 2、也可以在海风教育官网留下您的手机号领取 http...

weixin_43932460的博客 171

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

假如我来发明编程语言

【优快云 编者按】对于 CPU 大家都不陌生,但对于与CPU的交流语言的改变是否都很了解呢。从令人摸不着头脑的 0 与 1 组合的语言到如今丰富多彩的高级语言,这其中又经历了怎样的历程呢...

优快云资讯 1093

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python发明者叫什么-看看9种编程语言的发明者是怎么说的

从Node.js到C++,看他们的发明者是如何评价他们的语言的未来。Ryan Dahl:Node.js问:它的主要优势是什么?Dahl:Node与其他的语言有一点明显的区别,就是处理I/O。所以它永远不允许用户锁上程序。它要求用户不断的处理新事物,因此它很适用于网 络编程。在你的服务器上要与很多人打交道,你必须处理链接。Node鼓励人们用非阻塞的模式。由于这个特性,你会发现Node在开发服务器上比...

weixin_37988176的博客 269

国内为什么没人研究发明新的编程语言?

其实编程语言算是一种语言吧,其中的基本运算符的进化类似数学运算符号的进化,是十分缓慢的。现在的编程语言上百种,但没有选出那种才是最好的。如果要发明一种新的编程语言,发明本身并不是真的那么难,而是发明出来有人去使用,甚至成为主要编程语言之一,这才是最难的。 易语言就是国人

清风学习笔记 857

python语言是谁发明的咋读-Python的发明,竟然是因为他不喜欢花括号。

原标题:Python的发明,竟然是因为他不喜欢花括号。 编程语言有上千种,但是流行的不过10来种,那些我们经常使用的编程语言都是谁在什么时候创造出来的呢?今天来和达妹一起看下吧! 编程语简史 11800年Joseph Marie Jacquard教会了一台织布机读穿孔卡片,制造出了第一个高度多线程的处理单元。他的发明受到了预见天网(Skynet)诞生的纺织工人的强烈反对。21842年Ada Lo...

weixin_37988176的博客 281

java是谁发明的_盘点近期十大编程语言,都是谁发明的?以及相应的特征介绍...

原标题:盘点近期十大编程语言,都是谁发明的?以及相应的特征介绍第一名 Python语言(最后一名你一定没听说过) 这是近期编程数据榜位居榜首的编程语言—python,这是一种多范式、通用、解释的高级编程语言,该语言不仅学起来简单,并且其代码相比其他语言要简短很多,还可以使用不同的编程风格完成相应需求:面向对象、命令式、功能性或反射性。Python语言被大量的而应用于Python web、pytho...

weixin_42505397的博客 848

既然有java如此完美的编程语言,为什么还有人发明新的编程语言?

通过设计和实现新的语言,研究人员可以探索新的编程概念、验证新的理论模型,并推动计算机科学的发展。有时候,新的编程语言之所以能够获得成功,是因为它们能够吸引一个活跃的开发者社区,这个社区能够提供丰富的库、工具和资源来支持语言的使用和发展。它们可能提供了更高级的抽象、更简洁的语法或者更强大的库支持,从而使得开发者能够更高效地编写代码。尽管Java已经是一种非常优秀的编程语言,但人们仍然有动机去发明新的编程语言来满足不断变化的技术需求、推动计算机科学的发展以及构建更加丰富的技术生态系统。

怀揣梦想,一颗执着于技术的心从未磨灭,内心住着一颗顽强的小强时刻提醒自己层层突破自我,同时也成就他人 375

《软件故事:谁发明了那些经典的编程语言》

《软件故事:谁发明了那些经典的编程语言》 基本信息 作者: (美)史蒂夫.洛尔    译者: 张沛玄 出版社:人民邮电出版社 ISBN:9787115355089 上架时间:2014-6-19 出版日期:2014 年6月 开本:16开 页码:1 版次:1-1 所属分类:计算机 > 软件工程及软件方法学 > 综合 更多关于》》》《软件故事:谁发明了那些经典的编...

weixin_34149796的博客 564

编程语言都是哪些人开发出来的?为什么都是国外较小国家的人

编程语言的开发者通常是来自计算机科学、软件工程、数学、物理学等领域的专家、学者和工程师。这些开发者具备深厚的编程技能、算法知识、系统设计能力以及创新思维,他们致力于创造出能够解决特定问题或满足特定需求的编程语言。

全栈开发的博客 1446
上一篇: 科大讯飞被曝加紧开发中国版ChatGPT,具体发布时间已确定
下一篇: ChatGPT 冲击下,特斯拉曾留不住的 AI 大牛,再次回归 OpenAI !
IT界那些事儿
博客等级 码龄6年 2万+粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值