Какой лучший язык / платформа для SOA в Linux в мире после Java? - PullRequest
8 голосов
/ 18 января 2011

Мне нужно выбрать язык / платформу для новой разработки серии сервисов в SOA.Я изучаю Scala и Clojure, но не думаю, что сообщество и продукты еще достаточно развиты для реального корпоративного продукта.

Обновление / уточнения:

  1. Конечно, мы можем использовать множество языков / платформ для SOA, но некоторые языки / платформы проще и более подходят для SOA.IMO лучшие для SOA должны позволять программирование интерфейса (для упрощения определения контрактов), должны иметь опции для размещения сервисов (таких как Felix для Java или WCF в .NET) и хорошо масштабироваться (см. Проблемы Twitter сRoR).
  2. Java всегда была фаворитом на корпоративном рынке.Тем не менее, многие разработчики изучают динамические языки, а также говорят о стагнации Java после v6.В результате появилось много новых пост-Java языков: Scala, Clojure и Groovy, чтобы назвать несколько, которые все еще работают на JVM, но не являются Java.

Я надеюсь, что это прояснитвопрос.

Ответы [ 3 ]

17 голосов
/ 18 января 2011

Зависит от того, что вы подразумеваете под «достаточно зрелым для реального корпоративного продукта», и от вашего относительного уровня терпимости для жизни на переднем крае.

Например, в настоящее время я создаю «реальный»- продукт мирового уровня »в Clojure (я был бы в равной степени доволен Scala, только Clojure немного лучше соответствовал моим потребностям с точки зрения параллелизма и метапрограммирования).

Я очень доволен своим решением.

Некоторые краткие перспективы, если вы рассматриваете этот «пост-Java» путь:

  • Сообществавелики и полезны, но вам все равно придется решать проблемы самостоятельно, хотя бы потому, что никто больше не сталкивался с такой же проблемой.Ни один из них, вероятно, не будет непреодолимым, но он представляет некоторый дополнительный риск для графиков доставки.

  • И Scala, и Clojure могут быть очень продуктивными (с точки зрения стоимости, предоставляемой клиентам за час кодирования), но вы можете одинаково хорошо писать плохой и не поддерживаемый код в любом языке.Java в значительной степени заставляет вас писать вещи стандартизированным, несколько многословным, но синтаксически простым и понятным способом.С Scala и Clojure вы получаете целый новый арсенал сумасшедших способов поразить цель или выстрелить себе в ногу.Сможет ли ваша команда наилучшим образом использовать преимущества Scala / Clojure?

  • Труднее (хотя отнюдь не невозможно) привлечь на борт опытных людей с существующими навыками Clojure / Scala.С другой стороны, люди, которые обладают этими навыками (или стремятся приобрести их), скорее всего, будут одними из наиболее талантливых / мотивированных разработчиков, поэтому поиск все еще может быть продуктивным.

  • Будьте готовы принять жесткие решения относительно того, следует ли ориентироваться на языковые / библиотечные функции, которые «только за углом».Например, вы ждете, когда улучшенная примитивная поддержка появится в Clojure 1.3?Или обойтись с совершенно адекватными, но более медленными примитивными функциями в штучной упаковке в Clojure 1.2?

  • Большим преимуществом использования JVM является то, что вы все равно можете в полной мере использовать экосистему Java безпривязан к Java как к языку.Не стоит недооценивать, насколько это полезно: например, я использую несколько чрезвычайно хорошо протестированных, зрелых библиотек Java (например, Netty ), довольно прозрачно в моем приложении Clojure.Это значительно снижает ваш риск и количество новых разработок, которые вам нужно сделать.

1 голос
/ 18 января 2011

Для меня python кажется самым простым способом создания SOA и взаимодействия с компьютерами Windows. У меня нет имени фреймворков, но их много в SOAP, REST, RPC ...

1 голос
/ 18 января 2011

В данный момент (только что завершив проект по обслуживанию / интеграции), Джерси на вершине Spring прямо в моем списке избранного для веб-сервисов.

Я не могу предложить какие-либо предложения для инфраструктуры SOA, в прошлый раз я участвовал в подобных вещах, которые мы используем Oracle BPEL Process Manager, и у меня смешанные чувства по этому поводу. Тогда мы тоже не использовали REST, и я не уверен, насколько хорошо с ним работает программное обеспечение Oracle.

...