通用编程语言(Python)与定制语言(PureData/MaxMSP/ChucK)的结合
我在学习Python,因为作为一个数学爱好者,它对我很有吸引力,而且还有很多实用的库可以用来做科学计算、图像处理、网页应用等等。
不过让我感到沮丧的是,对于我某些兴趣(比如电子音乐或装置艺术),有一些特定的编程语言似乎更适合这些用途,比如Max/MSP、PureData和ChucK,这些都非常有趣。
我的问题是,面对这些不同的编程语言,我应该怎么做呢?我是不是应该只学习Python,然后通过插件和Python解释器来使用其他语言?有没有好的工具可以把这些语言结合起来,还是说最好的办法就是把它们都学会呢?
4 个回答
用Python和一些专业语言之间建立良好的接口是完全可行的。比如有一个叫RPy的工具,它可以让你用Python来操作R语言(R主要用于统计分析)。
当然,你需要对这两种语言都很熟悉。不过,遗憾的是,并不是每对通用语言和专业语言之间都有现成的桥接工具。如果你想要使用所有这些语言,最好的办法还是学习它们!
这个讨论有点老了,但我想提一下,大多数成熟的音频开发环境,比如supercollider、max-msp和pure data,都可以通过开放声音控制(OSC)来进行控制。你可以在网上搜索一下OSC的更详细介绍,不过简单来说,它让你可以像使用MIDI一样,向这些环境中构建的合成器发送控制数据,但功能要丰富得多。这并没有直接解决在Python中构建合成器的问题,但它让你可以“操控”这些其他环境,而不需要深入了解它们的编程语言。
我觉得还是学所有的语言比较好。虽然很多编程语言都能完成很多事情,但专门的语言通常在特定任务上更有效、更容易使用。比如说,虽然大多数语言都能进行命令行操作和进程控制,但很少有语言能像bash脚本那样适合这个任务。
插件和库可以帮助我们在通用语言和专门语言之间架起桥梁,但根据我的经验,这样做并不总是没有缺点——可能会影响速度、稳定性或者增加复杂性。我们常常需要编译额外的库,或者应用补丁,甚至使用一些不太可靠、支持不好的模块。而且,最终得到的接口有时候比原来的语言还要难用。
我大约熟悉15种编程语言,其中有几种非常精通。我在选择语言时,会根据具体情况来决定,不会只用我最喜欢的语言。