以往的编程语言实际上大多都有局限性。
汇编就不说了。
C可以干任何事,但即使干些容易的,简单的事也需要你是一个相当水平的程序员。而且即使是相当水平的程序员,其开发能定的用于生产的应用,也通常要花远多于其他语言的时间。C程序的组件重用从来都不简单,效率永远是C语言最大的痛。
借助面对对象的特性及继承,C++在重用组件方面比C好了很多,利用类形成的框架,使得中等水平的开发人员可以完成很多工作并应用于生产。但因为继承了C,使得内存安全问题仍然存在,大多数C++程序隐藏着大大小小的bug。C++需要兼容50年的历史,且在不停的加入现代语法,当前的C++事实上已经成为三到四种语言,不同时代的C++程序员心目中的C++很可能不是一个东西。
Java崛起很大是因为C++的拉跨,Java的标准一致性使得程序的设计架构质量有了保障,GC及不采用指针规避了大部分内存安全问题,极大的提高了开发的效率及最终输出的生产稳定性。总而言之,Java在C/C++之后唯一性能可用,开发效率大大提高的后端服务开发语言,极为契合互联网初期那种快速变化的需求。但互联网告别高速扩张阶段,进入精细化运营时。Java的性能及资源会成为其最致命的弱点。
Go语言算是一个半拉子的产品,但借助Google及云原生,有了自己的一片天地。Go与Java是竞争最激烈的难兄难弟。
Python是几者之间最佳的原型构建者,小型程序的开发工具,各种不同的组件的最佳粘合剂。但纯粹用Python做高并发,高负载的服务器后端开发应该是错误的选择。
RUST与C一样,可以干任何事,但与C不同的是,它干任何事都不会拉跨。RUST实际上提供了两种场景:
- 初级及中等水平的程序员,RUST可以被认为是一门难度稍微超越Python,但低于其他语言的合适开发工具。目前需要等待一些框架生态,只要合适的框架出现,中等水平的RUST程序员开发效率将不会比Java差,且会得到远超Java性能的后端应用,与其他应用。
- 对于高级程序员,利用RUST可以完成操作系统内核级及框架级别的开发。开发效率及程序质量将大幅度超过C/C++,与Java/Go基本达到一个等级
RUST的生态正在快速发展,当所有的程序员都意识到RUST是适合所有软件产业链领域的开发时。再上车是不是就晚了。
自推荐:深入RUST标准库内核 目前在github上已经超过450星
更多推荐
RUST与C/C++/Java/Go/Python应用领域比较
发布评论