英文原文:The best programming language - Coding Geek
我在工作闲暇的时候,喜欢阅读技术论坛。其中有一类文章我特别喜欢:编成语言之间的唇枪舌战。我之所以喜欢这类文章,是因为你可以看到一些充满激情和智慧的人好像在用生命争辩一样。
这些文章有两个特点:
- 我可以当乐子
- 我可以学到新东西
如一篇Java新手写的帖子:Java is the best language
NewJavaFanBoy: Java is the best language because of its community. Moreover, it has really cool features like lambdas. Why so many people hate Java?
FormerJavaFanBoy: Oracle killed Java.
DotNetFanBoy: The evolution of Java is too slow, C# had lambdas a while ago. Moreover, some critical features like optional and named parameters are not in Java. Now that dotnet is more open sourced and can be run on Linux with Mono, Java is going to die.
TrollRoxxoR: BecauseJavaDevelopersDontKnowHowToWriteCode
RealG33k: Both your languages are for kids, C++ is way better but it’s for real developers only. Do you even know what SOLID means?
HipsterGeek: So old and lame … you should try Node.js, it’s based on asynchronous calls and it’s very fast.
LinusTorvalds: Pussies, a real developer uses C or assembly. You can’t have performances with those high level shits.
我讨厌PHP。我可以解释为什么;因为在我14岁的时候我尝试学习PHP,然后它把我脑子搞乱了。但是,你才怎么着,你读的这篇文章恰恰在使用PHP/NGINX的服务器上。我很擅长Java,我完全可以使用Java实现。但是,WordPress是一个很棒的平台。虽然它被极简主义者看不起,但是它正好符合我的需求。我的博客不需要非常快,我只需要一个能够分享我的观点,友好的界面。
所有我认为:没有最好的编程语言,而是根据你具体的情况选择。
1 你是否需要性能
如果是,你需要哪种级别的性能。
- 秒级?所有的编程语言都可以做到。
- 毫秒级?好的程序员都可以做到。
- 微秒级?这个阶段,你可以排除所有的解释型语言(python)。好的程序要也可以用Java,C#完成。当然,纯编译的语言都可以完成。
- 纳米级?只有汇编或者C语言可以完成。
2 关于编程环境
编程环境比语言本生更加重要。
我在大学里使用过Visual Studio,被它完善的生态系统叹为观止。
现在我使用Eclipse。即使在Java社区,使用Eclipse的会被使用Intellij IDEA的看不起。Eclipse是一个开源的,可视化的Java开发环境。相较于Visual Studio统一的生态环境,你会发现Eclispe的插件逻辑各不相同。
但是,如果有开发工具是很好的,但是知道怎样使用会更好。举一例子,当我开始使用Java,我写代码非常慢。我尝试记住一些常用的Eclipse快捷键,这改变了我的开发之路。同时我也寻找有用的插件,Eclispe有很多丰富的插件。
3 关于在线帮助
就算你使用了最厉害的编程语言,也不可能掌握这门语言的所有知识点。使用流行的编程语言有助于你找到帮助。只需要简单是使用Google或StackOverflow就可以找到答案。如果你想深入了解,你也可以查看官方文档。(如果存在的话)
4 关于技能
如果开发人员不知道计算机工作原理,使用编译型语言就像自杀一样。对于极简主义者,我不知道知道计算机怎么工作的并不会使你成为一个出色的开发人员。(即使我承认,它是有帮助的,但是有其他更加重要的技巧)。
使用流行的工具比使用最好的工具要更好。并且,很多开发人员都喜欢都编程爱好者。使用他们自己喜欢的语言有助于提高他们开发积极性。
商业的角度
一个客观的观点是,什么是最符合需求的语言。这并不是意味着它们是最好的,但至少你可以得到一个工作。这种情况,Java,C#,PHP,SQL和JavaScript是最好的选择。
最为一个技术领袖,选择使用什么技术之前,最好做市场调研。如果你使用了最好的,但是很少使用的技术,那么很难找到这方面的开发人员。但是,技术一直在变化,ActionScript不久之前还很流行,同时,随着Swift的流行,Objective C会逐渐退出舞台。
最后,我用简单但是浅显的话总结:
不存在最好的编程语言或框架
现在最好的明天可能就不存在了
编程语言只是一个工具而已
重要的是你解决问题的方式