工业界编程语言的老大哥 C++ 曾一度被人们誉为屠龙宝刀,虽然深不可测但无龙可屠。但近年来,随着硬件增速放缓、对算力的要求不断提高与 C++ 自身长久以来稳步的发展,曾被许多人断言过气的 C++ 竟又慢慢红火了起来,在去年更是一度拿下了 TIOBE 年度编程语言。
其实 C++ 语言与编译器一直都在持续演进,出现了许多令人振奋的新特性。例如 Coroutine、Module 等语言特性与 AutoFDO、ThinLTO 等编译器特性。同时还有许多新特性在孵化阶段,例如 SIMD、Network、Static Reflection 等特性。除此之外,还有许多小更改以提高运行效率与编程效率。
然而对于许多工业级 C++ 项目的开发者与管理者而言,虽然理解新的语言标准与编译器能带来收益,但因为无法确定升级过程中会遇到的问题与风险,也无法做出升级的决定,导致许多工业级 C++ 项目依然用着较老的编译器版本与语言标准。从而无法享受到新语言标准和新编译器所带来的红利。
与此同时,以安全高性能著称的 Rust 语言日渐成熟,号称下一个 C++ 的 Carbon 语言来势汹汹,已过了不惑之年的 C++ 将怎样面对新生代的冲击?
本次议题将从在 Clang/LLVM 开源社区实现 C++ 新语言特性与在企业中大规模应用 C++ 新特性两方面谈起,结合在 C++ 生态演化的上下游中所得到的体验,讲述对 C++ 语言生态发展趋势的观察与预测及其与之相对应的影响。
Go 语言作为最流行的云原生语言,近些年拥有很高的热度,众多企业也在近年来转型 Go 语言技术栈。而在 Go 语言生态成日益蓬勃发展之势下,其生态的完备性,相比于其他生态依然有着很大的差距,对中小型企业来说,依然需要类似于 Spring 的 Go 框架来支撑日常业务开发,渴望具备 Dubbo生态的易用性和稳定性,在这样的诉求之下,Dubbo-go 服务框架应运而生。Dubbo-go从单体架构到云原生架构的一步步发展,都在努力将业务代码与中间件解耦,尽可能提供统一的编程接口,通过AOP的思路将服务调用抽象化,将接口标准化,将基础设施的实现下沉化。Dubbo-go 也是在原有保证网络通信的高可用、稳定性的前提下,整合了一批常用开源组件,提供一致的编程接口可供扩展和调用,但是我们的“野心” 不会止步于已有的用户使用场景和基础框架能力,我们选择追求高可用、多语言、跨生态的优点,打造新一代微服务基础设施,实现 “Bridging The Gap Between X And Go”,在扩展 Go 生态的同时,也简化 Go 微服务开发并提供丰富服务治理能力。