Jer*_*rth 13 ruby python lua clojure livecoding
我想建立一个"实时编码框架".
我应该解释一下"实时编码框架"的含义.我将通过将实时编码与传统编码进行比较来实现.
一般来说,在传统编程中,您编写代码,有时编译代码,然后启动可执行文件或在某种解释器中打开脚本.如果要修改应用程序,则必须重复此过程.实时编码框架使代码能够在应用程序运行时更新并按需重新加载.每次更改包含代码的文件或执行其他操作时,可能会发生此重新加载.然后,代码中的更改将在应用程序运行时反映出来.无需关闭程序并重新编译和重新启动它.
在这种情况下,应用程序是一个带窗口的应用程序,它具有更新/绘制循环,很可能使用OpenGL进行图形处理,音频库用于声音处理(SuperCollider?),理想情况下是网络库.
当然我有首选语言,但我不确定它们中的任何一种都适合这种架构.理想情况下,我会使用Python,Lua,Ruby或其他更高级别的语言.然而,一位朋友最近建议将Clojure作为一种可能性,所以我也在考虑它.
我不仅想知道哪种语言适合这种框架,而且通常,哪种语言特性可以使这样的框架成为可能.
我在Lua中实现了一个实时编码功能,作为ZeroBrane Studio IDE的一部分.它完全按照您所描述的方式通过在代码更改时重新加载应用程序来工作.我正在研究可能的改进,以便在运行时修改值,以避免完全重新加载应用程序.它是一个纯粹的基于Lua的解决方案,不需要对VM进行任何修改.
您可以在此处查看当前实施的实时编码演示:http://notebook.kulchenko.com/zerobrane/live-coding-in-lua-bret-victor-style.
在使用/要求的语言功能方面,我依赖:
Clojure 几乎拥有您作为实时编码语言可能想要的一切。主要亮点:
(future (some-function)). 更重要的是,Clojure 的 STM 和对高性能不可变数据结构的强调将处理更微妙的并发方面(例如,如果我在渲染过程中更新实时数据结构会发生什么?)您可能会发现一些有趣的链接:
| 归档时间: |
|
| 查看次数: |
1249 次 |
| 最近记录: |