当我想在工作中休息一下时,我有时会阅读技术论坛。有一种帖子我真的很喜欢:编程语言之间的火焰战争。我喜欢这些帖子,因为你可以看到充满激情和聪明的人,他们正在争论,好像他们的生活正在发挥作用。
这些职位有2个优点:
- 他们让我笑
- 我学新东西
如果我必须总结这种帖子,那将是这样的:
帖子标题“Java是最好的语言”由NewJavaFanBoy撰写
NewJavaFanBoy:Java是最好的语言,因为它的社区。此外,它具有非常酷的功能,如lambdas。为什么这么多人讨厌Java?
前JavaFanBoy:Oracle杀死了Java。
DotNetFanBoy:Java的演进太慢了,C#不久前就有lambdas。此外,一些关键功能(如可选参数和命名参数)不在 Java 中。现在,dotnet更加开源,可以在Linux上运行Mono,Java将会消亡。
TrollRoxxoR: 因为JavaDevelopersDontKnowHowToWriteCode
RealG33k:你们的语言都是为孩子们准备的,C++更好,但它只适合真正的开发人员。您知道 SOLID 是什么意思吗?
臀部terGeek: 太老了,太跛脚了...你应该试试Node.js,它基于异步调用,而且速度非常快。
LinusTorvalds:Pussies,一个真正的开发人员使用C或汇编。你不能和那些高水平的狗屎一起表演。
我讨厌PHP。我无法解释为什么;那一定是因为我在14岁时试图学习它,它搞砸了我的大脑。但你猜怎么着,你正在使用PHP / NGINX的服务器上阅读这篇文章(顺便说一句,这是一个踢屁股服务器)。我擅长Java。所以,我可以使用一个在快速胖JVM上运行的Java框架。但是,WordPress是一个很棒的平台。它经常被纯粹主义者看不起,但它显然满足了我的需求。我的博客的目标不是成为世界上最快的博客(尽管它令人惊讶但痛苦地在2个Hacker News和Reddit首页中幸存下来,涉及500个同时连接)。我只是想要一个用户友好的界面,我可以在其中分享我的想法。
这就引出了我的观点:没有最好的编程语言,这取决于具体情况。
1)你需要表演吗?
如果是,我们在谈论什么样的表演?
- 秒?每种语言都可以做到!
- 毫秒?每一种语言都有优秀的程序员可以做到这一点。
- 微秒?在此步骤中,您可以删除所有解释型语言(如python,这是一种很好的语言)。我知道一个经过良好调整的JVM和非常优秀的Java程序员可以做到这一点。我想C#也是如此。当然,纯编译语言可以解决这个问题。
但在所有这些情况下,程序员的技能比语言更重要。
- 纳 秒?只有汇编或C可以处理这个问题。
因此,在大多数情况下,开发人员的技能才是最重要的。
2)生态系统是怎样的?
除了语言本身之外,生态系统也很重要。
在奖学金期间,我使用过Visual Studio,我对微软生态系统的一致性感到惊讶。
现在,我更像是一个Eclipse人。即使在Java社区中,Eclipse也被现在使用IntelliJ IDEA的纯粹主义者所鄙视。Eclipse是由不同的人开发的开源软件,它清晰可见(以一种糟糕的方式)。与Visual Studio的一致性相比,您将在Eclipse的不同插件中找到不同的逻辑。
但是,如果拥有工具很棒,那么知道如何使用它们会更好。例如,当我开始使用Java时,我非常慢。我通过炉膛学习了一些Eclipse关键字,它改变了我的开发人员生活。我也在寻找有用的插件,Eclipse有很多插件,因为它是一个丰富的生态系统。
3) 在线帮助有什么关系?
好吧,你正在使用你的kickass编程语言,但不要告诉我你知道这种语言的每一面。当您需要帮助时,拥有一门众所周知的语言很有用。一个简单的Google或StackOverflow搜索,您可以通过Ninja_Guru_666和I_AM_THE_EXPERT来获得答案。如果你更像是一个深入的程序员,你也可以检查官方文档,假设它存在你正在寻找的问题。
4)团队的技能是什么?
如果开发人员并不真正知道计算机是如何工作的,那么使用编译语言是一种自杀的举动。而且,与纯粹主义者相比,我不明白为什么知道(确切地)计算机是如何工作的会让你成为一个好的开发人员(尽管我必须承认,它有帮助;但是还有更重要的技能)。
最好不要使用最好的工具,而是使用已知的工具。而且,许多开发人员都是粉丝男孩。使用他们的首选语言将帮助他们在项目上保持动力。
5)业务方面
一个客观的观点是看看最需要的语言是什么。这并不意味着他们是最好的,但至少你会找到一份工作。在这种情况下,Java,C#,PHP,SQL和JavaScript显然是最重要的(至少在法国)。
此外,作为技术领导者,在选择技术之前检查市场上的技能总是好的。如果您选择最好但罕见的技术来处理您的问题,那么祝你好运,找到熟练的技术开发人员。
但2015年的真实情况可能会在2018年发生变化。ActionScript在不久前还是必须有的。同样,使用 Swift,在 Objective C 上花费的所有时间将在几年内过时。
最后,我将得出一个蹩脚的(我希望)明显的结论:没有最好的编程语言或最好的框架;现在最好的东西明天可能就不存在了。编程语言只是一个工具;重要的是你克服问题的方式。