为什么NetLogo是在Java和Scala的混合体中实现的?是因为更好地支持并发吗?我不熟悉Scala,但我认为函数式编程风格更适合表示并发编程的保证.
以下是我从2001年到2014年作为NetLogo首席开发人员的经验.
NetLogo中的所有Java代码都是旧代码,我们根本无法将其转换为Scala.
NetLogo项目始于1999年左右,早在Scala存在之前.
当我们在2008年切换到Scala时,我们已经积累了大量的Java代码.随着时间的推移,许多Java代码已经转换为Scala,但不是全部.绝对将所有内容转换为Scala将是一项巨大的努力; 这不值得.
自2008年以来,NetLogo中的所有新代码都在Scala中.
并发不是从Java切换到Scala的主要动机.(在大多数NetLogo中,只有两个线程,即GUI线程和作业线程.只有BehaviorSpace使用更多线程,并且它们相对容易在两种语言中保持分离.)
使用Scala的主要动机是Scala是一种比Java更强大,更富有表现力,更灵活,更优雅的语言,对函数式编程和不变性有更好的支持,这对编写优雅,正确的代码有很大帮助.
这使得Scala更有趣,更令人满意,并且生成的代码更可能更正确,更短,更易于维护.使用Scala(根据我们的经验,通常)会吸引聪明人到开发团队.
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |