最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 开发技术 > 编程语言 >
项目编程语言有什么要求?
IT168发表于 2020-11-05 15:55 次浏览
        与操作系统一样,在办公室软件套装和计算机中也具有各种计算机语言。存在这种多样性的原因与其它地方的多样性一样—-因为没有单一的解决方法能够解决所有的问题。有些语言在原始速度上更出色。有些语言能够帮助你更轻松地编写防止崩溃的代码。有些语言非常擅于剖析文本并有效作用于服务器上。有些语言具有强大的公司投资。也有些语言之所以存在是因为它们与大量不适合重新编写的现有代码相兼容。
 
        你的语言选择将影响着你的项目,并且你不可能在项目中途突然改变语言,所以这是你必须重视的一个选择。这也不是一个你能够根据自己的个人喜好或朋友的提议而做出的选择。你关于项目的计算机语言的选择应该是经过仔细研究且务实的。最重要的是你的结果的质量而不是语言是否配得上你个人的编程技巧。

     事实上,你很有可能采取一些大众化的做法,去引用在上个项目里所使用过的一些语言。或许你是一位对新鲜事物比较敏感的潮人,你会选择一些最新最酷的语言。几年前,很多很棒的年轻人已经蓄意待发。而现在他们让我意识到他们创造的节点是多么的棒,以及clojures已经达到了一定的程度。上次我还注意到,他们图灵完备的语言跟我的已经具有相同的解决问题的能力。实际上,他们还坚持认为他们的语言给了图灵语言更强的表现力,更快的编写以及更低成本的维护。

  合适的工具,合适的工作

  古人云:工欲善其事,必先利其器。如果你需要自动运行一些命令执行的维护任务,可使用一些擅长脚本编程的语言:如bash,perl,,hell even ruby;不要用Java. 如果你要解决的问题需要一个在微软操作系统的环境里能够无缝整合的桌面客户端,可以使用C#,不要用Java (Java桌面的粉丝,先冷静一下)。如果解决的问题需要处理大量的XML,以及你喜欢处理层积追踪,那当然要使用Java。

  通常来说最大的区别归结为规则系统的复杂性。如果你从事的工作具有很多规则系统算法上的复杂性,使用一些能够擅长于表达的东西:一种函数式语言,像haskell 或者F#。或者就像90%的网页应用那样,做的就是数据的输入和输出,你需要一种具有较好的面向对象能力的语言去尝试塑造你的领域:Java 和 C# 都是很好的选择,以及还有几乎所有的其它的现代语言。

  Scala

  或许你非常痛恨自己想要妥协:为什么当你能选择两个的时候,而只选择函数的或程序的其中一个?为什么会遗漏这些语言的特色,要知道在过去的50年里你能拥有它们全部,而现在是煎熬在一团糟的语言上?是的,如果这听起来像你,你可能认为你是一位对新鲜事物敏感的潮人,但是,事实上你错失了数年的良机:是时候去了解一些Scalas 了。

  我猜测Scala 能够如此流行的大部分原因是它最终为所有沮丧的Java开发者带来了它们想要的语言工具。现在Java实在是一种超级反应迟钝的语言,使用它工作时感觉非常的失望。有些人转换去使用C#,我也开始喜欢使用新的华而不实的语言工具。它们有让代码变得更好吗?很多的新语言的引进,提升了复杂性和增加了丰富性,但也使得代码很难被理解和不容易后期的维护。

  重点是,Java是一种玩具语言:白痴都可以写出像样的合乎规范的Java. 不过麻烦是,Java这类玩具语言,编程的人无论他们有多牛,每个人还是被迫去编写冗长的愚蠢的Java 代码。这也使得很多技术牛人不能通过编写难以破解的废物来证明他们的水平。我也担心Lambdas将对Java代码库的可维护性带来冲击,以致每个人开始寻找新的令人困惑的方式来表达一切。

  雇佣

  另一个原因影响开发人员去选择合适的编程语言,就是你可以选择被雇佣。不过这是真的吗?我现在在C#办公点工作,我藐视了Java开发者吗?当然没有。一个好的开发者就是一个好的开发者,跟语言没什么关系。拒绝潜在的新人是因为他们所知道的的语言是反应迟钝的弱智语言。

  麻烦的是:如果你认为仅仅雇佣python 或者 node 开发者可以让你提升到一个更高的开发人员的标准:你错了。你选择的空间会变得更加狭窄。或许那个空间的平均质量会高一些,但谁知道?谁在意呢?我只需要一个开发者,我希望她是在我能雇佣的人中最好的,跟平均值没什么关系。

  语言和能力之间没有必然的联系:我遇到了一些非常聪明的Java开发人员和一些十足可怕的自认为消息灵通的开发者。我宁愿尽可能多的雇佣乐于使用我们所使用的技术的优秀的开发人员,而不是去限制我能召集到人才的机会,坦诚的说,目前已经很受限制了。

  我听说到的另一个争论是,你所使用的技术会限制应聘者为你工作的意愿 --- 一些开发者就想在指定的平台工作,比如clojure. 其实,他们阻碍了自己成长。我宁愿要那些主动想去解决有趣问题的人员,不用去考虑语言,而不是那些只解决垃圾问题的自以为是的潮人。如果你是在银行工作,碰到的都是很胡扯的问题吗?当然,可以直接用一种自以为是潮人的语言如果它能够帮助你雇佣到足够的傻子。它会使很多人才远离我。

  通用语言

  将所有使用潮人语言的程序员集中在一起,让他们组成一个团队。会发生什么呢?意外的是,你看到了一堆C#和Java的开发人员。因为几乎每一个开发人员都知道这两种语言中的一种----它们是通用语言。反之如果没有组成一个团队,他们只不过是一群水平参差不齐潮人语言开发人员。

  事实上最重要的事情是当你选择一种语言时,取决于你的团队中会有多少开发人员熟悉这种语言,以及你打算雇佣的人有多少人了解这种语言。如果团队中的每个人需要重新培训,像smalltalk;以及你雇佣的每个人需要手把手指导学习新语言---这是你必须考虑的成本因素,什么样的利益和你会从中获得什么好处?

  其次,你是否可以在遇到问题时比较容易的获得支持帮助?Java的开源社区非常棒---当你遇到一个问题,他们已经至少有15个不同的解决方案,其中有一些甚至可行。如果你使用C#,那么你的选择会非常有限---但是将会有选择,有些不是来自微软的支持。如果你使用最新的潮人语言,猜猜会发生什么? 你就只能靠自己。不过对于有些人来说,这正是潮人语言所吸引他们的地方。但对于我们这些想要把工作做好的人来说,这是一种痛苦。

  最后,最好的建议还是倾向使用上一个项目相同的语言:因为每个人都已经熟悉它,以及所需的工具也已经安装部署完成。这就是为什么Java迅速成为新一代cobol(译者注:第一个广泛使用的高级编程语言)的原因。


免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐
2020-12-01 14:48:33 关键词:编程语言有哪些
摘要:开发者是否真的还需要一种新的编程语言呢?选择已经有那么多了,现有的语言都让开发者应接不暇,可是各种新的编程语言还是在以惊人的速度产生!答案就是随着多核CPU、云计算、..
2020-11-28 11:17:47 关键词:编程语言有哪些
摘要:你的语言选择将影响着你的项目,并且你不可能在项目中途突然改变语言,所以这是你必须重视的一个选择。这也不是一个你能够根据自己的个人喜好或朋友的提议而做出的选择。你关..