(为什么)我应该学习一种新的编程语言吗?[关闭]


97

我对Java,C / C ++,JavaScript / jQuery相当精通,并且对Objective-C也很熟练。我对这些语言及其相应的框架也相当有生产力,并且在保持代码“干净”和可维护的同时,确实很轻松地生产了企业级系统(以及小规模的系统)(是的,我可以在六点后阅读我自己的代码个月:)

除非平台(iPhone,iPad等)或客户/实施组织要求,否则“为什么”我应该学习一种新的编程语言?纯娱乐”?如果我不想为此做任何有价值的事情,那会带来什么乐趣呢?

我的很多同仁都准备学习“下一个新事物/语言”,通常是Python,Ruby或PHP(仅列举一些流行的语言)。现在,仅了解语言本身就是徒劳的恕我直言。您还需要了解框架,了解它们的用法/ API以及“良好的实施规范”等。

因此,从“经济”的角度来看,学习一种新的编程语言是否有任何好处?如果以一种快速而肮脏的方式学习该语言,那么它也可能会被用于快速而肮脏的原型设计/实现-但我认为这不是对时间/精力的合理投资。

因此,为什么我(或任何与此有关的人)应该学习一种新的编程语言,而不是“很有趣,所以让我们尝试一下”-如果从长远来看,时间的投入可能不值得?


6
程序员 .stackexchange.com / questions / 118338 /…也许您会对我给杰尔的回答感兴趣。
deadalnix 2012年

3
如果您能看到带有新概念的新语言并且不想理解它们,那么很多地方都不会雇用您(实际上,许多面试问题是专门确定这样的事情的)
Bill K

3
我会问为什么我不应该学习一种新语言?
用户

2
@ZacharyK,即使该工作是为Java开发人员准备的,并且候选人是Java的超级双学位。听起来您可能正在用脚射击。
NimChimpsky

2
那里有很多超级Java专家。我对您在6个月后将了解的知识和现在所知道的一样感兴趣。(当然,我似乎所有的时间都花在Erlang,CoffeeScript和PHP上)
Zachary K

Answers:


178

程序员修炼,提示#8“在你的投资组合的知识定期投资”:

每年至少学习一种新语言。不同的语言以不同的方式解决相同的问题。通过学习几种不同的方法,可以帮助您拓宽思路,避免陷入困境。此外,由于互联网上提供了大量免费的软件,现在学习多种语言变得容易得多

这与下一个“新事物”无关。这是关于在正常思维方式之外进行其他思考的方式。

俗话说:“当您是锤子时,一切看起来都像钉子”。也许有使用其他一些技术解决问题的更好方法。如果您不探索,则可能不知道它可用。


优点。这种想法促使我在一个项目上尝试使用RavenDB,而在被困在SQL Server车辙多年后,我学到了很多东西。
鲍勃·霍恩

52
我认为这是当你只有一把锤子一切看起来像你的大拇指
扎卡里ķ

2
我完全同意。我还要补充一点,学习另一种语言可以帮助您更好地理解以前认为自己知道的语言。它还有助于区分什么是“真正的”编程基本概念/模式/限制,以及什么仅仅是特定工具集的工件。例如,如果您知道的所有语言都是弱类型,那么您可能永远不会知道强类型存在,也就不知道为什么!因此,即使您的产品在上市时间上表现出色,也可能会损害其性能或安全性;-)。
JJC

3
实用程序员是我读过的最好的编程书之一。真的很好!
SonerGönül2012年

我真的同意“这是关于以正常思维方式之外的不同方式进行思考”。当我学习Python时,我有了新的思维方式。
Yoo Matsuo

80

人们为什么要爬山。珠穆朗玛峰?还是在24小时内100英里?我们为什么要承担任何挑战?因为它在那里。我认为“ Ars gratia artis”没有错。出于学习的目的,学习成为了自己的奖励。但是,如果您想了解学习新语言的更多有力理由,请注意以下几点:

解决问题的新方法 学习一门新语言,确实需要花时间潜入水中,这使您有机会再次成为新手。这种新的观点可以教给您可以延续到旧语言的技术。考虑一下Ruby on Rails对ASP.NET MVC的影响,或者Java Hibernate如何移植到C#(以及其他影响.NET开发的其他框架)。接触不同的语言可以教会您解决问题的新方法。

正确工作的正确工具 您提到的所有语言都是OO /过程混合语言(在C语言中是纯粹过程语言)。尝试使用一种或两种功能语言。尝试使用递归在Erlang中实现阶乘,并在20000时看着你的下巴掉下来!在5秒内返回(站点中没有堆栈溢出)。然后看看扩展应用程序以处理数字并以更少的代码和更少的时间来解析协议的能力,这比通过RMI或SOAP获得两个JVM实例所需的时间要少。学习旨在解决特定问题的其他语言/框架将为您提供更多工具。

结识新朋友/扩展您的网络 进入一种新语言会使您接触到一个新社区。结识新朋友对您的职业和个人都是一件好事。

新的机会 知道一种新的语言只会增加您在那家炙手可热的创业公司找到工作的机会。“如果我了解Ruby,这项工作将是完美的。” 此外,您可能会喜欢上足以决定切换路径的语言。

保持新鲜 每天处理同一件事变得乏味。使用另一种语言可以使您摆脱日常工作,让您第二天精神焕发。

因为在那里,您想要学习一种新语言。


3
+1 Javascript可以起作用,但是看起来OP可能缺少其工具箱中的一些范例。功能语言的更多经验将使他们对现有语言(例如C ++模板
jk)

为“保持新鲜” +1,确实在不同的工作上感觉很好
Mona

我想指出的是,尾调用优化与某种语言是否(纯)功能无关,例如,编译为在.NET 64位运行时下运行的命令性语言可免费获得尾调用优化。 。
布林迪2012年

1
大声笑,是的,这不是使Erlang成为纯函数式语言的原因,而是观点的全面改变。在命令式语言中,我们鼓励在大多数情况下都避免递归,而功能语言的递归是一种生活方式。与if / else或switch / case相比,模式匹配也很酷。
迈克尔·布朗

2
尝试使用递归在Erlang中实现阶乘,并在20000时看着你的下巴掉下来!在5秒内返回(站点中没有堆栈溢出)。 这是我见过的学习功能语言的最有力的论据之一。从来没有想过它会如此高效。
Olegs Jeremejevs,2012年

37

我们用言语思考。我们使用的语言会影响我们的操作方式。关于Pirahã语言,有一个有趣的例子-人们说该语言不能像数字那样简单地“简单”或“直观”地处理,因为被带入的语言没有用于“特定数量”的单词(甚至没有“一个”)。 ”和“很多”)。

与编程语言相同。一种新的编程语言可以使您对编程的某些方面“开放”。

考虑到您当前的编程背景,我建议您学习一些功能语言,例如Erlang或Scala。最后,Clojure也是一种非常扎实的语言。

如果您想先感到宾至如归,请尝试使用功能强大的脚本语言,例如Python或Ruby。


22
+1。“不影响您对编程的思考方式的语言是不值得了解的。” - 艾伦·佩里斯
卢阿克

2
我拒绝“我们用语言思考”的前提,因为它否认了没有语言的任何人(或任何事物)都可以思考的可能性。但话用于标记的概念(这样有助于区分它们)是非常有用的。我们大多数时候会用单词(需要更多的投入)来进行更高级的思考,因为它是有效的。这是一个比较含糊的说法,但我认为更接近事实。有趣的是,我不能不使用单词而拒绝使用单词…
Donal Fellows 2012年

@DonalFellows:我认为我们有一些无法用文字表达的“心理过程”。但是我不称这些为“思想”,而是称呼为“感觉”,“反应”,“见解”等。我认为适当的思想必须可以用某种语言来表达。所以对我来说,没有语言的东西可以生活,过程,做出反应,感到……但没有思考。但这是基于直觉的信念,而不是任何真实的证据。还有一点题外话,真的:)
egarcia

绝对同意,仅仅因为语言是一种很酷的编程语言而学习语言是没有意义的。您应该坚持截然不同的方法,并尽量不要覆盖太多。擅长某事会花费大量时间(大约10年以上),无论演奏乐器,烹饪或编程都没关系。
史密斯先生

2
@evilcandybag:因为它发生,我居然证明来源:sciencemag.org/content/306/5695/496sciencemag.org/content/suppl/2004/10/15/1094492.DC1/...(PDF)。
ruakh 2012年

26

您不仅要学习新的语言,而且要学习与已经知道的语言不同的语言。如果您知道Java学习C#不会真正挑战您,那么它们相当相似。理想情况下,您应该选择一种与您所知道的语言完全不同的语言。如果您了解Java,JavaScript和Objective-C,则需要一些与众不同的东西

如:

Ruby是一种有趣的弱类型OO语言

Prolog逻辑编程语言非常不同

Erlang并发和容错性能非常好

方案去阅读SICP并获得启示

Haskell如果能够编译,它可能是世界上功能最强大的类型系统之一,它也可以使您避免产生各种奇怪的错误,甚至更多。

或者只是在七个星期内学习七种语言,这将达到标题所说的目的。


2
+1!我现在正在做的一个练习是用不同的语言实现相同的算法(合并排序):这确实使我感觉到有多少种方法可以表示相同的计算。我已经在运行C,C ++,Pascal,Java,Scala和Haskell版本。Python,Ruby,Modula2,Scheme即将推出。我发现通过查看不同的编程语言,您可以学到很多东西!通过用一种语言做一件事情,我可以得到许多关于如何以另一种语言更好地实现它的想法。
Giorgio

3
除了您描述Haskell 之外,我都喜欢这一点。您仍然可以编写错误的编译代码。(类型正确性不是整体正确性的唯一要求。)学习Haskell的原因是,它在概念上与数学非常接近,并且具有懒惰的评估模型。这应该撼动大多数程序员关于编程的全部概念。
多纳研究员

我认为应该尝试Prolog。当我第一次学习它时,我感到惊讶。您怎么做只能写几个字符的事情。
用户

3
根据我的经验,@ DonalFellows如果您在Haskell中正确设置了类型,该程序的其余部分倾向于自行编写。
tobyodavies 2012年

1
“ Ruby是一种有趣的弱类型OO语言”:Ruby是真的弱类型还是动态类型?
Giorgio

15

您的问题是如此重要,以至于让我提出以下问题:

如果您是专业的程序员,那么为什么您不想要学习一些新知识以增加您的专业经验呢?

您的问题对我来说听起来很像我曾经有过的一个学生的态度。根据我当时所在大学的职业服务总监的要求,我在Y2K培训的一两年前(作为选修课)教了Cobol课。他有太多公司为Cobol程序员提供工作机会,以至于他认为我们不会给学生提供学习技能和增加技能的机会,这对学生是一种伤害。

我有一个学生把这门课作为他最后的选修课毕业。当时他还担任C程序员。他参加了Cobol课程,因为他别无选择,而且他想获得学位。因此,他上课时肩膀碰到芯片。

我已经知道C,并且我正在专业地使用它,所以我不知道为什么世界上任何人都想要甚至需要学习Cobol。

因此,我面临的挑战是编写一个程序来从文件中读取数据,该文件对于每个输入记录都有特定的格式(即,每个字段在一行中占用了多少个字符,哪个字段排在第一,第二,第三等等)。 )

他要用C语言编写程序,然后向我展示了程序。同时,我向他展示了该程序的Cobol版本。

然后我扔给他一个曲线球:

假设最终用户正在从其他地方获取数据。每个记录中的字段相同,但是每个字段的顺序和字符数不同。告诉我您要在程序中进行什么更改才能使其与新的数据格式一起使用。

他花了一天的时间来制作与新数据格式兼容的程序的新版本。它涉及到更改至少20或30行代码,以及修改几个功能和模块。

然后,我向他展示了我需要对Cobol程序进行的更改。我修改了picture子句以反映新的数据格式。

我不确定他是否完全理解该练习的教训,但是他至少在整个学期的其余部分都不再抱怨。

所以-回答您的问题:您应该学习新的语言,因为您想学习。而且,如果您不想学习-给您更多的力量...(我不确定我是否会以这种态度聘用您)


6
尽管您的意图很好,但是如果我是那个学生,我只会认为您的应用程序容易更改的唯一原因是因为您知道最终的需求更改。如果程序是用相同的知识用C编写的,那么在那里也需要进行最小的更改。
hspain 2012年

我有一个态度相似的同事:“ C和PHP为我赚钱。为什么我要浪费时间学习另一种语言?” 他不再在那里工作了。
greyfade 2012年

3
所有要求迟早都会改变!这就是重点。
Zachary K

@hspain-实际上,由于整个练习的目的在于,Cobol将I / O规范视为程序的第一部分,而不是根据您编写和订购代码的方式以放任自流的方式进行处理C语言中的I / O语句。为了回应Zachary K的评论,事实是需求有所变化。-是的,您可以使用C来构造程序,这样当I / O需求发生变化时,它就不会那么脆弱,但这涉及到的程序与编写C程序时所用的方式完全不同。
Zeke Hansell

我实际上不了解cobol。有一天我可能不得不去看看
Zachary K

12

学习一种新语言可能值得在时间上进行投资,原因有以下几个:

  1. 增加工具箱的大小-学习一种新语言可以提供解决技术问题的其他途径。与以前已知的工具/语言相比,新工具的可能性可以为解决某些问题提供更好的语言/平台选择。一个简单的例子可能是只知道C的程序员。学习脚本语言为他/她打开了其他可能性-在部署,环境设置等方面。
  2. 获得使用新平台的权限-一个很好的例子可能是Objective C-如果要为iOS开发,学习这种语言几乎是必须的。
  3. 学习新的范例-某些语言可能会更好地访问更新的范例。以C为例,使用标准ANSI C开发Web服务可能很困难。但是,学习用.NET,Java,PHP或其他新语言进行开发可能会加快Web服务的开发。

正如您已经提到的,学习新语言可以在“快速而肮脏的”解决方案中带来直接的好处。但是,这些直接的解决方案可能会导致程序员进行调查并更深入地研究与新语言关联的体系结构,以“正确地”学习它。可以将这些快速学习练习视为对一种新语言是否值得增加培训时间的调查的一项投资。


11

一言以蔽之:适销性

当您可以展示自己有适应和学习新事物的能力时,您便打开了就业前景。当然,您可以继续使用自己已经精通的一种语言来编写应用程序,但是当您发现自己喜欢的语言与您所从事的行业无关时会发生什么。我实际上记得有一段时间为了从头开始用C或C ++编写我们自己的Web服务,如今,我们使用的工具可以为我们完成所有基础的“ Webbiness”(Think Rails等)。

关键是,您最终会像那些从事电视连续剧的演员一样,然后就不能轻易转移到其他任何东西上,因为他们永远被视为他们的原始角色。“地球上谁希望柯克上尉成为印第安纳·琼斯?!”。对于只使用过一种产品的程序员也是如此。当然,您会像其他人一样了解它,但是当您被视为无法继续使用C#的Fortran时,这对您没有帮助。

如果您希望能够轻松地转移工作并保持选择的余地,则需要扩大经验。以多种不同的语言来从事许多不同的项目,最好是在至少两个或多个平台上,使自己的市场价值不仅限于今天。

当然,还有很多其他原因可以学习一种新语言,有时甚至只是为了学习它。它使您想到其他可能性,因此,当老板走近您并说“我们可以做些事情”时,可以选择可用的工具来回答“是”。


8

在您职业生涯的这一点上,如果您认为新语言可以使您成为一名更好的程序员,则应该学习新语言。

您列出的大多数语言(Java / C / C ++ / Javascript / Objective-C)都是常规的OO /命令式的。学习另一种面向对象/命令式语言可能不会教给您更多有关这种编程的知识。除非您有特别的兴趣,否则没有必要学习有关规格的月度风味。

我也倾向于对数量级生产率提高的说法表示怀疑。但是,可能有必要检查一下偶尔使用的著名的高效语言,看看您是否喜欢它。

学习一种新语言的最好理由是学习通用的技能。为此,我建议一方面深入研究功能性语言(Haskell或Lisps之一),另一方面深入探讨汇编代码和系统体系结构(x86或ARM)。

即使您从不编写另一行汇编语言,函数式编程也会打动您的大脑并改善您的思维,而学习机器架构将提高您的调试和优化能力。


6

我们每个人都决定要从事的工作,以便...

  1. 你学习它是因为你想
  2. 您学习它是因为您需要它来完成所需的工作

如果您不想学习PHP,那么没人能成就您,并且有很多领域甚至您都不知道如何拼写PHP就可以编程。

许多人关注就业市场,以了解热点地区并采用这些技术。很多人学习一种语言并坚持使用,20年后,他们成为了传统的维护工程师。然后,有很多人处于这两种极端之间。

最后,一切都取决于您想要成为什么样的人。


在您的描述中,听起来有点黑白。“技术漏斗”和传统维护工程师是恕我直言的两个极端,我们大多数人介于两者之间。另外,一些“技术漏斗”对最新的闪亮事物太疯狂了,以至于不能正确地学习任何技术(这比他们愿意投资于任何一项技术要花费更多的时间),因此他们可能永远也不会提供可靠的长期解决方案问题。
彼得Török

1
@PéterTörök:编辑了我的答案。我当时指出了比例,但是懒得拼出全部。没错,这是一个连续的光谱。
DXM

5

我所知道的最好的论据是,它扩大了您对解决问题的多种方式或可以表达某种逻辑的看法。熟悉Java和C ++可以很好地了解本机和VM领域,但是还有更多的“自由度”可供探索。

我在C ++方面有大约15年的经验,在Java方面有5年的经验。我学到了很多语言,并且留下了很多语言(PHP,Pascal,用于一堆不同处理器的汇编语言等等),并且可以肯定地说,即使我不再使用的那些语言也对我对问题的看法留下了重要的印记。 。另外:即使您想坚持使用某个特定项目的Java,您也必须知道替代方案,以提出与其支持者的良好抗辩。

尽管如此,我还是在今年才学习Python,并为能够完成某些事情而感到高兴。如此之多,我决定将我编写的少数REST servlet从Java转换为Python。代码可维护性的优点非常明显。可以肯定的是,这也给我的工作方式留下了印记,这不仅是因为我现在将为某些任务选择Python,而且还因为在用C ++和Java进行编码时我可能会采用类似的设计原则。

就是说,我不认为仅出于此目的,您不应该一直学习很多不同的语言。这需要花费大量时间,并且您必须在头脑中做出的“住宿”才能与他们已经知道的其他人共存,这也需要时间和精力。我只决定学习一种语言,只要它具有足够的成熟度,良好的开发人员基础并提供与我所知道或计划学习的其他语言截然不同的结果。例如,当我决定学习Python时,我还考虑了Ruby和Perl,后来放弃了它们-至少在不久的将来。


5

人们学习新的语言来...

  • 扩大他们的知识。如果您了解的更多,您会感觉更好,并且更有信心。
    信心=出色的代码!
  • 有一个更大的工具箱。假设您必须制作一个应用。如果您只懂Java,那么您将使用Java编写程序。但是,如果您了解Java,Python,Scheme和Lisp,您很可能会选择最适合该工作的工具。
  • 找工作 面对它。如果您知道更多的语言,那么您就有更多的工作机会。这是不言自明的。
  • 成为更好的全能程序员。如果您知道Perl的语法,就会知道它会变得有些疯狂。在Perl中编写长程序时,基本上会被迫遵循最佳实践,否则您将不是一个快乐的露营者。由于您了解Perl的最佳做法,因此可以(以一种或另一种方式)帮助您编写更好的PHP代码。

如您所见,学习新语言有很多原因。我对您的建议(以及我认为不错的唯一原始报价):

经常编写代码;写好代码;用Scheme,PHP,Java,Python,Lisp,Perl,C,C ++,C#,Visual Basic,Ruby编写代码


1
@Nupul:或者至少我认为报价像那样……
动态

5

我同意已经发布的大多数答案。除此之外,请查看2011年Stack Overflow用户调查得出的统计信息。已知语言的数量与所赚钱之间的相关性非常高。它们可能不会直接相互绑定,但这是需要考虑的事情。

倾向于学习更多语言的人倾向于赚更多的钱。

http://blog.stackoverflow.com/2012/02/survey-results/


4

阿尔弗雷德·诺斯·怀特海(Alfred North Whitehead)撰写了一篇很棒的文章,名为《善记的重要性

有趣的是,看起来谦虚的符号可能对科学的发展非常重要。它可能代表着一个想法的强调表达,通常是一个非常微妙的想法,并且通过它的存在,很容易展示这个想法与它所发生的所有复杂想法之间的关系。

编程语言是一种表示形式。我可以用C语言编写OO;实际上,这就是Stroustrup从C ++开始的方式-作为一系列C预编译器宏。但是,用Java,C ++或C#编写OO代码要容易得多,而且快捷得多,因为它们具有可以更轻松地支持OO的语言原语。

到目前为止,所有学习新语言的理由都是正确的,但是我认为学习新语言的最佳理由是,新符号可以使您以新方式思考,从而可以帮助您解决新问题。


2

上面的大多数或全部答案都与该行业有关。编程。我想提醒一下,在我们成为程序员之前-我们是人类。

在您的情况下,学习新的编程语言的一个很好的理由是让自己休息或做其他事情而不是编程。

从我的工作经验,从事农业工作和从事木材的工作中,我对编程有了很多思考-然后学习一种新语言。即要成为一个好的程序员,您首先应该是一个好的人。如果您在编程方面没有太多经验,那么即使您是专家,关于编程的想法也可能完全错误。

编程中的许多概念直接来自日常生活:简单,可维护,实用,有用,快速-有时甚至慢速,模块化等;例如,是木匠使用的所有概念。

信不信由你:我个人花了很多时间在采摘橘子上,对编程概念了解很多。我从中学到的主要概念是-简单。从作为建筑商的工作中,我学到了另一个概念:如果您想让墙壁直立,则尽可能地建造底座。

最后,您的问题的答案可能是:休假,参加跆拳道课程或照顾花园-那么您的问题可能不再困扰您了。


虽然我可以同意您的看法,但我想补充一点,在完成所有其他有关编程的好主意之后,我还要学习一种实现这些主意的编程语言。因此,海事组织这两个方面(从编程和学习新的编程语言中分离出来)不会(不应)彼此排斥。
Giorgio

的确,在编程和学习新的编程语言方面有所突破并不会(不应)彼此排斥。但是,在我们所处的世界如此快速的世界中,重要的是要记住,休息-比运动更有效。这可能是喝咖啡休息时间-甚至是1年休息时间。
Shian

-2

学习一种新的编程语言的价值大约是您已经知道的编程语言数量的倒数。

这是因为范例数量有限,学习一种新语言通常会为您带来至少一两种,从而使您更有经验并有能力成为一名程序员。有些人可能使您的编程世界颠倒了。但是,当您学习一种新的语言,该语言具有您已经知道的范例时,您就已经知道它们并且已经习惯了它们。


-3

正如他们大多数人已经写的那样,我对C有很好的工作知识。最近,我正在研究一个需要交叉检查结果的问题。这是数学的。因此,获得答案的最快方法是什么,使我有机会检查要学习的更快的编程语言。

我发现bc是一种任意精度的计算器语言,几乎在每个Unix平台上都可以使用该实用程序。

我没有想到Python,Perl或其他任何东西,但是我发现这很快解决了我的问题。我在一个朋友建议的阶乘(20000)上进行了检查,结果显示很快,没有崩溃。

仅在某种程度上很重要,您需要了解一种新的语言,该语言可以缓解当前的工作/问题。

当然,如果我在履历表中写这个,我猜没人在乎,但是从我的角度来看,它可以解决我的问题,然后再以我最喜欢的语言“ C”攻击它。

而且,如果需要学习一门新语言,您将有机会获得不同的问题和多种解决方案。


-8

任何人都可以创建一种新语言;但是似乎没有人知道“更好”很少与“更好,以至于采用成本实际上是合理的”相同。最终结果是数百种不同的语言,在这里,任何人都不可能理解所有源代码,并且由于语言/框架/库的差异,程序员需要浪费大约四分之一的时间来浪费生产时间。

在理想的世界中,将存在一种低级编程语言(例如C),一种高级“安全”编程语言(例如Java)和一种脚本语言。对于那些不了解标准化的优点和“搅动”成本以及对整个IT行业进行持续再培训的人们来说,还有一个巨大的八角锤可以用来摧毁“ Babel编程语言塔”。

从“宏观经济”的意义上讲,学习一种新的编程语言是一种兴趣并没有错,但是这种新的编程语言用于任何事物都会使您成为问题的一部分。


4
听起来像是一个不切实际的理想。谁来决定这些标准语言,您如何确定一种新的语言值得改变?只因为没人愿意尝试任何新事物而陷入the脚语言的风险又如何呢?试想一下,如果我们十年前已经做到这一点-每个人都可以使用C ++和Java(或VB)!
布伦丹·朗

3
您的“理想世界”概念听起来像是“ 十九四十四”。在您的Newspeak中,甚至无法想到诸如“函数式编程”,“类型推断”,“一流的多态性”和“多方法”之类的革命性想法,因为无法表达它们。诚然,奥威尔似乎没有想到你的大锤的想法,但如果他有,我相信它会发现它到底。
ruakh

2
除了以上几点以外,您的“答案”几乎与实际问题无关。下注。
user16764

3
在理想的世界中,努帕尔的问题只有一个答案。不了解标准化优点的人在第一个答案之后得到所有这些其他答案只会引起混乱。自己不同意答案并没有错,但是发布其他答案会使您成为问题的一部分。
benzado 2012年

1
限制使用这些语言不会阻止您提到的任何问题。由于更改框架而不是更改语言,我不得不重写应用程序多次。
法比奥·塞科内洛
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.