语言忠诚?离不开舒适圈?为什么程序员不喜欢更换编程语言?
今天想简单讨论下,为什么大部分的程序员都不喜欢更改编程语言。
这个灵感来源于我之前的一个经历。
我以前特别喜欢 C 语言,毕竟是通吃硬件的语言,使用起来很方便,时间一久我用得也熟,那时也觉得世界上没什么语言会比 C 语言的效率还高。
直到我第一次接触到 Python ,用它处理字符串和数据结构时,我傻眼了,这在 C 语言中不知道需要多少代码和内存管理,在 python 中用敲几行代码就搞定了。
现在我发现一种新的编程语言流行不起来,其实并不是因为它不够强大,主要在于编程语言不仅仅关乎技术,也是一种习惯性思维,非常难以改变,几乎跟改变一个人的信仰那样难。
比如我自己用 iVX 做程序很快,基本上是用 python 的 3 倍左右,但是我去推荐这个东西,就是推不开,不是技术的问题,是思维的问题。
编程语言的能力有差异,不同的语言适配不同的任务,当然,如果你要问我什么语言适配怎么样的任务,我只能说无可奉告,天知道要什么样的技术天才,才能把现在市面上所有的语言都玩一遍...
我自己知道的,也就 C 语言、iVX、python,一点点的 C++,严格来说 iVX 算是可视化编程,不过也具有语言的属性,我就一并算上了。
现在应该不会有人反对高级语言比机器语言更好用这个观点。徒手用机器语言写程序绝对不是一个好主意,甚至会让你在同行中显得很笨。
今天的码农一般也不会会去用机器语言编程,而是使用 C++、Java、python、C 语言、Rust 等等这种高级汇编语言,经过编译器翻译为机器语言使用。
但是还有一种更普遍的情况,将观点放大,那就是在你有好几种语言可以选择的情况下(当然大部分的人可能只会一两种语言),你不选择最强大的那个语言就是一种愚笨的行为。
很多人在看到这样的句子可能会不以为然,因为大家都相信自己使用的语言就是目前为止最强大的,而事实上,我们很可能会囿于自己的语言思维,被某种语言的局限性所困住,就像我在了解 python 之前一样,我也没觉得用 C 语言处理字符串和数据结构有多麻烦。
特别是年龄到达一定程度以后,程序员要更换自己的编程语言就更难了,难到几乎产品经理把刀架脖子上才肯做一下,这也就是前面说的“编程语言不仅仅作为一种技术存在,还是一种惯性思维”,不管习惯使用的是哪一种语言,他们往往会觉得这个语言已经足够好了。
我认识我们部门一牛人,常人可能也就会一两种语言就出来找工作入职了,一般初级的,掌握一种,最多两种;比较厉害的,可以掌握好几种,包括前端和后台;更厉害的,例如我们公司那个牛人,可以融会贯通所有编程语言,一门新的语言一天左右也就掌握了。
人家能做到技术主管的位置我是服气的,7 位数的年收入当真没白拿。
所以我自己也鼓励大家多接触不同的编程语言,比如 Lisp、iVX 、Java、python 这种热门的自不必多说,今年的 JavaScripts 也很火,推荐都学一下,技多不压身。
还有什么推荐好用的语言也别藏着,下面一起讨论下。
评论