分布式系统的编程语言

发布于 2024-09-10 20:53:01 字数 85 浏览 3 评论 0原文

我已经用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

赠意 2024-09-17 20:53:01

Erlang,如 维基百科

它由爱立信设计,旨在支持分布式、容错、软实时、不间断应用。

您可能还想阅读分布式 Erlang 部分他们的手册。

但是,请注意,Erlang 是一种函数式语言,并且需要大量与 C++ 相比,不同的思维范式。

Erlang, as described by Wikipedia:

It was designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications.

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++.

暖树树初阳… 2024-09-17 20:53:01

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.

岁月如刀 2024-09-17 20:53:01

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.

烟火散人牵绊 2024-09-17 20:53:01

Reia 是一种分布式系统的脚本语言:

Reia旨在揭露强者
Erlang 的功能在某种程度上
对于普通程序员来说更容易
去理解。其目的是带来
Ruby 的美丽和简单,
简单又有趣的语言
使用 Erlang 语言进行编程
很少有人会认为这很容易
或者使用起来很有趣。

Reia is a scripting language for distributed system:

Reia aims to expose the powerful
capabilities of Erlang in a way which
is easier for your average programmer
to understand. It aims to bring the
beauty and simplicity of Ruby, a
language which is easy and fun to
program in, to Erlang, a language
which very few will think of as easy
or fun to use.

层林尽染 2024-09-17 20:53:01

Parallel Python 是一个 Python 模块,它提供了在 SMP(具有多个处理器或多个处理器的系统)上并行执行 Python 代码的机制核心)和集群(通过网络连接的计算机):

特点:

  • 在 SMP 和集群上并行执行 python 代码
  • 易于理解和实现基于作业的并行化技术(易于并行转换串行应用程序)
  • 自动检测最佳配置(默认情况下,工作进程的数量设置为有效处理器的数量)
  • 动态处理器分配(工作进程的数量可以在运行时更改)
  • 具有相同功能的后续作业的开销较低(实现透明缓存 动态分配计算资源(自动发现和分配任务
  • 动态负载平衡(运行时在处理器之间分配作业)
  • 容错(如果其中一个节点失败,任务将重新安排到其他节点上)
  • 自动发现计算资源
  • 的结果)容错)
  • 基于 SHA 的网络连接身份验证
  • 跨平台可移植性和互操作性(Windows、Linux、Unix、Mac OS X)
  • 跨体系结构可移植性和互操作性(x86、x86-64 等)
  • 开源

可以快速获取通过查看集群快速入门指南来了解代码的外观

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:

  • Parallel execution of python code on SMP and clusters
  • Easy to understand and implement job-based parallelization technique (easy to convert serial application in parallel)
  • Automatic detection of the optimal configuration (by default the number of worker processes is set to the number of effective processors)
  • Dynamic processors allocation (number of worker processes can be changed at runtime)
  • Low overhead for subsequent jobs with the same function (transparent caching is implemented to decrease the overhead)
  • Dynamic load balancing (jobs are distributed between processors at runtime)
  • Fault-tolerance (if one of the nodes fails tasks are rescheduled on others)
  • Auto-discovery of computational resources
  • Dynamic allocation of computational resources (consequence of auto-discovery and fault-tolerance)
  • SHA based authentication for network connections
  • Cross-platform portability and interoperability (Windows, Linux, Unix, Mac OS X)
  • Cross-architecture portability and interoperability (x86, x86-64, etc.)
  • Open source

One can get a quick idea of how the code might look by looking at the quick-start guide for clusters.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文