软件技术 基础设施 重建 白皮书

这是一个 游戏  。

 

我在 《浅谈 计算机软件科学和技术》     https://www.cnblogs.com/KSongKing/p/10326733.html  ,   里 提到 ,

软件技术 的 4 个 核心技术:

1   图形学

2   编译器

3   操作系统

4   数据库

 

未来 操作系统 的 地位 和 硬件 差不多,    语言 和 图形学 方兴未艾  。

 

语言 关系 到 软件界 的 大环境 和 生态,    图形学 是 3D 游戏 虚拟现实 白盒人工智能 的 基础, 是 未来 智能时代 的 基础技术  。

 

数据库 的 领域范围 和 影响力 有限 。

 

所以 语言 和 图形学 比较有 搞头 。

 

ILBC   是  中国  的  mono,   比   mono   还要 厉害  。

D#    是 对   C++   的   科学发展  。

 

语言 是 这个 时代 的 Linux   。

 

见 《ILBC 白皮书》        https://www.cnblogs.com/KSongKing/p/11070978.html       。

 

 

别再提       面向对象 设计模式 业务架构 依赖注入 微服务 容器(docker,   kubernetes)   ……         ,这些是 新时代 的 茴香豆,

大家 还像 孔乙己 一样       天天   嗑     的     津津有味  不亦乐乎      。

 

这些 东西 完全 没有 技术含量  。

 

唯一 有 技术含量 的 是 底层技术  。

 

说起 底层技术,    大家可能 会说     容器(docker,   kubernetes)    是 底层技术,    容器 是 操作系统 族 的 一员,  是 底层技术,

但是,    使用 容器 的 技术 是 应用层 技术,       学会了 容器 只是 学会了 一堆  笨重繁复  的 规则 而已  。

 

从 技术 的 角度 来看,    容器 的 方向 是 错误 的,     容器 增加了 系统 的 复杂性 不透明性 不稳定性  。

 

容器 是 软件界 的 一个 大毒瘤   。

 

微服务 和 容器 就是 两个 枷锁,   束缚了 程序员 的 创造性 和 特立独行 的 个性  。       让 程序员 尊严 扫地  。

 

70 年代 的 程序员 是 黑客,

80 年代 的 程序员 是 极客,

90 年代 的 程序员 是 牛人,

2000 年 的 程序员 是 高手,

现在 的 程序员,      “谈业务”,

 

别提 “业务” ,    一听到 业务 我就 想吐  。

 

话说回来,    黑客 和 极客 有什么区别?     我觉得 黑客 偏重于 破解,  极客 偏重于 创造  。

 

还有,   别提  “架构” ,          架构 是 最简单 的 东西,     完全 没有 技术含量  ,      重点 是  执行   。

也别 提   “架构师”  ,         这是一个 尴尬 的 称谓,   如果有人 说 我 是 “架构师” ,  我会 起 鸡皮疙瘩  。

 

什么  阿里云 团队 帮助 某公司 建立了 高并发 分布式 架构 ,  使用  MQ 削峰  ……  ,

MQ 是 什么?   是 上个 世纪 的 东西  ,    就像 工厂 里的 20 年前 的 老旧设备 一样,    早就应该 淘汰 了  。

MQ 又 老, 又 过时,  又 笨重,       (MQ 是 RPC,  远程调用 的 性能消耗 是 显著的) ,   同时,在 应用程序 外 增加 MQ 等等 的 “设备” ,  会 造成 系统 的 异构 和 架构 的 衍生 和 复杂,   增加 运维 成本  。

 

现在 的  语言   对 高并发 和 异步任务 的 支持 那么好,   比如 Go 语言,  C# 的 Task ,  async await ,    以及 其它 语言,    我 听 网友 说 , 现在 的 语言 基本 都 很好 的 支持 高并发, 不然 就 别混了   。

 

既然  语言 对 高并发 支持这么好,   所谓 的 “削峰”   完全 可以通过 进程 内 的 异步任务 实现,  根本 不需要  跨进程 ,  更不用 跨主机,

这样 架构简单,  性能高(不需要 远程调用),    运维成本 低  ,     

So    ?

 

这样 的 架构,   在 扩展性 上, 只 需要 简单 的 线性扩展 Web Server 就可以,   没有什么 垂直架构, 也不需要 考虑 垂直扩展,  何乐而不为 ?

 

像 阿里云 MQ “高并发架构”   这样 的 东西,    网上一边倒的 崇拜 和 追捧,  只能说 ,  迷信 的 力量 是 伟大 的  。

 

类似的,   还有对  Redis  的 迷信 ,     对   Vue.js   的 迷信  。

 

对  Redis  的 迷信 非常可笑  。

 

还有,    现在 的 硬件技术 突飞猛进,   在 新的 硬件 形势 下,  还去 抱 着 那些 陈旧 的 架构 观念,   无异  自欺欺人  。

举个例子,     阿里云  都 已经 提供   “超级并行计算机” (还是   “超级并行计算 集群”  ?)     了 ,         在 这种 超级并行计算机 下 ,  一切 架构 都是 浮云 , 都是 渣 ,

要 架构师 何用   ?      ^^

 

说白了 ,      架构师 就是  古人 说 的 “书生百无一用”    。

 

实际 需要 的 是 大量的 代码工人 和 测试人员 ,   架构师 纯属 浪费 工资 的 兵种  。

 

 

好了,  还是 回到 底层 技术   。

 

咋没人 搞 个 国产 的 Nginx 呢  ?          Nginx 是 七层代理 / 四层代理    ,      需要 了解 网络协议 的 底层技术 ,   尤其 是 四层代理  。

咋没人 搞 个 国产 的 mono 呢  ?

咋没人 搞 个 国产 的 Xamarin 呢   ?             移动设备 的 开发 多么 重要, 这还用说吗  ?

 

百度上 一搜索 ,   牛人 很多 啊  。

 

为什么 大家 宁愿 去 研究 天书 一样 的 Linux 源代码 也没人 自己 写一个 ?

像    docker  和   Kubernetes     那样 天书 一样 的 代码 你 研究 的 过来 吗  ?

 

你 如果 去  研究 这些 代码,  你就 上当 了  。

 

应该  贯穿原理,   但是 具体 的 实现 自己 来 实现   。

原理 其实 都不难   。

 

我 认为 我们 开展 的 开源项目 应该 是 这样 的 :

 

1     参照 Unix 的 编程原则 ,    “编写 一些 简单 的 模块,  把 它们 连接 起来” 

2     库 的 理念

3     简单 小巧 的 内核

 

这样, 别人 把 项目 拿去 可以 容易 的 改写 扩展 和 理解程序意图 ,  这样 才 体现出 开源项目 的 价值  。

 

可以 参考 这些 文章 :

 

《谈谈 图形学 的 从头建设发展之路》    https://www.cnblogs.com/KSongKing/p/10961057.html

《少搞一点 对象, 多搞一点 文本》     https://www.cnblogs.com/KSongKing/p/10796426.html

《关于 虚拟化 的 我的看法》      https://www.cnblogs.com/KSongKing/p/10770977.html

《.Net 一开始就不应该搞 .Net Core》     https://www.cnblogs.com/KSongKing/p/10768705.html

《C++ 是 编程界 的 背锅侠》        https://www.cnblogs.com/KSongKing/p/10455763.html

 

《从 面向对象 的 弊端 想到的》       https://www.cnblogs.com/KSongKing/p/10367675.html

《我发起并创立了一个 Javascript 前端库 开源项目 jWebForm》    https://www.cnblogs.com/KSongKing/p/10326119.html

《论 数学 的 工具性》           https://www.cnblogs.com/KSongKing/p/10308498.html

《未来 需要的是 轻量 的 操作系统 而 不是 容器》        https://www.cnblogs.com/KSongKing/p/9259628.html

 

《我发起了一个 支持 ServerFul 架构 的 .Net 开源项目 ServerFulManager》     https://www.cnblogs.com/KSongKing/p/9899199.html

《关于软件产业的两个契机》             https://www.cnblogs.com/KSongKing/p/9531950.html

《.Net Core 没有 WebForm 是 历史 的 退步, MVC 是一个 糟糕 的 设计》     https://www.cnblogs.com/KSongKing/p/10293643.html

《依赖 容器 的 技术 是 没有 通用性 的》         https://www.cnblogs.com/KSongKing/p/10293169.html

 

 

posted on 2019-07-02 14:52  凯特琳  阅读(403)  评论(0编辑  收藏  举报

导航