XuLizhao 's Notes

时光,漫步


  • 首页

  • 技术

  • 文档

  • 关于

  • 搜索
close

谈编程语言

时间: 2019-12-30   |   分类: Tech     |   阅读: 1454 字 ~3分钟

今年是变化的一年,自己最大的收获就是认识到视野和选择远比努力重要。

打开视野后,感觉自己以前对于编程语言的理解还是太片面了,所以重新谈谈现在的认识。

一句话总结的话,还是那句老话:没有最好语言,只有最适合的语言。 语言只是解决问题的一个工具。

历程

回头看,之前对于编程语言还是带有太多主观感情色彩了,有点类似于Python是世界最好的编程语言。

大学学的C语言,可能是因为国内教材的毒害作用,加上天资不够,对于上机课一直兴趣不大。所以也没有深入理解这门经典编程语言的精髓,没打好基础。

刚毕业的头两年主要用Java,可是没有人带,没有好的入门书,对好的代码没有太多认识,更别提面向对象编程思想了。 正式买的第一本书是《Java编程思想》,应该说它真不适合入门,因为工作主要是维护现有的系统,自己学习的路程更多是照猫画虎,所以水平只能呵呵了。

后来换工作转到测试,要维护一个Perl写的系统,就买了经典的骆驼书来学习。不得说Perl这门语言真是太面向极客了,这种一个目标的N种实现,没有多少人受得了。

对我改变最大的当然是Python语言,当时热衷于阅读国外的技术博客,偶然看到了Mozilla的自动化测试实现,一下子开拓了视野。 记得买的第一本书是英文影印版的老鼠书《Leaning Python》,后来又买过好几本其他畅销书。

Python更接近自然语言,而且它强调一个目标只有一种实现(即所谓的Pythonic)。 所以自然爱上了这门语言,当时做自动化测试实现,性能测试实现都会优先选择Python生态,也确实取到了很好的效果。 记得当时选型Robot Framework时,国内还没有多少人在用。

凡事都有两面,因为喜欢Python而反感Java,虽然期间也维护或写了些Java的项目,但其实对Java的理解并不深入,应该说更多只是用用。

后来用Python做性能测试遇到瓶颈,因为性能本来是Python的弱项,直接用线程模型单机也就模拟3000~5000的用户量,加上用gevent这种异步库调试起来很痛苦,才有机会接触了Go.

因为自己是个Google粉,除了网络教程还买了《Go程序设计语言》用来学习,先是在一些新的小项目应用,效果很好。 后来干脆用Go重写了之前的工具,估计代码量只用了1/10,但单机模拟用户量能提升10倍。

今年下半年也开始重新学习和认识Java,虽然Spring Boot刚出来时就用过一点,但在深入学习了依赖注入、面向切面这些听起来高深的知识后,发现Java生态已早不是我印象中的Java。 比如Java8及新版本就改变很大,也有Guava、Netty等优秀的库框架支持,更不用说Spring生态提供了多少成熟的业务支撑。

做个对比,熟悉Spring后,实现同样的REST接口并不比Django、Flask等动态语言慢,而且业务需求复杂后明显Java项目可以更好的工程化。

这也告诉我们要以发展的眼光看待事物,心态要始终开放。

语言的选择

从更大的视角看,每个流行语言都有它的优缺点和适用场合。

  • Java: 最丰富和成熟的生态,复杂的业务首选。
  • Python: 快速开发实现,新手入门、运维首选,数据科学标配。
  • Go: 性能第一位,基础设施工具、中间件首选。

总结

大部分的选择都有两面性/trade-off、取舍、平衡,推广到做事情,所谓舍得(有舍才有得),老子云:“福兮祸所依祸兮福所伏”,也可以解读为顺利时不盲目、不顺时要反思改进。

今年总结的另外一句话是:跳出舒适区,进入学习区,才能走进更大的舒适区。

此篇算作2019的年底总结吧。

  • 本文作者: xulizhao
  • 本文链接: https://xulizhao.com/blog/programming-language/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
#dev#
读书笔记:程序员的职业素养
DDD/领域驱动设计
  • 文章目录
  • 站点概览

xulz

时光,漫步

56 日志
3 分类
28 标签
  • 历程
  • 语言的选择
  • 总结
© 2017 - 2023 XuLizhao 's Notes
Powered by - Hugo/ NexT
津ICP备17010344号-1
0%