03.03 作为程序员应该以什么样的态度对待编程语言、IDE和编辑器之争?


回答这个问题一定会引起一些共鸣,同样也会引起争议(之前一个代码换行问题就引起了极大的争议),但是不管怎么说这些争论总归还是有意义的。我从事软件开发工作10多年,分别使用过汇编语言、VB、C、java、python、PHP、js,其中java使用的时间最长,其次是C和python。编辑器以及各种IDE集成开发环境也使用过不少,今天就跟大家聊聊我的看法。

先说语言,我觉得使用什么语言进行开发,主要还是看目前的主攻领域。如果从事web领域的开发那么无疑java和python是比较好的选择,当然还有那个万年青——PHP(不开花也不枯萎)。我对这三个语言都比较熟悉,怎么一个一个分析一下。

先说java,这个语言从一面世就嘴里含着互联网的金钥匙,被定义为互联网的普通话,虽然当时的Sun江河日下,但是java却得到了广泛的使用,20多年来java语言长期占据着语言排行榜的霸主位置。就其原因无非就是一个快字,快在它的多线程解决方案,快在他对编译器的深度优化。当年java web能把如日中天的CGI推下神坛靠的是三把斧:多线程、可扩展、可移植。那张对比图深深刺痛了CGI,也深深吸引力众多web开发者,再次重温一下:

众多开发者带着一丝愧疚(其实遗憾更多一些)转向了java,我最后一次听到同行谈起CGI的开发是2003年一次在乘坐电梯的过程中,从此以后再无CGI的消息。目前的java势头依然很猛,在移动端由于安卓的使用也得到了迅速的发展。但是做java开发有一点比较头疼,同一个功能用java实现几乎是代码最多的。

再说说Python和PHP,这两个语言在web领域也有广泛的应用,Python和PHP都赢在了简单上,这两个语言在web开发上比java要简单一些,虽然没有java速度快,但是没有人喜欢复杂,尤其是非电商网站。PHP拥有天然的热部署特性,在web开发上有悠久(不容易)的历史,自然拥有众多稳定可靠的解决方案。Python这几年由于机器学习领域的兴起也得到了更广泛的使用,因为Python有两个非常强大的库:numpy和matplotlib,这两个库简直让机器学习的算法实现变成了选择题。伴随着机器学习领域的发展,相信python还会继续增长的势头,php我就不评论了,这个号称最好用的语言真是没办法评论,我相信它还会持续万年青的信仰。

再说一说C语言,我用C语言的开发时间并不长,也就在1年左右,在Linux环境下使用vi编辑器。真是应了那句话:神一样的语言配合神一样的编辑器。C语言绝对是程序语言界的实力派和偶像派,有这么一句话:真正的程序员使用C语言。C语言的江湖地位这么多年从来没有被撼动过,即使火的不得了的java也没有完全盖住C的光芒。但是目前C语言的使用场景伴随着物联网的应用也逐步普及到我们每个人的身边,各种可穿戴的嵌入式智能设备大多采用了C语言来开发。

关于IDE和编辑器,我使用的比较顺手的有editplus、Eclipse、vim(还在不断探索中)、netBeans,总体感觉都差不太多,就不在这里探讨了。

大家对这几个语言和编辑器有什么看法呢?


IT人刘俊明


首先 如果是真正的程序员,那必然是已经掌握了至少一门语言,这样才会有人雇佣你。如果你还没有工作经验,只是在网上发帖胡说八道,那请不要说自己是程序员。

比如你是php程序员,那说明你们公司,或者是你们项目组的人都是php程序员。那么请问你有什么必要去争论哪个语言好? 难道你用PHP做项目的时候,还有去和其他说,其实java更好?

第二 作为程序员,有可能你想学习其他语言,想比较其他程序的好坏。那么你考虑的很多的应该是项目和未来的方向。

比如你是一个php程序员,那么将来你打算做安卓开发,就应该去学java,如果你想将来从事人工智能活着数据分析,那么就应该去学Python。

第三 一定记住,对于程序员,算法和经验永远比语言重要的多的多。

与其争论语言,不如去争论算法。

如果你去看看亚马逊,谷歌,facebook这些大公司的招聘广告,绝对不会看到什么招聘java程序员,招聘c程序员。而是招聘"web工程师","机器学习软件工程师"。

所以,人家根本不在乎你用什么语言,人家看中的是你在某一个领域知识的深浅。

如果你在web开发上有很多的经验,真心独立开发过一个web程序,对web相关技术非常熟悉的话,你应该可以随便用任何语言进行开发。

第四 真正需要去比较各个语言的优缺点的程序员,应该是一个公司的构架师或者技术大拿,在项目启动选型的时候才会去考虑这些。当你在这个领域已经有了很多的经验,各个语言的优缺点已经很清楚了,已经没有什么必要去争论了。

最后 说一下IDE仅仅是工具。我的建议是,用自己最喜欢的,但是要勇于尝试新事物。IDE就好像我们买车一样,你应该每一种都去试着开一段期间,然后选择自己最习惯的。


shawn25


你想买辆什么车?所以,首先的一点是你的目的是什么?不管是什么编程语言都有它产生的原因,比如C语言比汇编语言更容易阅读,但汇编在特定领域仍然存在;C++比C语言多了面向对象的进步,但在操作系统级C更适合一些。随着技术的发展,场景的更迭,会有更多的语言产生,但更重要的是你用语言是来解决问题的。单片机早就出现32位了,但8位的单片机出货量更大一些,无他,应用场景而已。爸爸好还是妈妈好?不要告诉我有钱好。


分享到:


相關文章: