digoal
2022-09-22
PostgreSQL , rust , pgx , linux
底层软件包括操作系统核心、数据库核心等具有以下特点的软件:
- 1、底层软件的用户通常为上层应用
- 2、上层应用对底层软件的要求通常是
- 2.1、永远在线“稳定、高可靠、安全”、
- 2.2、易用“兼容性、上层依赖的东西最好不要老是变化(如果A操作系统发一次版本上层应用都要跟着适配, B操作系统呢发版本不影响上层应用, 你觉得用户会选a还是b?)、高性能、弹性”
上层应用软件有什么核心特点呢?
- 1、上层应用软件的用户通常是ToC用户
- 2、用户特点是需求变化快, 要求软件快速迭代
从生命周期来分析上层应用和底层应用软件的差别
- 上层应用软件更偏向成长、萌芽区间, 通常竞争激烈, 产品挑起的往往是欲求, 没有需求都在创造需求, 你说迭代要不要快?
- 底层应用软件更倾向成熟区间, 用户的需求变化没那么快, 产品迭代慢; 对底层软件看中的更多是: 永远在线和易用方面;
PS: 上层应用变化快, 底层软件变化慢, 也符合递弱代偿原理. 越后衍的存在度越低, 越需要补偿更多来求存.
对比 | 底层软件 | 上层软件 |
---|---|---|
开发效率 | 一般 | 高 |
程序效率 | 高 | 一般 |
程序鲁棒性 | 高 | 相对一般/有其他HA解决方案/依赖底层 |
所以结论是:
- 在开发效率上, rust怎么和java, go, python这种去比? 这些语言已经证明了自己, 同时在生态上已经非常成熟(用户可以找到的提升开发效率的包、框架、流行的开源产品、大型企业的技术栈、人才、培训材料等等)已经很强了, 开发者和场景(包括流行的开源或商业软件、大型公司的支持)也够多, 开发效率够高. rust去争这块市场, 基本没戏.
- 在程序效率和程序鲁棒性上, rust和c比倒是可以, 比c更容易开发出安全稳定的程序, 而且运行效率相当.
rust官网首页宣传了3个产品特性, 表达比较到位, 兼顾了开发者以及目标场景的核心需要:
- 高性能, 开发的程序高性能
- 可靠性, 开发的程序更安全, 更少bug
- 生产力(更友好的错误提示、文档、编辑器、测试等), rust突出开发效率. 吸引更多开发者学习使用;
rust官网首页4个场景, 想要表达rust开发效率高, rust开发的程序稳定安全且高性能?
- 命令行: 底层软件通常不需要GUI. cli就够了.
- webassembly加速: 这个场景用户基数大, 为了吸引更多开发者; 和rust要主打的场景对比起来看似突兀, 但是了解了webassembly要解决的问题后, 发现和rust高性能特征高度匹配, 而且webassembly也是来自rust创造者mozilla的创作.
- 网络服务: 网络软件属于底层软件.
- 嵌入式: 底层软件. 同时打到了市场较大的IoT场景.
rust要与c争夺市场, 急需证明那些c的核心舞台, 它也能干例如:
- 操作系统核心、
- 数据库核心
最近看到的rust在操作系统、数据内核方面的宣传, 可见一斑:
- rust 将进入 linux 6.1 内核: https://www.infoq.cn/article/a7HAfAis5U70O1vbxFg3
- pgx: rust的PG extension开发框架, 通过pgx来丰富rust的底层软件生态: https://docs.rs/pgx/latest/pgx/ https://zhuanlan.zhihu.com/p/414566217
- 虽然只是extension, 但是PG的扩展性非常强大, 例如扩展存储引擎zheap,zedstore等, postgis时空引擎, zombodb索引, vector向量索引, pggraph图式插件, pipelinedb流计算插件等都是插件形式;
- 《云、商业、开源数据库终局之战 - 商业角度解读PG如何破局 - openapi 、 扩展能力、插件开源协议 - 用户定义数据库》
- 《德说-第139期, 数据库行业种内竞争的产物: pgx (得开发者得天下)》
递弱代偿
产品营销-《定位》: 七个葫芦娃、七个小矮人、世界七大奇迹.
产业生命周期: 萌芽 (Embryonic)、成长(Industry shakeout)、震荡、成熟和衰退