Julia是Lisp的转世 - Arnuld

21-07-12 banq

我们想要一种具有自由许可的开源语言。我们想要 C 的速度和 Ruby 的活力。我们想要一种同象素的语言,具有像 Lisp 这样的真正宏,但像 Matlab 那样具有明显的、熟悉的数学符号。我们想要一些像 Python 一样适用于一般编程的东西,像 R 一样易于统计,像 Perl 一样自然地处理字符串,像 Matlab 一样强大的线性代数,以及像 shell 一样擅长将程序粘合在一起。学习起来非常简单,但让最认真的黑客感到高兴的东西。我们希望它是交互式的,我们希望它被编译。
我可以告诉你,Julia 是一种编写程序的好语言,至少在你的生命中使用了五年。我敢肯定,任何喜欢提高技能、寻找更好的想法、更好的软件设计的人都会喜欢 Julia。
我很喜欢Lisp,如果你用它,你也会喜欢的,但是Lisp永远不会成为主流。它影响的语言(Python、Ruby、Scala、Perl等)都成为了主流,但Lisp却不能。
我甚至在comp.lang.Scheme新闻组(试试Aioe和Pan Newsreader)上读过Kent M Pitman关于Scheme语言标准的长对话,当时我正在选择在Scheme和Common Lisp之间学习(在Google Groups上可以找到一个这样的对话)。我读这些都是出于强烈的兴趣,现在我意识到这都是为了更好地理解编程语言而经历的一部分。我喜欢Lisp,我想要表现。
我认为Julia将在几年内成为主流,这是我一直在等待的语言,因为那天我写了我的第一个程序。如果你有点喜欢编程,如果它触动了你的心,你必须用Julia编写代码,必须阅读它的文档。这是一个新鲜空气后,很长一段时间的呼吸。
 

黑客新闻网友讨论:
客观地说,而不是直接对 OP 说,你可以在工业界用 Common Lisp 编程,你只是不想那么糟糕,然后你通过编造不能雇用的理由来证明你为什么不能,不能主流,找不到工作等等。
不知何故,作为一名编写 Lisp 的程序员,我能够保持稳定的工作超过十年。我在初创公司写过 Lisp。我在 Facebook 写过 Lisp。不,我也不是一些奇怪的遗留 Lisp 项目的顾问。我和没有从事 Lisp 工作的人的区别在于:

  • - 对于受益于 Lisp 的项目,我选择 Lisp;
  • - 我向技术人员和非技术人员证明我可以廉价有效地解决他们的问题,通常是通过具体的演示,并且没有任何关于 Lisp 能力的模糊承诺;
  • - 我付出了额外的努力,以确保我们可以为 Lisp 招聘、培训 Lisp 并与 Lisp 整合。

如果您想在行业中编写 Lisp,并且如果您是高级或更高级别的工程师(无论这意味着什么),那么请接受并编写它。来回学习语言,对自己的选择负责。
除非你正在编写世界上最无聊的软件,需要 5,000 名 Java 程序员同时工作,我可以向你保证,编写和维护 Lisp 没有问题,除非与你一起工作的每个人,包括你自己,都喜欢把钱递过去。
 
我的心都碎了,因为 Common Lisp 是一种非常优秀的语言,工作很愉快,而且在工业中几乎没有人使用它。即使用 Lisp 编写代码所需的时间要少得多,但该行业仍有大量 Java 代码。程序员的时间发生了什么比机器的时间更重要?
 
我认为 Common Lisp 和许多其他编程语言面临的一个问题是,虽然程序员的时间比机器的时间更宝贵,但在维护有利于使用更流行语言进行编码的商业软件项目时,存在一些动态因素,例如能够轻松地聘请熟悉语言和/或范式的开发人员。例如,想象自己是一个用 Haskell 编写的项目的经理,该项目自由地使用函数式编程概念,例如 monad。聘请熟悉标准过程或面向对象的编程语言的开发人员比找到熟悉函数式编程的开发人员更容易,而且让非 FP 程序员掌握函数式编程的速度需要培训,这需要时间和金钱。
我喜欢像 Common Lisp、Scheme 和 Smalltalk 这样的语言。但是,如果我在做一个团队项目而我的队友不知道这些语言,那么我会选择更通用的语言,比如 Python。编程不仅仅是表达计算;它还与交流有关,语言的一个主要目的是与他人交流。
 
这就是 Clojure 被发明的原因。它运行在 JVM 中,代码高度可维护,使用 Clojurescript 进行前端开发等。
 
引导语言采用的最佳方法是让一家大型科技公司推动它。Java(Sun、Oracle、Google Android)、C#(Microsoft)、JavaScript(所有浏览器供应商、Facebook React)、Rust(Mozilla/Microsoft)、Swift(Apple)、Go(Google)。
大多数流行语言都得到了一家或多家大型科技公司的支持。这使管理人员有信心毫无保留地采用它们。
 
Lisp 在 Julia 语言中最强大的遗产是它的元编程支持。与 Lisp 一样,Julia 将自己的代码表示为语言本身的数据结构。
 



 

猜你喜欢