关于 虚拟化 的 我的看法
虚拟化 的 意义 在于 提供 轻量 的 虚拟机, 到此为止 。 其它 的 事 是 语言 中间件 应用层 的 事 。
未来 的 技术热点 : 语言 图形学 轻量操作系统
还有 应用层 的 云, 这个也是我看好的 。 比如 Kooboo , https://www.kooboo.com/ 。
未来 黑盒人工智能 会普及, 未来 人工智能 的 新高地 是 白盒人工智能,
白盒人工智能 的 基础 是 对 现实世界 建模, 所以 白盒人工智能 的 基础 是 图形学 。
基建(基础设施建设) 是 对 现有的 基础设施 重构, 使之 更加 简洁高效, 不是 在 基础设施 的 上面 再建设 基础设施 。
所谓 在 基础设施 的 上面 再建设 基础设施, 是指 容器 , ServerLess , 云函数 , Lambda 云 。
操作系统 技术 已经发展 到 饱和 和 成熟 了, 看看 Win 10 就知道 。 基础理论 内核模块 架构 设计模式 就 那么 几套, 没必要 翻过去 翻过来 的 这 老 三 套, 然后 习惯性 的 推出 新版本 。
未来 的 操作系统 的 发展空间 和 发展方向 是 智能化 + 3D 体验 + 语音 + 虚拟现实 + 物联网化 等等 比较有 科幻感 的 方向 。
作为 面向硬件 和 程序设计 的 初代操作系统, 现在已经 发展到 成熟 和 饱和 了 。 (后世 的 史学家 也许 会 把 计算机 诞生以来 到 现在 的 有过 轰轰烈烈 发展历程 的 我们现在在用的 操作系统 称为 “初代操作系统” )
现在 对于 初代操作系统 要做的是 简化 、 轻量化 , 以及 泛设备, 跨设备 。
而 未来 硬件 的 标准化 会 随之演进, 这是 对 操作系统 简化 轻量化 的 有利的 客观土壤 。
而 未来 是一个 泛硬件 的 时代, 这也是 初代操作系统 向 跨设备 泛设备 发展 的 土壤 。
轻量操作系统, 内核 支持 虚拟机, 加一个 虚拟机 的 壳, 即可 实现 轻量虚拟机 的 效果, 这就是 轻量虚拟化 。
看看 现在 的 各种 ”原生云“ , 比如 OpenStack, Kubernetes 等等,
汗牛充栋 的 代码, 可以垒成一个 “Stack” ,这是 多么恐怖 的 一个 软件工程 啊 ! 这 能说是 科学技术 的 进步 ?
关于 开源事业, 我对 多年以来 到 现在 仍然 火热 的 围绕着 Ioc Aop ORM 微服务 “业务框架” 的 现象 表示 呵呵 。
有 网友 说 , 你到 Git 上搜, 少说可以搜到 几十个 ORM 或者 微服务 框架 。
我想说的是, ORM 是 何方美人, 让 大家 竞相追逐, 乐此不疲 ?
微服务 那更像是 异域佳丽 了 。 哈哈哈哈
Ioc Aop ORM 微服务 “业务框架” 没有 技术含量 。
我之前在《浅谈 计算机软件科学和技术》 https://www.cnblogs.com/KSongKing/p/10326733.html 里说过,
计算机软件科学技术 的 4 个 核心技术 是 :
1 图形学
2 编译器
3 操作系统
4 关系数据库
大家可以多关注关注 这些 方面 。
我今天还看到一篇文章, 《Google工程师是怎么处理大规模数据的?》 https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665516050&idx=2&sn=94065949677f09d53b6f15bbd1706141&chksm=80d67451b7a1fd472602e3a4c54e1865bff4de4818c4ea7a18e6c9d3979bc6b18767a7e6abd6&mpshare=1&scene=23&srcid=0425zfuipgHKnhtoKOlkuj4M#rd
比如这种 大数据 处理, 分布式计算, 大规模并行计算, 文档数据库 这些领域, 并不需要 底层技术, 用 中间件技术 就可以 实现, 所以 C# 爱好者 可以用 C# 来实现这些 领域 。
所谓 底层技术, 就是 直接 和 操作系统 打交道, 没有 GC, 没有 运行时类型, 没有 反射 等 动态特性,需要自己考虑 平台(操作系统)兼容性 的 语言技术,比如 C/C++ , 所谓 中间件技术, 就是 java C# 这样的 有 运行时,有 基础库, 不需要 和 操作系统 打交道,不需要 考虑 平台(操作系统) 兼容性 的 语言技术 。
什么 “不要发明重复的轮子” 、 “基础设施人家已经做好了,你能做的比人家好吗” 、 “技术是为业务服务的” 、 “客户导向” 、 “不要为技术而技术” 这一类 的 话语 是 有害 的, 已经 误导了人们 很多年 。
这些 话语 代表的是 官僚 和 盲目迷信 。 我将之 称为 “Boss 风格” 。
如果 老是 拿 业务 说事, 那么, 我告诉你, 业务系统 不需要 技术, 业务系统 使用到的 所有技术 没有 秘密可言 。
业务系统 需要 的 是 软件工程 。
个人技术 在 软件工程 面前 就像 一滴水 之于 大海 。
软件工程 里 本来 就有 很多 重复劳动, 所以 “码农” 是一个 客观 的 存在,
合理的做法是, 让 年长 的 人 发挥 经验, 做 指挥官, 让 年轻人 在 一线 贡献 和 磨炼 ,就这么简单 。
所有行业 都是 这样做的 。
至于 996, 和 所有 的 行业 一样, 这是 软件工程 要 解决 的 问题,
其它 行业 有 “轮班”, 软件业 就 没有 ? 那些代码 离开了 某个 程序员 就不能 写了 不成 ?
为什么 不能 由 2 个 或者 多个 程序员 来 共同 维护 和 开发 一段代码(一个模块) ?
所有 行业 不都这样 合作 和 轮替 的 吗?
设计模式 也没有 技术含量, 设计模式 是 一种常识, 本身也不是什么高深的东西 。
也可以这样来分 软件技术,
1 操作系统 (操作系统 虚拟机 容器)
2 中间件 (java C# Go node.js 网络应用层协议 IO)
3 应用层 (java C# node.js js 业务系统)
蚂蚁金服 也不难, 蚂蚁金服 是 中间件 技术, 虽然 它 使用了 容器, 但还是 中间件 技术, 实际上 也 不需要 使用 容器 的 。
蚂蚁金服 主要依赖 大量 的 测试迭代 。
微信 也 不难, 微信 也是 中间件技术, 微信 的 服务端 是用 java 写的, 属于 应用层网络协议 和 业务逻辑处理 。
QQ 也 不难, 跟 微信 也 差不多, 小马哥 当年 (90 年代) 写了个 QQ 感觉 很牛, 偶像的感觉,
现在看来, 即时通信 也是 稀松平常, 大家随时可以写个 QQ , 别跟我说 SignalR, 不需要 。 ^^
不过 小马哥 他们当时 用的 和 操作系统 打交道 的 底层技术 到 今天 还是 很牛 的,并不过时 。