熊英飞的科研笔记分享 http://blog.sciencenet.cn/u/flyinghero 北京大学“百人计划”助理教授,从事计算机软件领域研究。主页:http://sei.pku.edu.cn/~xiongyf04/index.html

博文

为什么Haskell不能写大型程序

已有 9532 次阅读 2009-3-26 16:58 |个人分类:未分类|系统分类:科研笔记

可能有无数的原因导致Haskell写不了大型程序,这里只提其中一点。

程序维护中一个非常常见的操作是给一个类添加一个属性,在Java里面我们只需要直接加上去了就好了。比如,把Person { int Age; String Name} 变成 Person {int Age; String Name; boolean Sex}.

但是如果在Haskell里面就不那么简单了。首先我们需要把Person Int String改成Person Int String Bool,然后我们需要在所有对Person做了Pattern Matching的地方都进行修改。任何一个Person a b都要改成Person a b _。这个修改数量往往大的不可想像。

如果我们对Person进行了很好的封装,所有的数据访问都通过函数来进行,比如getAge, getName。那我们至少也要修改这些函数定义里面的Pattern。在一个大型类里面工作量仍然不小。

除非有IDE实现了很好的重构功能,否则这将是一个非常严重的维护问题。可惜据我所知,目前还没有带重构功能的Haskell IDE。唯一能找到一个vim/emacs的重构工具还仍然是实验室产品:http://www.cs.kent.ac.uk/projects/refactor-fp/hare.html

https://blog.sciencenet.cn/blog-211989-222643.html

上一篇:(软件工程领域)研究的优劣与方法复杂度的关系
下一篇:计算机论文写作模式 -- 介绍
收藏 IP: .*| 热度|

0

发表评论 评论 (2 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-7-17 12:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部