广泛宣传Erlang的功能是它能够在应用程序运行时热交换代码模块,并且显示为其他语言所不具备的独特杀手功能。
以下是Joe Armstrong's book的引用:
大多数服务器执行固定程序,并且 如果要修改服务器的行为,则必须停止服务器 然后使用修改后的代码重新启动它。
尽管在Web开发环境中,大多数语言都支持所谓的代码热插拔,即使没有调用它也是如此。它只是通过git或持续集成解决方案更新代码并在网上发布。
我知道Erlang在除了web之外的域中有很多应用程序,所以我确信在这些情况下它是有意义的。
但是,与用于Web的动态语言(如Python,Ruby,JavaScript)相比,此功能是否具有优势? Web开发的哪些案例优于流行的面向Web的语言?
答案 0 :(得分:2)
erlang中的热代码交换提供的不仅仅是升级代码的能力(我不会与python,ruby或javascript进行任何比较,我对它们的了解非常有限):
{system, From, Req}
格式的消息,然后拨打sys:handle_system_msg/6
,然后调用code_change call_back。答案 1 :(得分:0)
此功能并非针对Web开发,因为Erlang本身并非专门针对Web开发而创建。
此功能优于用于Web的常规动态语言中使用的模型的一个可能区域是对代码升级方式的精确控制。