中国软件“乱象”:产业级的“凑合”与系统化的“将就”丨RTE 技术环境月报 202207

各位开发者小伙伴:

这里是2022年第6期的 RTE《技术环境月报》——致力于成为对大家“有用”的 Highlight 看板。

月刊中的点评仅代表个人,如有不同观点,欢迎大家各种留言跟帖讨论。希望此后的日子里,《技术环境月报》能与各位如期相见、偶尔启发。以下为月报正文:

本期内容由 Mikey、Asui、Kyle、Tina 共同制作。


00. 本月好文推荐:《中国的软件公司为什么做不出产品

作者在文中表示,中国经济和软件产业的叠加不仅释放了巨大动能、也释放了巨大的振荡,这种振荡使得软件公司很难在中国市场找到稳定的需求,软件行业演变成了产业级的"凑合"和系统化的"将就",从而很难做出有效的产品——你都这样了,企业更不愿意为软件付费了。截至 2021 年 6 月底,国产关系型数据库厂商已达81家,操作系统和数据库被称为基础软件,如同芯片一样这如火如荼的背后却是令业内人顿足的乱象

也许有人对这种“高谈阔论”嗤之以鼻,认为不过是又一堆正确的废话,大而无用。一个简单的现象,有人曾骄傲地称国内的超(la)级(ji)APP 为互联网的新发明,你应该不难发现今天的程序都太臃肿了,许多移动应用的安装包的体积早就超过了电脑版的大小——更有甚者把虚幻引擎直接打包进了安装程序。对于这种做法不知道从业者作何感想?我想这应该是大多数企业开发的软件极端地缺乏效率的一个原因吧。

01. 【音视频】从底层框架到上层应用的新玩法


  • 在 2022 年瑞典流媒体技术大会上,Eyevinn 公司公布了一项针对广播流媒体 WebRTC 播放标准的 WHPP(WebRTC HTTP Playback Protocol)提案,针对非会议场景用于协商播放客户端消费 WebRTC 的广播媒体流
  • 谷歌最近宣布打算将旗下的 Duo 和 Meet 合并到一起,有人通过对比发现这两个程序对 WebRTC 的用法却大相径庭。Gustavo Garcia 在《WebRTC 在 Google Meet 中的使用》一文中提到了一些有趣的地方,例如 Google Meet 没有采用 P2P、也没有使用 TURN,增加了 RTP Header 扩展和 RTP 控制信令,视频编解码器采用了 VP9、音频编解码器采用了 OPUS 但有特殊的改动,媒体采集方面默认配置是 30 帧但处理时却限制为 24 帧。
  • 苹果推出类 AMD FSR 和 Nvidia DLSS 的超分技术 MetalFX,以吸引 3A 游戏大作的回归。但显然超分技术并不是问题的关键——而是 30% 的“苹果税”。另据报道,Intel 在 GDC(Game Developers Conference)2022 大会上宣布,即将推出名为 XeSS(Xe Super Sampling)的超分技术,XeSS 内置了锐化引擎、基于 AI 实时渲染、完全兼容 DirectX 12,预置了五种性能模式。
  • ARM 近期推出了首款支持光线追踪的移动端 GPU 产品 Immortalis-G715,并称这是移动领域向光线追踪过渡的开始。据报道 Immortalis-G715 的光线跟踪只占用了 4% 的着色器核心面积,通过硬件加速提供了超过三倍的性能。三星的 Exynos 2200 也支持光线追踪。
  • 视频会议太长不愿看怎么办?tl;dv 取自网上流行的短语 tl;dr(Too long,Didn’t read),而 tl;dv(Too long,Didn’t view / 太长,不看)的意思,能录制、转文本、打时间戳、高亮关键时间点…这些功能帮你提炼出视频会议精华,把你从冗长、低效的会议里解放出来……
  • Meta 在其 Messenger 应用中新增了通话标签,现在每天全球用户在 Messenger 上有超过 3 亿次的音视频通话;Zoho 也开始进军免费视频会议市场。

02. 【前端】一个市场要有竞争才有发展


  • React 初学者该如何选择文档?尤雨溪:推荐 Vite,网友:第三方工具没意义,吃瓜群众:哦。目前,前端领域尤其卷,虽然有众多框架,但由于没有新的场景出现,而用户可见的性能还有很大提升,因此前端框架之间越来越趋同,优化方法最终都相差无几。本来应该让用户根据需求选择框架,与其发生争端,不如埋头继续打磨自己的软件,让用户的选择来为自己说话。
  • 最近,JavaSricpt 最新标准 ECMASricpt 2022 获得 Ecma 正式批准。但这个标准的发布引起了一些 Web 开发者的不满。由于 Safari 和 Firefox 发布模式和速度的问题,一些 Web tooling 事实上只能在 Chromium 里使用。一些开发者认为,这在助长 Chromium 浏览器引擎的垄断行为。这种担忧也不是第一次了,2018 年微软放弃自研内核转向开源 Chromium 时,就有人评价此举是在减少浏览器操作系统的多样性。显然这样的担忧没有考虑到“开源”系统本身就是开放的,而且采用与 Chrome 相同内核能显著地减少开发者适配不同浏览器的工作量。当然,Safari 浏览器也有自己的问题,毕竟浏览器是门大生意。
  • Mozilla 宣布对所有 Firefox 用户默认启用 Total Cookie Protection,它为每个网站创建了“cookie 罐”,防止 cookie 用于跨站跟踪,这是 Mozilla 至今推出的最强大的隐私保护功能。
  • 如今愈来愈多的企业选择云服务供应商提供的数据库,而不是老牌的甲骨文,在估值 1550 亿美元的数据库市场中,这只是一些小浪花,但却是该行业发生结构性转变的先兆证据,可以说目前最成功的 serverless 其实是 AWS 的 S3。
  • 微软、Epic Games、Meta 和其他 33 家公司和组织成立了一个“元宇宙”技术标准小组,以推动 AR/VR、地理空间和 3D 技术的开放、可互操作的标准及其他务实的、基于行动的项目。
  • 杜比发布 WebSDK 3.5 版,作为第一个与 WebRTC 解绑的供应商,杜比在其 WebSDK 中使用了特有的音频堆栈和编解码器。

03. 【网络】人们容易忽略:网络从来都不是稳定可靠的


  • 由于互联网的高速发展,现有的 IPv4 地址即将枯竭,因预留、无效或用于回环网络而未被路由的超过 4 亿 IPv4 地址显然是一种巨大的浪费。尽管 IPv6 的普及在加快,并且IPv6 的协议栈比 IPv4 的更简单,但 PanSift 的数据显示采用 IPv6 后的网速并没有比 IPv4 更快并且企业对于 IPv6 的改造因投入较大而缺乏动力。Let’s Encrypt 在亚太互联网运营技术会议上表示正在着手清理上述 IP 地址,这 4 亿地址段被释放出来将极大缓解上述问题。

  • HTTP/3 RFC 正式公布。HTTP/3 从技术上完善了很多 HTTP/2 基于 TCP 未能解决的问题,HTTP/3 很多概念也远比 HTTP/1 复杂。那么接下来要看 ISP 何时会开放基于 QUIC 的 UDP 包,当然业界应用顺利迁移到新协议仍需较长的一段时间。

  • 声网 AUT(Agora Universal UDP-based Transport Protocol)协议的落地实践》介绍了声网在实时互动的场景下,通过自研将异构网络下的各种传输控制能力汇聚起来,用一套传输协议/框架解决各项业务不同传输需求的实践经过。

  • Meta 的工程师介绍了其在研发的云游戏基础设施,Meta(Facebook)早在 2020 年就推出了其云游戏平台,Meta 系统通过创建基础设施和解决云游戏的挑战为元宇宙的解决方案提供一种尝试。对于云游戏,NVIDIA、Google、Sony、NETFLEX 等 IT 巨头分别提出过不同的解决方案。本月推荐2篇从网络角度的分享:《基于边缘计算的无线多人互动VR游戏系统》这篇论文介绍了在满足用户绝对时延、总渲染资源、总带宽资源、总后处理资源、设备总能量等一系列约束条件下,通过联合进行决策和分配资源来最小化用户间时延差的优化问题。而 Roblox 公司则提出了将网络视为渲染器的解决思路。

  • 6月21日,Cloudflare 突遇大规模宕机事故,大约有 4% 的网络和 50% 的 HTTP 请求受到影响,导致该事故的原因是网络配置错误,这也是大多数严重宕机事故的主要原因。

04. 【开发 & 运维】你知道 Rust 势不可挡,也别忘了好好写文档。


  • StackOverflow 发布了 2022 年度开发者调查报告,Rust 连续第七年成为开发者最喜欢的编程语言,JavaScript 仍是最常用的语言,Phoenix 是开发者最喜欢的 Web 框架。另外值得注意的是,WSL(Windows Subsystem for Linux)的使用率从 2021 年的 3% 增加到了 14%;在调查的开发者中,43% 是完全远程工作,42% 是混合工作,只有 15% 是完全线下办公。
  • 在 Linux 基金会举办的开源峰会上,Linus Torvalds 称 Rust 语言最快将在 Linux 5.20 开发周期中合并到内核,与此同时 Rust 开发者 Miguel Ojeda 在博文中介绍了 Linux 支持 Rust 的下一步计划:示例驱动,稳定 Rust 功能,用 GCC 编译内核 Rust 代码,等。研究公司 SlashData 发布的最新开发者报告显示,使用 Rust 编程语言的开发人员数量在过去的 2 年内增加了两倍、达到 220 万。但人气越大、压力也越大,Rust 还面临很多挑战。
  • 为什么开发团队写不好开发文档?通常来说文档很难维护,并且编写和维护文档通常不被重视,并且写文档很难纳入岗位的考评,甚至人们对什么是“好的文档”缺乏认知。我想,这也是许多公司里到处都是代码屎坑的一个重要原因。
  • 在被收购 4 年后,GitHub 正式宣布将于 2022 年 12 月 15 日结束 Atom 编辑器的生命周期。与此同时原 Atom 团队全新推出了用 Rust 编写的快速协作代码编辑器:Zed。此外 GitHub 近期还宣布其 AI 编程助手 Copilot 开放付费使用。此举引发许可授权和安全方面的争议
  • 2022 年云和 DevOPs 趋势报告》中提到 FinOps 将走向成熟,eBPF 和 WASM 是令人振奋的新技术,低代码或无代码平台继续成熟,特别是用于内部工具和自动化用途,云原生应用采用无服务器和分布式 SQL 数据库的情况也越来越多,相应地数据的可观测性在企业业务系统故障排查中的作用也越来越重要。

2022DevOPs

05. 【开源、安全及其他】显卡厂商的开源大不同


  • 开源邮件客户端 K-9 Mail 宣布加入 Thunderbird,即成为 Thunderbird 的移动版。K-9 Mail 的维护者 Christian Ketterer (aka “cketti”)成为了 Thunderbird 的全职开发者。目前移动客户端计划中的功能包括:账号设置使用 Thunderbird 账号自动配置,改进文件夹管理,支持信息过滤器,在桌面和移动版本的 Thunderbird 之间进行同步。
  • 开源数据库 MongoDB 正准备发布 6.0 版本。新功能包括了加密查询和时间序列数据。
  • 英伟达近期正式发布了官方的 Linux GPU 驱动内核模块,源代码采用 MIT/GPL 双许可协议,但用户空间库和 OpenGL / Vulkan / OpenCL / CUDA 驱动程序仍然是闭源。
  • AMD 近期正式放出了 FSR(FidelityFX Super Resolution)2.0 的源代码,采用 MIT 协议。
  • 关于代码审计的16条心得:作者为初创团队审计代码五年,发现了从“有点意思的”一直到“灾难性的”各种安全问题。相比10年前,现在的基础设施和软件框架在安全方面都有了长足的进步,因此现在的软件安全系数更高,但所有不安全的问题代码通常都非常糟糕,尤其注意不要对不信任的数据进行反序列化——看看这些年 Java 和 PHP 因为这个问题导致的漏洞你就明白是什么意思。
  • 最近的2个漏洞及其分析》黑哥在 Web 安全上常有刁钻的思路,Crash 不是漏洞触发唯一标准。

06. 近期值得关注的会议

会议名称 会议时间 会议地址 主办方
【收费】QECon 深圳 2022年7月8 ~ 9日 深圳湾万丽酒店 QECon 组委会
【免费】ECUG Con 2022 2022年7月10日 在线 ECUG 社区
【免费】KCon 2022 2022年8月6 ~ 7日 在线 知道创宇

07. 开源项目推荐

  • eCapture:是一个基于 eBPF 实现 TLS 加密的明文捕获工具。
  • CeresDB:是蚂蚁金服开源的、用 Rust 实现的一个时序数据库,能够同时处理时序型以及分析型负载。
  • 妙言:一个用 Swift5 编写的开源 Markdown 编辑器。
  • usbsas:是一个用 Rust 编写的、基于 GPLv3 协议的开源和免费安全检测工具,可以用来减少未知 USB 设备的攻击面。
  • 四个开源的远程桌面客户端:开源远程桌面客户端软件RustDesk、Windows 远程管理工具 Quasar、远程桌面协议实现 FreeRDP 以及基于 Java 的远程控制桌面

《RTE 技术环境月报》——致力于成为对大家“有用”的 Highlight 看板 ——每月初通过 RTC 开发者社区和声网开发者公众号以及 EDM 邮件等渠道发布,恳请大伙儿多转发、多反馈。

对于任何反馈**(包括但不限于内容上、形式上)**我们不胜感激、并有小惊喜回馈,例如你希望从“技术环境月报”中看到哪些内容;自己推荐的信源、话题、会议等;或者列举几个你喜欢看、平时常看的内容渠道;内容排版或呈现形式上有哪些可以改进的地方等。

我们欢迎更多的小伙伴参与“月刊”内容的共创,感兴趣的朋友请通过开发者论坛或开发者公众号联系,记得报暗号“共创”。

由于文中内容包含较多信源超链接、建议大家前往「RTC 开发者社区」或使用我们的邮件订阅服务,以获得更好的阅读体验。