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