gpt4 book ai didi

scala - 为什么 NetLogo 是在 Java 和 Scala 的混合中实现的?

转载 作者:行者123 更新时间:2023-12-04 15:50:58 32 4
gpt4 key购买 nike

为什么 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(根据我们的经验,通常情况下)会吸引聪明的人加入开发团队。

关于scala - 为什么 NetLogo 是在 Java 和 Scala 的混合中实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45225576/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com