为什么一定要有呢?Haskell社群的Slogan: Avoid success at any cost
大家在用数学公式时几乎不会考虑如下的一些问题:
"数学公式是否要有杀手级的应用?"
"数学公式是否有很大的社群?"
"数学公式是否流行,是否过几年就被淘汰了?"
"数学公式是否受某个大公司青睐?"
"学好数学公式是否能找个好工作,薪水会不错否?"
...
我觉得对待Haskell就像对待数学公式一样好了,它是帮助我们思考问题,并表达我们思路和解法的一个方便体系。
几百年前当欧拉,高斯他们兴味十足的研究数论时,谁想到了几百年后的RSA和密码应用呢?
有应用自然很好,没有应用仅仅欣赏它的优美也很好
--
http://sites.google.com/site/algoxy
> --
> Subscription settings:http://groups.google.com/group/pongba/subscribe?hl=zh-CN
On 4月23日, 下午2时34分, 机械唯物主义 : linjunhalida <linjunhal...@gmail.com>
wrote:
> 能够做"没有用处"的事情是贵族的象征??
>
> 2010/4/23 Kenny Yuan <yuankain...@gmail.com>
>
>
>
>
>
> > 敢问你是想借这个找工作?或者想学习它但没有一个很功利的理由说服自己?
>
> > 在 2010年4月23日 上午11:25,Christian <silvert...@gmail.com>写道:
>
> >> 想请教各位Haskell目前是否有杀手级应用程序?或者说特别擅长的领域,工程或者科学计算的都行。
> >> 因为稍微搜索了一下,没有找到特殊的应用,感觉可以预见的几年之内似乎没有特别突出Haskell优势的方向。
>
> >> --
> >> 因为无知而傲慢,因为有知而谦逊
>
> > --
> > Kenny Yuan
> > -->CS, MMA, Psychology, Automobile...
> >http://twitter.com/kenny_yuan
> >http://csbabel.wordpress.com/
> >http://blog.csdn.net/yuankaining/
>
有实际写编译器的例子吗?性能如何?GCC我都觉得不够快啊,特别是编译C++时。
2010/4/23 Wei Hu <wei...@gmail.com>:
--
Wu Yongwei
URL: http://wyw.dcweb.cn/
编译C++的速度慢主要是因为C++语言本身的问题吧,像Google的go语言就考虑到编译器的速度专门做了设计,其它语言设计时好像都没有考虑这一
点。
Haskell还有一种很流行的应用是EDSL (embedded domain specific language),近几年的ICFP和
CUFP会议上都有一些例子。
On Apr 23, 12:30 pm, Yongwei Wu <wuyong...@gmail.com> wrote:
> 换句话说是让人舒服,不是让机器舒服?这样的话,要出杀手级应用需要点时间了。
>
> 有实际写编译器的例子吗?性能如何?GCC我都觉得不够快啊,特别是编译C++时。
>
> 2010/4/23 Wei Hu <wei....@gmail.com>:
On Apr 23, 12:36 pm, Yongwei Wu <wuyong...@gmail.com> wrote:
> LISP程序员要来找你单挑了。
>
> 个人对"纯"毫不感冒。现实世界总需要很多折衷,"纯"这时通常不是好事。
>
> 2010/4/23 Wei Hu <wei....@gmail.com>:
On Apr 23, 12:39 pm, Christian <silvert...@gmail.com> wrote:
> 非常感谢:)。正好我目前在实现一个类java的语言,现在是用C实现的,看来有必要试试用Haskell实现。
> 另外Haskell的稳定性确实有很多人提及。
>
> 在 2010年4月24日 上午2:23,Wei Hu <wei....@gmail.com>写道:
>
> > XMonad
>
> --
> 因为无知而傲慢,因为有知而谦逊
>
On Apr 23, 12:36 pm, Yongwei Wu <wuyong...@gmail.com> wrote:
> LISP程序员要来找你单挑了。
>
> 个人对"纯"毫不感冒。现实世界总需要很多折衷,"纯"这时通常不是好事。
>
> 2010/4/23 Wei Hu <wei....@gmail.com>:
Haskell有没有用,要不要学?这个问题对于不同的人来说有不同的答案.如果你致力于程序语言本身的开发和研究特别是现代的程序语言技
术,Haskell是必学的.如果你是普通的开发人员,不学不影响你的工作和生计.但学了可以让你看到更多更超前的东
西.Fortran,Lisp,Haskell是程序语言理论的三个奠基之作.有了Fortran,才会有结构化面向对象,有了Lisp,才会有
GC,Lambda.有了Haskell,才有Type inference.程序语言的发展总是从理论研究再到工程实践.理论研究的工作就是着眼于能
行性,而工程实践的目的在于如果将能行的理论转化为在当前软硬件条件下可用的工具.工程实践总是要比计算机科学的理论慢上10-20年,这是社会经济发
展的局限。作为一个普通的开发人员,如果你只是关注当下的流行语言,那么无疑你是在疲于奔命.学院派的实验作品与工程语言有很大的不同,学院派的实验作
品严谨纯粹,成体系,语言特性高度浓缩.而工程语言,鲜有自己的发明创造。他们则为了实践的需要,他们总是从各个地方抄袭借鉴。这里抄一部分C,哪里借
鉴一点Java,再揉合一些Lisp,然后起一个花里胡哨的名字.就能培养一大批fans跟在他们后面狂欢.学院派的理论思想被打散在许许多多花里胡哨
的工程作品里。一个普通的程序员可能需要学习4-5种语言,才能学完一个学院派作品就可以讲完的东西。学院派的东西的确枯燥,抽象,学习难度非常大,而
且没啥实际的用途.但是如果你肯花一个工程语言2倍的的时间,去多看一些基础的理论,多学一点学院派的实验作品.你再回过头去看那些工程语言,浏览一下
他们的FAQ就会知道这些特性应该怎么用,怎么理解.
当然学习实验性语言不仅可以省下学习的时间,更重要的是让你在工程应用中对语言特性的选择有更明确的判断。软件开发里很多程序员喜欢钻牛角尖,学会了
OO恨不得所有的程序都OO,学会了Lambda恨不得所有的程序都FP.很多人说这是程序员的职业病,我却不以为然.我觉得这是人类接受知识的通性。
我们的学习就是在不断的试错,只有错误的结果足够的多我们才能在这些错误中总结教训,发现某种知识的局限获得新的知识.关键在于试错的成本有多大,在我
看来仅仅学习工程语言试错的成本是非常高的.学习实验性语言的最大优势就在这里,一方面它非常的纯粹,通常会把一个语言特性的推到极致,比如像
lisp.在你学习的过程中用它来尝试解决各种问题就快速会发现诸多的局限和问题,而工程语言总是给你许多不同的选择,OO不行可以用模板,模板不行用
FP.如果试错次数到总结经验之间有一个阈值的话,那么无疑工程语言是把这个次数摊薄了,你需要更多的时间和工作才能发现问题的所在。另外一方面,工程
语言往往专注于一个领域,甚至专门为某一种硬件或者软件平台而开发。而实验性语言更关注于各种领域内普遍出现的共同性问题,它会抽掉具体硬件软件背景,
把他们共同的问题抽象出来讨论甚至加以形式化比如GC,Type inference。也就是说你会在实验性语言中看到你专业领域内所看不到的东西.一
个语言特性在某个领域内是圣经,在另一个领域内却是毒药。如果不去学习实验性语言,对于这种语言特性的局限认识需要你在大量不同的领域中试错才能获
得。
我们经常说,学习一门技术不是目的,目的是用这个技术去解决问题。如果我们狭隘的理解这句话,那么Haskell这些实验性的语言自然没有什么意义。但
是在我看来,语言的学习本身就是一种问题。而学习Haskell Lisp的目的恰恰就是去解决如何学习语言这个问题。
On 4月25日, 下午7时28分, 朱晋玄 <zhujinx...@gmail.com> wrote:
> 听说Type inference是ML而不是Haskell的
> 也许我记错了
>
On Apr 25, 7:28 am, 朱晋玄 <zhujinx...@gmail.com> wrote:
> 听说Type inference是ML而不是Haskell的
> 也许我记错了
>
对于同一问题,用多种方式去解决非常有帮助,这就是我在algoxy上(http://sites.google.com/site/algoxy)对
所有问题
尽量同时给出C++的Python的,Haskell的和Scheme/Lisp4种实现的原因。
但是,根据我的体会,虽然从时间上,语言有先后之分,有前驱后继的关系。
但是并不是说所有的问题一定都是后来的新语言更适合。
另外,虽然从计算理论上来说,图灵机和lambda演算是等价的。
imperative的解必然存在等价的functional解。但是在实际问题时,两种approach会大相径庭。
有些online updating的解法,迄今为止人们没有发现同样好的纯FP解法。
另外,在长数组,Hash和数据库操作方面是纯FP的短处。虽然有一些替代方法,例如用平衡树代替数组索引和Hash,但
性能仍距离imperative的方法有差距。这些都是未来值得研究的领域。
就目前来说,技术上已经不存在阻碍FP应用的瓶颈了。唯一的问题是商业上尚不能做到广泛接受,这主要是意识问题。
--
http://sites.google.com/site/algoxy
On Apr 25, 7:28 pm, 朱晋玄 <zhujinx...@gmail.com> wrote:
> 听说Type inference是ML而不是Haskell的
> 也许我记错了
>