Языки программирования для распределенной системы [закрыто]
Я некоторое время занимался программированием сокетов на C++ и устал писать один и тот же код для обработки ошибок, сериализации / десериализации данных и т. д.
существуют ли языки программирования, которые имеют первоклассную поддержку распределенной системы?
5 ответов
Он был конструирован Ericsson для того чтобы поддержать распределенные, отказоустойчивые, мягк-в реальном масштабе времени, безпосадочные применения.
вы также можете прочитать Распределенные Эрланг раздел их руководства.
однако обратите внимание, что Erlang является функциональное язык и потребует гораздо другой парадигмы мысль по сравнению с C++.
Go-Lang от Google-довольно новый язык. Кажется, что среди его многих атрибутов он может когда-нибудь пригодиться для больших распределенных систем, требующих много очередей сообщений для достижения масштабируемого согласованного и надежного поведения, по крайней мере, в соответствии с эти люди в в Heroku.
Go, похоже, сосредоточен на проблемах параллелизма, потоковых примитивах на языке и т. д., И это, возможно, необходимая, но не совсем достаточная отправная точка для распределенная система. Возможно, их мысли помогут вам. Я бы не назвал поддержку GO-lang для распределенных систем "первоклассной", а скорее сказал, что можно было бы построить фреймворк распределенных систем первого класса, используя библиотеку Go и языковые примитивы.
Update: Я менее впечатлен Go несколько лет спустя. Я думаю, что он страдает от некоторого грустного и ограниченного мышления со стороны его авторов. Я думаю, что его решения по вине и обработке исключений ретроградный и сделать язык непригодным для использования.
Update-2016: я действительно впечатлен Go снова. Теперь я думаю с точки зрения развития большой команды, где наличие N-факториальных вариантов реализации приводит к N-факториальным различным кодировкам. По крайней мере, у Go, похоже, нет брезентов labrea, только некоторые обычные грязевые валы. Они абсолютно любят вкладки и вставят их в ваш код для вас, если вы не любите их достаточно.
Блум новый предметно-ориентированный язык для распределенного программирования. Текущий альфа-релиз встроен в Ruby и предназначен для ранних пользователей. Bloom использует новые исследования по" спокойному " анализу, чтобы предоставить инструменты, которые точно определяют распределенные проблемы согласованности и координации в вашем коде.
Параллельный Python - модуль python, который обеспечивает механизм параллельного выполнения кода python на SMP (системах с несколькими процессорами или ядрами) и кластерах (компьютеры, подключенные через сеть):
характеристики:
- параллельное выполнение кода python на SMP и кластерах
- легкий для того чтобы понять и снабдить работ-основанный метод распараллеливания (легкий для того чтобы преобразовать серийное применение внутри параллель)
- автоматическое определение оптимальной конфигурации (по умолчанию количество рабочих процессов задается ряд эффективных процессоров)
- распределение динамических процессоров (количество рабочих процессов может быть изменено во время выполнения)
- низкие накладные расходы для последующих заданий с той же функцией (прозрачное кэширование реализовано для уменьшения накладных расходов)
- динамическая балансировка нагрузки (задания распределяются между процессорами в во время выполнения)
- отказоустойчивость (если один из узлов терпит неудачу, задачи переносятся на другие)
- автоматическое обнаружение вычислительных ресурсов
- динамическое распределение вычислительных ресурсов (следствие автоматического обнаружения и отказоустойчивости)
- проверка подлинности на основе SHA для сетевых подключений
- кросс-платформенная переносимость и совместимость (Windows, Linux, Unix, Mac OS X)
- межплатформенную переносимость и совместимость (x86, x86-64 и т. д.)
- открыть источник
можно получить быстрое представление о том, как код может выглядеть глядя на краткое руководство для кластеров.
Ина - это язык сценариев для распределенной системы:
Reia стремится разоблачить мощный возможности Erlang в пути который проще для среднего программиста взять в толк. Оно направляет принести красота и простота Ruby, a язык, который легко и весело программы, в Эрланг язык что очень немногие будут думать, как легко или весело использовать.