编程语言的选择和对比
有人说php是世界上最好的语言,有人说python是大数据时代最好的语言,有人说C是最经典的语言,有人说java是应用最广泛的语言。
在之前很长一段时间里面,我都认为编程是跟语言无关的,直到最近项目中出现了一系列的问题,于是重新开始审视这个问题。
python的工程存在以下的问题:
- 变更太方便了,push上去代码,重启就好了。
- 传参太随意了,传int和string随便来,当需要验证数据类型的时候就蛋疼了。
- 工程化起来,也是1w个人基本上有1w种写法。
如果代码写的好,考虑的周全,以上问题都不是问题。但是太依赖于人的事情毕竟不是好事情,于是想到了需要静态编译的编程语言,虽然在开发阶段有一些门槛和不爽的地方,带来的好处就是线上不容易出问题。
当前最火的静态编译语言无非就是C/C++/Java/Go,再考虑到应用场景,C/C++不太适合做web项目,在网上找了一些对比Java和GO的文章:
除了考虑语音本身的特性,我们还需要关注什么?
- 工程问题。编程语言自己需要规范,还需要检查工具的配合,例如静态扫描工具等等
- 开发实践。通常解决一个问题,有唯一的写法是最好的,因为这样最便于检查和传承,要不然任由程序员天马行空的想想,后面接起来就很麻烦
- 第三方库的支持。第三方库是提升开发效率的利器,别人写好的东西就不要重复造轮子了
- 部署服务。线上部署的时候依赖少,可靠,才能受到公司的青睐,不要因为线上机器没有外网ip,依赖库的版本不对,这样就比较糟心了。不过docker的出现让这个事情有了比较大的改观
- 调试工具。线下代码出问题,调试起来麻烦找不到问题,这个也是很麻烦的事情。