分布式系统的编程语言
我已经用 C++ 进行套接字编程有一段时间了,有点厌倦了必须编写相同的代码来处理错误、序列化/反序列化数据等。
是否有编程语言对分布式系统?
I've been doing socket programming for a while in C++, and kind of got tired of having to write the same code to handle for errors, serializing / deserializing data, etc.
Are there programming languages out there that have first-class support for distributed system?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Erlang,如 维基百科:
您可能还想阅读分布式 Erlang 部分他们的手册。
但是,请注意,Erlang 是一种函数式语言,并且需要大量与 C++ 相比,不同的思维范式。
Erlang, as described by Wikipedia:
You might also want to read the Distributed Erlang section of their manual.
However, note that Erlang is a functional language and will require a much different paradigm of thought as compared to C++.
Google 的 Go-Lang 是一种相当新的语言。看起来,在它的众多属性中,它有一天可能适合需要大量消息队列来实现可扩展的一致和可靠行为的大型分布式系统,至少根据 这些人在heroku。
Go 似乎专注于并发问题、语言中的线程原语等等,这可能是分布式系统的必要但不充分的起点。也许他们的想法会对你有所帮助。我不会称 Go-lang 对分布式系统的支持是“一流的”,而是说可以使用 Go 的库和语言原语构建一流的分布式系统框架。
更新:几年后我对 Go 的印象就不那么深刻了。我认为它的作者有一些悲伤和有限的想法。我认为它对错误和异常处理的决定是倒退的,并且导致该语言无法使用。
2016 年更新:实际上 Go 再次给我留下了深刻的印象。我现在认为,就大型团队开发而言,拥有 N 因子实现选项会导致 N 因子不同的编码 tarpit。至少Go似乎没有实验室规模的柏油坑,只有某些传统的泥坑。他们绝对喜欢制表符,如果您不够喜欢它们,他们会为您将它们插入到您的代码中。
Go-Lang from Google is a pretty new language. It seems that among its many attributes, it may some day be suitable for large distributed systems requiring a lot of message queues to achieve scalable consistent and reliable behaviours, at least according to these folks at heroku.
Go seems to be focused on concurrency issues, threading primitives in the language, and so on, and this is perhaps a necessary-but-not-quite-sufficient starting point for distributed systems. Perhaps their thoughts will be helpful to you. I wouldn't call Go-lang's support for distributed systems "first-class", but rather, say that it would be possible to build a first class distributed-systems framework using Go's library and language primitives.
Update: I'm less impressed with Go several years later. I think it suffers from some sad and limited thinking on the part of its authors. I think its decisions on fault and exception handling are retrograde, and render the language unusable.
Update-2016: I'm actually impressed with Go again. I now think in terms of large team development where having N-factorial implementation options leads to N-factorial different coding tarpits. At least Go doesn't seem to have labrea scale tarpits, only certain conventional mudwallows. They absolutely love tabs and will insert them into your code for you if you fail to love them enough.
Bloom 是一种用于分布式编程的新的特定于领域的语言。当前的 alpha 版本嵌入在 Ruby 中,面向早期采用者。 Bloom 利用“CALM”分析的新研究来提供工具来查明代码中的分布式一致性和协调问题。
Bloom is a new domain-specific language for distributed programming. The current alpha release is embedded in Ruby, and targeted at early adopters. Bloom leverages new research on "CALM" analysis to provide tools that pinpoint distributed consistency and coordination issues in your code.
Reia 是一种分布式系统的脚本语言:
Reia is a scripting language for distributed system:
Parallel Python 是一个 Python 模块,它提供了在 SMP(具有多个处理器或多个处理器的系统)上并行执行 Python 代码的机制核心)和集群(通过网络连接的计算机):
特点:
可以快速获取通过查看集群快速入门指南来了解代码的外观。
Parallel Python is a python module which provides mechanism for parallel execution of python code on SMP (systems with multiple processors or cores) and clusters (computers connected via network):
Features:
One can get a quick idea of how the code might look by looking at the quick-start guide for clusters.