#java #erlang
Closed. This question is opinion-based. It is not currently accepting answers. Want to improve this question? Update the question so it can be answered with facts and citations by editing this post. Closed 3 года назад. Я начал изучать функциональное программирование. Пока в основном по книге СИКП. Видно, что это крутая штука. Когда нет управления состоянием - ФП по-моему очень облегчает написание кода, позволяет сосредоточиться на алгоритме. Но мне вот очень интересно, а можно ли вообще писать одну и ту же программу на разных языках? Делают ли так? Например, писать все в императивном стиле - это по-моему не самая лучшая идея. Но и в функциональном стиле вряд ли получится целиком большую программу написать. То есть функциональны и императивный подход точно должны сосуществовать в больших программах, правильно? А вот что насчет языка? Например, GUI и обращения к базе данных реализовать на java, а всю бизнес-логику на erlang? Нет, сейчас конечно можно писать в функциональном стиле и на java, но столько фишек как на erlang все равно не получишь. Например, erlang дает очень большие возможности для распараллеливания. На java, даже используя добавленные недавно лямбда таких возможностей для распараллеливания не добиться. В общем, интересует следующее: возможно ли технически в одном проекте писать часть на erlang, а другую на java?
Ответы
Ответ 1
Не вижу ничего плохого в том, чтобы писать программу на нескольких языках, каждую часть — на том, на котором удобнее. Вопрос стоит больше в том, удобно ли компоновать части, написанные на различных языках. Например, если языки, которые вы используете, опираются на общий рантайм, объединять их легко (особенно если при этом языки создаются с рассчётом на interoperability). Пример: языки на основе .NET (C#, Visual Basic, F#), языки на основе JVM (Java + Scala), языки на основе C (C + C++): объекты одного из них можно без особенного труда использовать в других. С сильно разнородными языками связать модули сложнее. Обычно используют либо C в виде общего знаменателя (Python, P/Invoke в .NET), либо обмен данными через текстовый формат (Unix shell и его утилиты). Также часто применяются различные формы RPC (например, AJAX по сути является таковым, и не стоит забывать COM). Ещё одна часто используемая возможность — полная или частичная кодогенерация. Например, Razor генерирует HTML, T4 и WPF генерируют исходники на C#. По сути, сейчас и так многие программы пишутся на нескольких языках. Например, если вы пишете веб-сайт на чём-то наподобие ASP.NET MVC, то вы используете C#, Razor, HTML, Javascript и возможно Typescript в одном проекте.Ответ 2
Можно. Попробуйте язык Katahdin Katahdin представляет язык программирования просто как инструмент, не ограничивая программиста в выборе платформы или библиотек. Каждый участок программы, отвечающий за конкретную задачу, может быть реализован на более подходящем языке программирования (в зависимости от задачи, разработчиков и используемых библиотек). Например, программа на Фортране, предназначенная для вычислений, может плохо справляться с некоторой обработкой текста, требуемой при вводе-выводе. В этом месте лучше использовать более подходящий язык, например, Perl. В программе на Katahdin код, обрабатывающий текст и написанный на Perl, может быть использован в том же файле, что и программа на Фортране.
Комментариев нет:
Отправить комментарий