【问题标题】:Erlang will be "particularly bad at things like signal processing"Erlang 将“在信号处理等方面特别糟糕”
【发布时间】:2013-11-19 08:22:16
【问题描述】:
来自“Learn you some Erlang for Great Good”一书:
Erlang 不是灵丹妙药,尤其擅长
图像和信号处理、操作系统设备驱动程序、
和其他功能。
现在,操作系统设备驱动程序,当然,但有什么原因为什么 Erlang 不能 用于数字信号处理?作者在这里暗指什么?仅仅是 Erlang 在 DSP 应用程序中表现不佳,还是有特殊原因导致它在结构上不适合这项工作? (我没有考虑将它用于 DSP,我只是好奇。)
【问题讨论】:
标签:
erlang
signal-processing
【解决方案1】:
只是 Erlang 在 DSP 应用程序中表现不佳
不只是那个:你也不会找到很多(如果有的话)可以帮助你的库,你可能会发现 Erlang 的好处在这些领域没有多大用处。这通常适用于“数字运算”,图像和信号处理只是示例。
【解决方案2】:
虽然我的回答可能不准确,但我认为 Erlang 不适合“信号处理”,原因如下(当然,可能还有更多原因。请随时纠正我):
- Erlang 缺少高级数学库。 MATLAB 在这方面给人留下了深刻的印象。
- 您不能将 Erlang 用于实时信号处理系统中的嵌入式软件。
【解决方案3】:
我认为主要原因是 erlang 不是非常快,这会出现在需要大量数字运算的应用程序中。 Erlang 的优势在于并发性和容错性,而这些在图像处理等应用程序中的相关性较低(很少或没有并发性)。
OTOH,erlang 擅长处理二进制数据,并且非常擅长并行处理。 DSP 应用程序的核心数字运算部分可以移植到 C 库(通过端口或链接的驱动程序或 NIF)。 Erlang 是一种用于软实时应用程序的语言,它作为嵌入式软件非常适用。
因此,DSP 不是 erlang 的主场,但 erlang 仍然可以很好地适合特定的 DSP(或特定的 DSP 程序员)。