如题,Clojure或者类似的函数式编程语言是否适合开发游戏(非服务端)?
简单答案是 Why not?
复杂答案是正在有不少探索,但离实用阶段还有些距离。例如Clojure-unity3d是探索用 Clojure 来作为 Unity3D 的脚本语言。这个看起来过分早期?也可以看看 play-clj,使用 libGDX 来做跨平台的开发。
它还处于萌芽阶段的原因有:
据我所知游戏客户端(PC)的开发是以C/C++
& Lua
组合为主流的,其中前者负责图像、物理等引擎部份,后者负责关卡、剧情的DSL
函数式语言首先做不了后者(门槛偏高),然后如果要取代前者的话,物理引擎可能还行,图像引擎的话回避不开OpenGL和D3D等图像库亲C的问题。另外性能方面也有待具体考量
不过我知道Clojure和Scala是JVM语言,可以睡在安卓的dalvik上,取代Java做安卓游戏开发。不过高性能的部分还是需要NDK和C家族的语言支持
非游戏开发,请专业人士继续补充
建议楼主研究一下FRP这个词,再回来看这个问题。
比如 http://elm-lang.org/