1
asj 2016-03-02 16:09:31 +08:00 23
前两天看到一篇文章说,很多参加音乐真人秀的选手都会说“我的梦想是成为一名歌手”,但是从没有人说他梦想唱歌。想要成为歌手的人会参加比赛,希望从别人那里获得认可。想要唱歌的人直接就去唱了,他在唱的过程中就得到了满足。
那么你是想成为 lisp 程序员,还是想写 lisp 呢? |
2
movtoy 2016-03-02 16:16:48 +08:00
你看到作者学 lisp ,所以你想学。
难道你没看到人家学了是创业当老板的? 而你学了是想找工作的,所以,级别差太多,否! |
3
xcodebuild 2016-03-02 16:17:48 +08:00 via Android
写 emacs 插件,另, clojure 职位应该是有的
|
4
jsonline 2016-03-02 16:25:56 +08:00 via Android
国内只有一个 lisp 团队吧?
|
6
sudoz 2016-03-02 16:30:38 +08:00 1
那你还不如去学 Ruby
|
7
jsonline 2016-03-02 16:32:27 +08:00 via Android 3
|
8
bramblex 2016-03-02 16:33:50 +08:00
lisp 是一门挺简单的语言,学会用又花不了多少时间……
当兴趣爱好学一下不可以么? |
9
levn 2016-03-02 16:40:52 +08:00
语言表现能力强不代表它会自动让你懂得各种领域知识啊……
|
10
pepsin 2016-03-02 16:41:35 +08:00
学拉丁语是为了更好的了解其他语言脉络.
Lisp 或者别的什么也都是一样. 会啥就要拿啥工作那你基本上告别黑客与画家那条路了. |
11
pepsin 2016-03-02 16:43:21 +08:00
另外, 真要 Lisp 工作. 有两家公司, 高盛和顽皮狗, 但是他们的 Lisp 都是给不怎么会编程的人搞脚本的, 正式程序员几乎免不了要求你高破天的 C++ 或者 C 经验以及足够的系统或者图像方面的经验.
|
12
louirobert 2016-03-02 16:44:42 +08:00
如果你只是对函数式编程感兴趣不妨看看 Lua ,至少从找工作的角度来讲更广泛一些
|
13
bramblex 2016-03-02 16:46:45 +08:00
|
14
bramblex 2016-03-02 16:51:59 +08:00
@louirobert 如果你说的是看 lua 解释器源码,那我收回上面的话。 Lua 解释器源码确实非常值得看
|
15
lmshl 2016-03-02 17:14:00 +08:00 2
国内应该搜 clojure ,不过国内用 clojure 的团队非常少。想学的话把《 SICP 》看一遍,课后题通刷,对人编程思想训练很有帮助。就算以后不靠 lisp 或其方言吃饭,也不会饿死。
|
17
jiyinyiyong 2016-03-02 17:43:25 +08:00
Clojure 中文社区欢迎楼主~
论坛 http://clojure-china.org 微博 http://weibo.com/clojurechina QQ 130107204 Lisp 是早期开发出来的语言, 为了以贴近理论的方式进行编程. 到了 Scheme 已经越来数学化, 工业当中使用的人远远不如 C 风格和脚本语言来得多. 不过 Clojure 还是可以玩玩的. 做的事情和一般语言差不多, 但是抽象能力更高..也许太高.. |
18
znoodl 2016-03-02 18:16:06 +08:00 via iPhone
Lisp 的更新版不是叫 Ruby 吗?
|
19
bramblex 2016-03-02 18:43:44 +08:00 via Smartisan T1
|
20
jsyangwenjie 2016-03-02 18:47:38 +08:00
你学语言只是为了找工作么?
|
21
islandev 2016-03-02 18:51:56 +08:00
学语言 其实就是好玩,熟悉一下 思想 ,为了工作去学 太蛋疼了
|
23
ffffwh 2016-03-02 19:03:01 +08:00 via Android
学通了可以去写 C++
|
24
crabRunning 2016-03-02 19:26:50 +08:00
erlang/elixir 好点,不过 elixir-china 基本没什么人.
|
25
yemenchun1 2016-03-02 19:28:46 +08:00 via iPhone
Lisp 的方言 Scheme (+ 255 65535 (* 192 168) 2016) 看得我直眼晕…
|
26
swsh007 2016-03-02 19:35:59 +08:00
全 china 找不到几个用 lisp 编程的。
|
27
hackege 2016-03-02 19:38:31 +08:00
可以学 clojure , jvm 的动态语音,语法跟 lisp 一样
|
28
hitmanx 2016-03-02 19:43:53 +08:00
erlang 有不少职位吧,我上家公司一个大部门全是用 erlang 的..
|
29
Reficul 2016-03-02 20:06:09 +08:00 via Android
|
30
bramblex 2016-03-02 20:29:54 +08:00
@Reficul
然而并不是 Haskell ,本来打算后端用 Haskell 写, 前端用 PureScript 写的。但是由于我的 vps 配置太低,跑不起来 ghc ,所以就全栈 PureScript 了。 博客 : http://lovearia.me Github : https://github.com/bramblex/loveaira.me |
31
fszaer 2016-03-02 22:21:06 +08:00
@bramblex
我看到了啊=。= 但是我是说的是原生 js 嘛, 而且我是说可以函数式就是说可以类似 PureScript 那样用啦=。= 不过说到这个我想起这篇文章,把我看得一愣一愣的 http://jimliu.net/2015/10/21/real-functional-programming-in-javascript-1/ |
32
bombless 2016-03-02 22:35:07 +08:00 via Android
common lisp 还真不简单,应该说非常复杂,要啥特性有啥特性
|
33
bramblex 2016-03-02 22:36:43 +08:00
@fszaer
看看这个才知道不是语言的差距,是人的差距。看看人家怎么用 JavaScript 玩 Functor, Monad, Applicative Functor 的吧…… https://llh911001.gitbooks.io/mostly-adequate-guide-chinese/content/ch1.html |
34
fszaer 2016-03-02 22:56:07 +08:00
@bramblex
已阅过了,然后我一直在等第 11 章,前面的一些简单的 curry 之类内容我也在项目中有尝试应用, 配合 es6 感觉还是蛮不错的 不过看完才发现,我对这方面实在理解不够,于是现在拿着 sicp 在啃啊 |
36
lululau 2016-03-02 23:05:11 +08:00
玩玩 Emacs , elisp 是目前最实用的了
|
37
faywong8888 2016-03-02 23:28:09 +08:00
我之前用 clojure 写过一些爬虫,还有公司内的一个开发者网站。感觉 lisp 还是挺好的一门语言,有很多我喜欢的特性。
|
38
ainimuyan 2016-03-02 23:44:42 +08:00
看完等于白看了
|
39
BOYPT 2016-03-02 23:53:22 +08:00
这个想法真是白看这本书了
楼主还是去工作个五六年后再重新读吧 |
40
EthanZhu 2016-03-03 04:02:45 +08:00 via Android
同意 ls lss 多看几遍吧
|
41
nicevar 2016-03-03 08:39:10 +08:00
哈哈,楼上几位打击的,不过确实是白看了,楼主理想主义者
|
42
jimmy8chu 2016-03-03 08:51:11 +08:00
leancloud. cn. 他们就是用 clojure 的
|
43
asxalex 2016-03-03 08:57:53 +08:00 1
lisp 是一种信仰
|
44
wizardforcel 2016-03-03 08:59:05 +08:00 via Android 1
很明显作者在过度吹捧 lisp 。 lisp 开发效率高?函数式语言是公认的学习困难。要不然 OO 怎么会成为不成文的标准。实际上,各种 OO 语言发展到现在都有了无比丰富的生态, lisp 能干啥?
|
45
MrFinch 2016-03-03 09:29:35 +08:00 1
屠龙之技厉害,奈何龙少
|
46
iamxi 2016-03-03 09:32:57 +08:00
@wizardforcel OO 和函数式编程都只是一种思维方式而已。哪个更好,现在谁也说不好。不能保证面向对象就真的是提高了效率。如果真的难学,又效率低下,那为什么有这么多语言要往函数式这块发展呢。
|
47
robertlyc 2016-03-03 09:40:20 +08:00
javascript,ruby 都可以看做 lisp 的遗产
|
48
wizardforcel 2016-03-03 09:43:11 +08:00 1
@iamxi 一般说到“函数式语言”指的是纯函数式语言,你会把 js 当成函数式吗?脚本语言的确把函数作为 first-class ,但不妨碍其 OO 的主体部分。
OO 是不成文的标准,这个是显而易见的。无论是企业项目,还是 github 上的项目,都封装成对象的形式,而不是高阶函数(闭包套闭包)的形式。以对象为主体,闭包用作辅助,可以提升效率。但是纯函数式语言的闭包套闭包,实在是恶心。 在作者写书的那个年代,绝大多数命令式语言都没有闭包这个东西,不够灵活。现在不少命令式语言吸收了闭包,纯函数式语言也就没有用武之地了。看看 TIOBE 的排行榜就知道了。 |
49
chuan 2016-03-03 09:51:45 +08:00
可以看看 Racket ,属于 Lisp-Scheme family , https://racket-lang.org/
|
50
iamxi 2016-03-03 10:17:37 +08:00 1
@wizardforcel 面向对象的中的对象,本来就是对现实事物的抽象,但不是只要把东西都看成对象了就是 OOP 了。 restful 中的资源也可以看成对象。但确实不能说 restful 的接口都是 OO 的吧。现在来说 REST 不是一种规范吗。谁说都通过 OO 的封装了。封装是 OOP 的一部分,但是模块化的实现就不止 OO 一种。 windows 和 linux 提供的接口时候可没告诉我接口是哪个类下面的。
而且 OOP 和函数式并不冲突,要不然 python 怎么做到的完全基于面向对象,还能写出函数式的代码。从大教堂和集市中可以看到, C 之所以取代了 lisp ,完全是因为 C 的移植能力好。如果历史是 lisp 更易移植,恐怕现在的操作系统是 lisp 写的了。 函数式提供的是数学抽象,相比, OO 提供的抽象更容易让人理解,这也是为什么现在 OO 大行其道的原因。我没说哪个更好。我是一个 JAVA 程序员,学了 python 后发现,原来那些设计模式都 TM 是为了避免 JAVA 开发中一些弊端。学了 lisp 才发现,原来一个算法可以表达的如此完美,哪些什么类,什么对象,都可以去死了。 |
51
wizardforcel 2016-03-03 10:29:54 +08:00
@iamxi
你说的是狭义的 OOP 。然而 OO 的模式不仅仅只有基于继承那一种。比如 JS 是基于原型链的 OO , Golang 是基于组合的 OO 。你说的 linux ,如果你看过源码的话,它采用的是基于组合的 OO 。那些 struct 中的函数指针就是实现多态的途径。 linux 和 win32 的 api 以函数粒度封装,应该是历史因素。你看最新的 winRT api ,就是以类的形式封装的。 |
52
tabris17 2016-03-03 10:33:00 +08:00 2
哪有学会一门语言就出门找工作的,你以为是 PHP 啊
|
54
Rothschild 2016-03-03 12:40:29 +08:00
@pepsin lisp 在工业界当脚本用处多了,机械设计 AutoCAD 就有用 AutoLISP
|
55
bramblex 2016-03-03 13:15:46 +08:00
看到楼上几个业余的在讨论函数式,真心觉得蛋疼……
|
56
vincenttone 2016-03-03 13:36:07 +08:00
首先, lisp 不是纯函数式语言,因为有 define 和 let 这种允许变量的存在。反而 erlang 不存在变量。
第二, lisp 可以 OO ,实现上是通过 let 来保持内部状态的。而 let 是通过 lambda 来实现的。 define 也只是一个 hash 而已。 OO 只是一种模式,目的还是抽象, lisp 的基础允许这种抽象。 确实, lisp 的部分问题在于语法上,或许是这个问题导致了受众小,相关应用库少,推广不容易。 现在确实实际应用上 lisp 很少,貌似 auto cad 用到 lisp (未考证), emacs 扩展是用的 elisp 。 我觉得现在除了传说中人工智能偏好 lisp (未考证), lisp 更多是帮助人理解编程,相关书籍可以参考 sicp 。 黑客与画家这书上对 lisp 的肯定是属于作者那个年代的,我们没必要刻舟求剑。除了很 NB 的宏,其他语言也在慢慢借鉴函数式编程方法,比如 lambda 、 map 、闭包等等。 lisp 的函数式编程对后续的函数式编程语言影响自己是很大的,但是 erlang 、 closure 等语言火的原因和并发编程有关(未考证),这已经是近期的事情了。 楼主既然是为了工作,建议选个热门且自己真正喜欢的, lisp 可以作为提高技能的手段。 个人意见,不建议作为参考。 |
57
a68UkLHpycW7ImyV 2016-03-03 15:11:09 +08:00
拉钩,呵呵。
任何一个招聘网站的成功率都比拉钩高,而且不是一般的高。 |
58
SrvenX 2016-03-03 16:32:54 +08:00 1
学习 LISP 语言的思路比 LISP 本体好的多吧,而且作者本来也是这个意思。
那本书我也有看过,当时对我启发很大。 |
60
lostpupil 2016-03-03 22:35:25 +08:00
Lisp 能屠龙
|
61
hbkdsm 2016-03-03 23:02:53 +08:00 via Android
建议 Ruby ,同时 JS 防身
|
62
jings 2016-03-03 23:30:58 +08:00
请允许我 233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
|
63
TangMing 2016-03-04 08:36:29 +08:00 via iPhone 1
@vincenttone AutoCAD 二次开发用 lisp , autolisp
以前在设计院画图时候经常拿来帮助画比较恶心的图形 |
64
moonranger 2016-03-04 10:42:57 +08:00 1
看到楼主的问题,我突然想到了 Paul Graham 写过的一篇名叫 《 Python 悖论》的文章: http://paulgraham.com/pypar.html
从里面摘一段: And for programmers the paradox is even more pronounced: the language to learn, if you want to get a good job, is a language that people don't learn merely to get a job. 所以我觉得没必要纠结有没有 Lisp 相关的工作,学就是了,你一定会从中收获很多的——即使你以后没法在工作中用 Lisp 。 |
65
random2case 2016-03-04 11:44:29 +08:00
rust 和 scala 吧,都挺好的,支持函数式编程
|
66
zhizhongzhiwai 2016-03-04 13:21:24 +08:00
lisp 不仅是函数式编程语言,他还有个目前其他语言没有的能力: runtime macro. 没有听过这个单词的人,就不要说自己了解过 lisp 。明白的人顶起!!
http://www.rsyslog.com/doc/v8-stable/configuration/modules/idx_output.html |
67
zhizhongzhiwai 2016-03-04 13:21:54 +08:00
|
68
zhizhongzhiwai 2016-03-04 13:23:54 +08:00
lisp 的 macro 不是为那些智商普通的人准备的。 哈哈
|
69
bramblex 2016-03-04 14:08:06 +08:00
|
70
a68UkLHpycW7ImyV 2016-03-04 18:15:43 +08:00
@wowpanda 猎聘、 51job 都不错。
智联不行,中华英才不行,拉钩就是个笑话。 |
72
a68UkLHpycW7ImyV 2016-03-04 22:25:57 +08:00
@wudanyang 拉勾上投过的简历要么没反应,要么跟职位特别不符合。
而在猎聘和 51job 挂的简历,一天下来电话有 20 个左右,正常情况下面试都是安排不完的。 猎聘上都是第三方猎头找你,质量也参差不齐,介绍的工作,大中小公司都有。 51job 上一般是公司的人事直接打电话给你,质量还可以。 |