跳至主内容

16 篇带有“编程语言”标签的文章

查看所有标签

使用 Elixir 编写 RabbitMQ 插件

·9 分钟阅读
Álvaro Videla

RabbitMQ 是一个非常可扩展的消息代理,允许用户通过编写插件来扩展服务器的功能。许多代理功能甚至作为插件随代理一起安装:例如,管理插件STOMP 支持。虽然这很酷,但插件必须用 Erlang 编写有时会成为一种挑战。我决定看看是否可以用另一种针对 Erlang 虚拟机 (EVM) 的语言编写插件,在这篇文章中我将分享我的进展。

AtomizeJS:分布式软件事务内存

·3 分钟阅读
Matthew Sackman

AtomizeJS 是一个用于编写分布式程序的 JavaScript 库,这些程序在浏览器中运行,而无需在服务器上编写任何应用程序特定的逻辑。

在 RabbitMQ 总部,我们花费大量时间进行争论。偶尔,这些争论是关于重要的事情,比如“消息传递”到底意味着什么,以及可以用于实现“消息传递”的各种 API。RabbitMQ 和 AMQP 为消息传递提供了一个非常明确的接口:你确实有“发送”和“接收”这两个动词,并且需要考虑你的消息传递模式。在后台有很多(通常很巧妙的东西)在进行,但尽管如此,接口还是相当底层的和明确的,这提供了很好的灵活性。然而,有时这种 API 风格并不是解决你正在解决的问题最自然的方式——你是否真的会陷入僵局并想到“我现在需要的是一个 AMQP 消息代理”,或者你是否会根据先前的知识意识到你可以选择使用 AMQP 消息代理来解决当前的问题?

ZeroMQ =/= Erlang

·3 分钟阅读
Michael Bridgen

最近我看到一条推文说“ZeroMQ 让一切都 Erlang 化!”之类的。虽然我意识到并非网上发布的所有内容都是认真的,但似乎最近有一股类似的说法应该被遏制。

在《多线程魔法》[^1]一文中,Pieter Hintjens 和 Martin Sustrik 有说服力地解释了为什么消息传递比锁和共享内存更能有效地处理并发。而且我认为,他们在分析中是公平的——除了暗示使用 ZeroMQ 会将你选择的编程语言变成一种家用的 Erlang。

你能听到鼓声吗,Erlando?

·15 分钟阅读
Matthew Sackman

我们 RabbitMQ 总部的大多数人都曾在 Erlang 之外的许多函数式语言工作过,例如 Haskell、Scheme、Lisp、OCaml 等。虽然 Erlang 有很多值得称道的地方,比如它的虚拟机/模拟器,但不可避免地会有我们从其他语言中怀念的功能。对我来说,在回到 RabbitMQ 之前,我在 Haskell 工作了几年,结果发现有各种各样的功能“缺失”,比如惰性求值、类型类、额外的中缀运算符、指定函数优先级的能力、更少的括号、部分应用、更一致的标准库和 do-notation。这是一个不错的列表,我需要花点时间才能在 Erlang 中全部实现它们,但这里有两个作为开端。

© . This site is unofficial and not affiliated with VMware.