金钱豹推荐一门新语言F#

Discussion in 'C++ / C# / Java' started by laserhz, Jan 11, 2010.

  1. 是啊!写策略用这非常适合!
     
  2. 要用FP直接用haskell,lisp好了,为啥要去学F#?哪怕跟scala也要更好啊。我很不喜欢跟ms的东西混,尤其是这些还不明朗的东西,跟ms混,很容易被它当试水的炮灰而抛弃的。

    其次,FP的确对于解决并行问题有天然的优势。我也很喜欢FP。但是FP最好作为一种精神,一种思想,领悟就可以了。FP用于工程实践是有许多问题的。
    首先是编程思维的大幅度改变。lambda演算,continuation,monad,这些东西的掌握不是这么简单的。
    其次,FP语言的普遍要比基于过程的语言难调试。
    最后,FP的性能是不可能有基于过程的语言高的。

    FP的优势就是大规模并发,伸缩性好。但只要掌握了FP的思想,传统的语言一样可以做的很好,而且一样很方便。最典型的就是google的mapreduce,以及hadoop的应用。

    最后提提erlang。erlang的好处只在理论上,或者某些特殊场合。在服务器领域,许多用erlang开发高伸缩度的尝试都失败了。因为它本身的导致的性能下降太厉害。举个不恰当的例子,假设原来能跑100,它现在只能跑10,那么用10台电脑并发它能跑95。伸缩性是好啊,但是伸缩造成的好处还抵消不了性能下降带来的坏处,有啥用?服务器的并发能力,是最严酷的测试环境。erlang在这方面至今没有拿得出手的killer application,就是它失败的证明。
     
  3. 文华和飞狐的公式编辑器是什么东西做的?
     
  4. 说起erlang,刚看到,Gemini Mobile Technologies在Apache许可证下发布了开源非关系型数据库Hibari(在日语中意思为“云雀”)。 Hibari是为海量数据储存优化的高可靠性和高可用性数据库,可用于云计算应用,如Web电子邮件、社交网络服务,以及其它日常需要储存TB和PB级规模数据的服务。Hibari采用Erlang编程语言开发,支持Java、C/C++、Python、Ruby和Erlan。
     
  5. 你举的例子依然不是有效的killer application了~因为这个级别的实现太多了。基于python做的zope,还实现了面向对象数据库呢。

    nosql类数据库现在是多如牛毛,随手一抓一大把:Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable, Riak,Tin, Flare, Lightcloud, KiokuDB,Scalaris, Kai, ThruDB

    目前nosql中的领头羊的是Cassandra,已被facebook采用。

    我觉得,ErLang带来的积极的一面,就是提高了FP的普及程度~ErLang也算是众多小众FP语言中,最近出镜率最高的了。
    anyway,我还是那个观点,FP作为一直思想是需要知道和领悟的。但是运用于工程性目的最好慎重一点。它目前是战胜不了过程式语言的。为FP而生的硬件目前还不存在(不要举70年代的LISP机的例子,那个依然是基于布尔电路的)。

    最后,再次强调下,语言只是工具,真正重要的是背后的思想。语言特征本身并不重要。C++在语言层面支持OO,但一个不理解OO本质的人,如果上手就学C++,写出来的程序也只能空有OO的架子而已。ErLang也是如此。ErLang的并行化能力源于何处,如果理解了这个,用啥语言都能写大规模并行程序,比如Google的MapReduce。不理解这个,ErLang的语言特征也帮不上任何忙。
     
  6. 学f#,为什么不学Python呢?