公告:文章会第一时间发在微信公众号《魔笛手CTO》,欢迎关注
魔笛手在发展初期并没有具体限制程序员使用哪一种编程语言,除了主流的Python,还有Node.JS、Go、Lua、C#、PHP等,加之目前公司正在使用Java重构原服务,光老张自己现在就要同时维护四门语言。
老张从入行就开始写Python,对于Python可以说是精通了,虽然之前也使用过其他语言,但是突然之间要写Java、JS还有Go,要在不同的语言之前切换还是非常的不适应。
从写一门语言到突然开始写多门语言,最大的弊端就是之前可以熟悉语言特性、研究语言的高级语法、掌握语言的小技巧、避开不易觉察的坑,但是现在只能选择普适的语法,写出来的代码不可避免的会丑陋许多。
举个例子,写Python的时候,列表表达式随手就来,Map、Reduce也可以根据需要拿来就用,但是对于Java、JS只能是保守的通过循环语句来实现,更不要说Go作为一门年轻语言,语法同上世纪的编程语言已经产生了鸿沟。
//老张刚开始写出的丑陋的JS代码
if (typeof str === 'undefined' || str !== ''){
f(str);
}
个人觉得,简单的把玩多少语言都不算困难,365天可以每天都选择一门语言打印“HelloWorld”,但是短时间内使用多门语言维护项目还是有一定难度的。对于个人而言要做到熟练掌握的话,老张觉得三门语言不能再多了。对于公司而言也要避免被语言的多样性拖累