我应该去学习小语言或小众语言吗?[关闭]


22

如果在StackExchange上浏览代码高尔夫球问题,则会注意到大量非标准但真实世界的语言,例如F#ScalaRJClojure。在访问他们的网站时,无论您使用哪种语言,其中一些语言都可以解决有趣的问题。

但是,有空闲时间编码和金钱编码。关于谁使用某种语言,我们最接近事实的是TIOBE Index,该索引在前10-15名中均未列出上述语言。这让我想知道我是否会使用它们。

我是否应该还要学习一些小型利基语言?看来我不会赚钱,但有些人可能还是会失败。


4
如果您只关心赚钱,为什么要问这个问题?
ChaosPandion

4
从VS2010开始,F#是一流的语言。我不会说这是非标准的,我认为它将很快得到广泛的采用。
Brian R. Bondy 2010年

8
如果您只想赚钱,最好不要编程。成为受欢迎的女演员怎么样?
P Shved

2
@TheLQ:您想成为主流吗?您担心迈出任何一步之前都不知道会带来多少钱?然后,请也满意主流薪酬。如果有的话,这就是您将获得的所有想法。
Ingo

1
一些主流语言可以使您提高工作效率,从而比主流语言赚更多的钱。
Giorgio

Answers:


25

Sapir-Whorf假说。它或多或少地表明,您能想到的是受限于您要描述的语言。这样的结果是,多语种的人能够以讲单一语言的人可能无法思考的方式思考。

许多人(包括我自己在内)都认为这也适用于编程。例如,学习Lisp可以教您一种全新的思维方式,来思考可以应用于C#或Java或Python的问题。无论您实际使用哪种语言,学到的语言范例越多,思维工具箱中的工具就会越多。


1
究竟。例如,我发现在某些情况下,仅使用功能性语言是不够的。但是,我经常发现自己使用支持功能编程的语言(例如javascript,c ++ 0x等)引入功能概念。
凸轮

4
我很高兴人们继续使用Sapir-Whorf假设(尽管语言学上并没有完全抹除这一点,但很大程度上)。我绝对同意编程方面的观点,但是我认为,如果我们希望人们认真对待我们,最好找到一个不同的类比。
乔纳森·斯特林

1
我不相信这个假设,否则我们将永远不会发出咕unt声。同样,对于编程,不要认为人们受到语言的限制。
John Smith

24

我将学习任何语言,向我介绍从未见过的概念和范式。这就是为什么我学习haskell和scheme的原因-他们分别向我介绍了函数编程和大部分函数编程。除了会如何影响scheme和haskell的使用方式,我将不在乎,除了那会如何影响可用的文档和资源。

因此,基本上,如果一门小型利基语言向您介绍了新的概念和范式(尤其是那些您可以应用于其他语言的概念和范式),那么请学习一下!

您可能想学习“小/小众”语言的其他原因:

  • 使用该语言,您可以比其他任何一种语言“更好”地解决特定(类型)的问题(更快,更好的解决方案,更可移植等)。

  • 该语言和流行语言一样可以让您解决问题,但是它具有一些您喜欢的很酷的功能(例如clojure)

  • 您想帮助开发语言

7

好吧,我正在使用Clojure(您提到的“小众语言”之一),发现它是非常值得的体验。

  • 它使我的工作效率提高了(与我以前主要使用的Java和C#相比)。当我经营自己的企业时,生产力等于金钱(-)),因此从至少从我的角度来看,Clojure已经成功。
  • 我学到了使我成为更好的开发人员的新技术(尤其是在并发,函数式编程,抽象,元编程等方面)。即使我重新开始编写Java,我仍然可以充分利用这些知识
  • 学习一种与我以前做过的事情完全不同的新语言真是令人愉快。如果您真正喜欢自己的工作,那么它本身就是值得的。
  • 因为它是一种JVM语言,所以库的集合是否相对较小并不重要,因为您仍然可以访问Java / JVM生态系统中的整个库。对于在JVM上运行的语言来说,这是一个很大的优势(同样适用于Scala)

我个人很少关注诸如TIOBE之类的东西-它们在过去所流行的内容中并不能告诉您太多信息。如果您想维护旧系统,可能会有用,而如果您想学习并开阔眼界,则可能会有用。


4

学习利基语言的原因很少是期望您直接使用它(金钱或其他方式)。通常是学习一些新的方面或编程风格。即使您从不使用该语言来生成“生产”代码,这样做也可能使您成为更好的程序员(是的,可能更有价值)。


4

作为利基语言的专业开发人员,有可能谋生。不过,也有弊端。

更难的事情:

  • 找工作需要更长的时间
  • 工作更有可能要求您搬家
  • 您将不会受到主流程序员的尊重(因此会产生更大的阻力)。

更容易的事情:

  • 少量的程序员使 竞争工作变得更加容易
  • 您可以了解您所在领域的每个重要程序员
  • 建立声誉比在主流更容易

事情仅仅

  • 由于标准很少,薪资的变动往往更大
  • 花很多时间在教育他人上您的利基优势和劣势

总体而言,如果您关心的是职业,那么您永远不应成为一窍不通的小马,主流或小众市场。


2

我目前正在通过使用它来解决Euler项目问题来学习Ruby,这是因为我一整天都在用C或PHP(有时是C#)进行编程,并且想拓宽视野。到目前为止,它确实使我大开眼界。即使我从未将它用于任何“真实”的工作,我相信花时间学习它也是值得的。


为项目欧拉+1。我在学习python时做过同样的

1

同意上述所有要点。学习小众语言的另一动机是该语言有一天会变得非常流行的可能性。在这种情况下,您对这种语言的早期投资可以使您开始从事具有影响力的框架的工作,以及将来可能会急需的语言元素。

如果该语言确实流行起来,您将已经熟练掌握该语言,因此您的需求量很大。

低概率,高回报。


2
就我个人而言,我将始终尝试学习概念而不是语言……如果您知道我的意思,那么脑部空间有限。
ChaosPandion

1

正如其他人几乎说过的那样,仅仅学习一种小众语言就没有意义。但是,通常,利基语言比主流语言所能承受或想要的更深入/更深入地探索一个概念。

有时,利基语言的出现时间远比任何主流语言都长得多,Smalltalk,Prolog和Lisp语言让人想起。它们可能不受欢迎,但它们也不消失。

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.