从CAP到编程语言的猜想

开发 开发工具
一句“PHP是世界上最好的语言”可能会引起一场又一场的激战,这句话仿佛成了一个“梗”,自己也无法免俗,忍不住写了一篇《PHP是最好的语言吗》,但编程语言鄙视链的存在令很多人无休止的追问,这不应该只是一种程序员间的乐此不疲吧?!

TIBOE 有如期的发布了***的编程语言的排行榜,变化总是有的,这是今年3月的榜单:

关于编程语言的争议总是有的,不论是各个论坛,微信群,QQ群,乃至知乎,Quara 等知名网站,总会有对各种编程语言的吐槽。一句“PHP是世界上***的语言”可能会引起一场又一场的激战,这句话仿佛成了一个“梗”,自己也无法免俗,忍不住写了一篇《PHP是***的语言吗》,但编程语言鄙视链的存在令很多人无休止的追问,这不应该只是一种程序员间的乐此不疲吧?!

在微服务中,数据库的集成是一件不会令人愉悦的事,因为分布式系统CAP理论在起作用吧。

中生代的右军有文章专门对CAP进行了论述。

  • Consistency(一致性),数据一致更新,所有数据变动都是同步的
  • Availability(可用性) 好的响应性能
  • Partition tolerance(分区容错性) 可靠性

CAP 的核心思想是任何分布式系统只可同时满足二点,没法三者兼顾。

那么,由此类比到编程语言会是怎样的情景呢?

是否可以对编程语言进行抽象呢? 而且抽象到3个维度呢?

根据自己所用过的编程语言的经验(35岁前曾经每年学一门编程语言),仿佛可以把编程语言归纳到3个约束:Simple,Adaptive,Performance——SAP:

Simple 简洁明快

  • 编程语言的读与写都容易理解,学习曲线平滑而且短
  • 结构紧凑,容易协作与维护
  • 拥有丰富的类库,以及完善的参考手册
  • 依赖少,部署同样简单

......

Adaptive 适用性强

  • 适用于多个应用领域,支持各种层次的抽象
  • 伸缩性好,增减依赖都很方便
  • 支持多种编程范式
  • 可编译执行,也可解释执行
  • 甚至可以定制派生的语言

......

Performace 性能高效

  • 不论使用IDE还是文本编辑器,代码编写都很快
  • 执行速度快,充分利用CPU甚至GPU的能力
  • 编译的速度同样快,支持JIT
  • 故障定位的速度快,debug快捷精准

......

如果分成这样3个属性,会发现它们之间存在着内在的矛盾,就像CAP那样:

SA 是Python,Java,还是......?

AP 是C,C++, 还是 ......?

SP 难道是 汇编么,还是 ......?

CAP 给我们的启示是 架构师不要将精力浪费在如何设计能满足三者的***分布式系统,而是应该进行取舍。

如果SAP 的猜想是成立的,那么给我们带来怎样的启示呢?

会不会混合编程是一种必然呢?

没有仔细阅读过CAP的数学证明,也没有努力想用数学的方法去证明SAP的成立,现在只是老码农的猜想,可能是一种错误或者遗憾吧。

回顾一下编程语言的历史,献上一张来自veracode.com的旧图:

这是一张不太完整的编年史,而且下边还有veracode的推广。学习它,老码农尝试溯源,视图从其他的角度看编程语言。

【本文来自51CTO专栏作者“老曹”的原创文章,作者微信公众号:喔家ArchiSelf,id:wrieless-com】

戳这里,看该作者更多好文

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2023-01-01 14:22:17

2019-12-03 09:31:14

编程语言程序员Python

2011-01-04 17:08:10

汇编语言

2022-12-15 17:15:42

数据库NoSQL

2021-12-12 18:15:06

Python并发编程

2020-08-18 10:20:50

Java 编程开发

2022-06-16 13:08:30

Combine响应式编程订阅

2015-12-07 09:46:26

swift编程开源

2021-02-06 13:58:22

编程语言工业互联网学习

2013-06-27 10:31:39

2014-10-13 11:30:14

2024-05-13 10:54:39

UML系统SysML

2023-01-04 11:04:32

2021-07-14 10:39:28

JqueryVue 编程

2024-08-16 14:10:00

程序员系统

2021-08-12 18:48:31

响应式编程Bio

2011-11-16 09:00:39

编程语言

2020-03-25 14:36:12

SQLNoSQL数据库

2009-08-27 16:03:31

从c#到c++

2022-09-16 07:32:15

编程计算机命令
点赞
收藏

51CTO技术栈公众号