## 学习成本、开发效率与运行效率

最近学习了几个月的rust，加上前两年学习的go和python语言，本身已经掌握了比较多的编程语言了；
最近总是在思考对比这些语言的特性和学习的过程，我发现像微服务设计领域的CAP理论一样，在编程语言的学习中也有这么一个定理：
编程语言上手速度，开发效率和代码运行效率也是不可皆得，很多时候只能取其两项；
比如快速学习语言的语法，特性以及相关库/包的使用，且要满足较高的开发效率，那运行效率必然要有牺牲，最典型的当数python了
而如果想快速学习，且运行效率较高，那就会面临较低的开发效率，此处可以举例Go和C语言，两者的学习上手都不是很难，运行效率也相对较高，但是要开发复杂的业务时，语言特性的简单在这时候就面临需要编写更多代码的情况，且C语言还要面临内存溢出或误操作内存等情况
对于较高的开发效率和运行效率，能够满足这两种特性的语言目前我所了解的就是rust了，rust的宏、面向表达式的设计等特性使熟练的rust开发者可以实现一些在Java/Python等语言中才能实现的逻辑，但是前提是需要熟悉rust本身诸多的语言特性，面临较复杂的学习曲线
