Мультиязычная разработка

топ 100 блогов zabivator26.01.2010 Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml.
Спасибо Мультиязычная разработка [info]ptiz_kem за наводку!

Я успел дойти своими куриными мозгами до кодогенератора для RPC.
А эти ребята его УЖЕ сделали.

Смотреть я только начал, определённого ничего пока сказать не могу, кроме....
* SumTypes нету
* Исключения и спецификации исключений есть
* Продукт выращен в Facebook и потом отдам коммьюнити
* Оно живое (в баг-трекере есть свежие открытые и несвежие закрытые баги, в svn есть свежие коммиты)
* Оно УЖЕ ПОДДЕРЖИВАЕТ КУЧУ ЯЗЫКОВ

Пока что ковыряю примеры использования в различных языках (сравниваю ocaml, erlang, плюсы), следующие вопросы будут к полиморфным структурам (что вместо SumTypes) и протоколу передачи данных.

Это же просто охренеть, ребята... Вот он, тот кирпичик для мультиязычной разработки (по-английски это называется, как оказалось, cross-language development).

Если эта штука окажется удобной и естественной для целевых языков (или станет такой после напильника по генерируему коду, или кодогенератору), то вы легко сможете разрабатывать разные части проекта на тех языках, которые лучше для этих частей годятся.

*ушёл с горящими глазами*

update
в комментах дали ссылку на ZeroC, который делает вроде тоже самое.

update 2
Ответ на вопрос: "чем это лучше COM/CORBA?" (выдержка из документации ZeroC)
Yet, neither DCOM nor CORBA succeeded in capturing a majority of the distributed computing market, for a number of reasons:
• DCOM was a Microsoft-only solution that could not be used in heterogeneous networks containing machines running a variety of operating systems.
• DCOM was impossible to scale to large numbers (hundreds of thousands or millions) of objects, largely due to the overhead of its distributed garbage collection mechanism.
• Although CORBA was available from a variety of vendors, it was rarely possible to find a single vendor that could provide an implementation for all of the environments in a heterogeneous network. Despite much standardization effort, lack of interoperability between different CORBA implementations continued to cause problems, and source code compatibility for languages such as C or C++ was never fully achieved, usually due to vendor-specific extensions and CORBA’s lack of a specification for multi-threaded environments.


ZeroC и Thrift решают одну и ту же задачу
Из очевидных минусов - у ZeroC не видать Ocaml, Erlang.
Из очевидных плюсов - сильно лучше с документацией и версия уже 3.х, а не 0.2 как thrift
Надо сравнивать...

Оставить комментарий

Архив записей в блогах:
Перевод annavilenskaya : - Каково это – снова свести Бена и Мартина на площадке после такого долгого перерыва? - Видеть их вместе… ну, вы понимаете, первый раз, когда они были вместе на площадке, мы все были просто людьми, которые делают сериал. А теперь, когда эти двое ...
Я неделю восстановливала свою ржаную закваску, пролежавшую с июля в холодильнике, и принялась печь хлеб. При выборе рецепта для каждодневного ржаного хлеба я взяла простые рецепты Дарницкого, Столичного и Орловского. Безусловно, очень хорош хлеб "Раз, два, три". Каталог рецептов ...
Я просто оставлю это без коменнтарев. Моя первая жена про меня. ДОМАШНЕЕ НАСИЛИЕ И ЗАГАДОЧНАЯ ЕВРЕЙСКАЯ ДУША Обсуждают, и вот чёт вспомнилось. Мнооого лет назад я состояла в фиктивном браке - надо сказать, совершенно напрасно, желаемого ПМЖ в Германии я не получила. А может и не ...
Многие из читающих меня, знают, что к биологическому отцу своего ребёнка я, мягко говоря, не питаю тёплых чувств. Не питала, потом пришло время и я практически о нем не вспоминала, поэтому и негативных эмоций не испытывала. До тех пор, пока этот полосатый мудозвон не объявился в моей ...
Общеизвестна практика писем советских трудящихся в газеты. К данной репрессивной методе прибегали, когда зарвавшегося индивида нужно было поставить на место. Тогда в глубинах ...