不用静态类型函数式编程语言的十大理由

发表于:2013-6-24 09:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  你厌烦函数式编程么?我也烦,我真想呼吁那些想我一样明智的人远离这种语言。

  这里要澄清一点,我指的这种静态类型函数式编程语言,包括那种类型推断或者静态缺省等等。实际上,就是Haskell和ML—family(包括Ocaml和F# )

  理由一:不想跟潮流

  像大多数程序员一样,我怀旧且讨厌学习新东西。

  这是我选择混IT这行的原因。

  我不跟风的原因跟其它“程序猿“一样,静观其变,等该产品差不多了且能看到其前景。

  对我来说,函数式编程这东西太新了,我讨厌新东西。

  是的,有些家伙已经把ML和Haskell跟他们之前最喜欢的Java&PHP作比较了。

  但最近我只听说过Haskell,他们所说的对我都是废话。

  看看新宠F#语言。已经有七年了,彼得的大作。当然,这在业界来说已经生存不少时间了,但相对于互联网的历史,七年只是一眨眼。

  所以,像我所说的那样,我会谨慎的小心的观察每个internet潮流,函数式式编程或许只是浮云。

  原因2:我按代码行数算工资

  你怎么想的我不知道,但是随着我写的代码越多,我就越有成就感,效率很高。如果一天能快速完成500行代码,那就可以说你干的漂亮。每天的任务很繁重,而且boss眼里你也总是忙忙碌碌的。

  但是当我拿函数式编程语言和那些老牌语言例如C去比较时,代码少的让我吃惊。

  就拿下面这段代码为例:

  1. public static class SumOfSquaresHelper 
  2.    public static int Square(int i) 
  3.    { 
  4.       return i * i; 
  5.    } 
  6.    public static int SumOfSquares(int n) 
  7.    { 
  8.       int sum = 0
  9.       for (int i = 1; i <= n; i++) 
  10.       { 
  11.          sum += Square(i); 
  12.       } 
  13.       return sum; 
  14.    } 
  15. }

  比比下面的:

  1. let square x = x * x 
  2. let sumOfSquares n = [1..n] |> List.map square |> List.sum

  十七行的代码只剩下2行了,想想如果这种变化发生在整个工程里面会有什么后果。

  如果我们使用这种方法,估计我的代码产量会直线下降--这不是我能忍受的。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号