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


    这是一个 游戏  。

     

    我在 《浅谈 计算机软件科学和技术》     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

     

  • 相关阅读:
    2018杭电多校第六场1009(DFS,思维)
    Atcoder Regular Contest 085F(动态规划,线段树)
    IOS各类优化方案集锦
    iOS网络加载图片缓存策略之ASIDownloadCache缓存优化
    oc
    OC 内存管理机制总结
    ARC小知识
    oc常见误区
    常用第三方(分享,支付,二维码,语音,推送)
    UIKit,Core Data , Core Graphics, Core Animation,和OpenGLES框架
  • 原文地址:https://www.cnblogs.com/KSongKing/p/11120634.html
Copyright © 2020-2023  润新知