有人说php是世界上最好的语言,有人说python是大数据时代最好的语言,有人说C是最经典的语言,有人说java是应用最广泛的语言。

在之前很长一段时间里面,我都认为编程是跟语言无关的,直到最近项目中出现了一系列的问题,于是重新开始审视这个问题。

python的工程存在以下的问题:

  1. 变更太方便了,push上去代码,重启就好了。
  2. 传参太随意了,传int和string随便来,当需要验证数据类型的时候就蛋疼了。
  3. 工程化起来,也是1w个人基本上有1w种写法。

如果代码写的好,考虑的周全,以上问题都不是问题。但是太依赖于人的事情毕竟不是好事情,于是想到了需要静态编译的编程语言,虽然在开发阶段有一些门槛和不爽的地方,带来的好处就是线上不容易出问题。

当前最火的静态编译语言无非就是C/C++/Java/Go,再考虑到应用场景,C/C++不太适合做web项目,在网上找了一些对比Java和GO的文章:

除了考虑语音本身的特性,我们还需要关注什么?

  1. 工程问题。编程语言自己需要规范,还需要检查工具的配合,例如静态扫描工具等等
  2. 开发实践。通常解决一个问题,有唯一的写法是最好的,因为这样最便于检查和传承,要不然任由程序员天马行空的想想,后面接起来就很麻烦
  3. 第三方库的支持。第三方库是提升开发效率的利器,别人写好的东西就不要重复造轮子了
  4. 部署服务。线上部署的时候依赖少,可靠,才能受到公司的青睐,不要因为线上机器没有外网ip,依赖库的版本不对,这样就比较糟心了。不过docker的出现让这个事情有了比较大的改观
  5. 调试工具。线下代码出问题,调试起来麻烦找不到问题,这个也是很麻烦的事情。