Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Backend Salad

dronnix
March 30, 2013

Backend Salad

Slides for talk about cross-language communications at CodeFest 2013

dronnix

March 30, 2013
Tweet

Other Decks in Programming

Transcript

  1. Зачем? 1. Возможность использовать готовое решение, реализованное на другом ЯП

    2. Выбор языка под задачу 3. Возможность плавной миграции проекта на другой ЯП
  2. Fork / Exec Прост в использовании Универсален Большие накладные расходы

    на запуск Нет удобного механизма обмена данными
  3. Модули / Экстеншены Нативное использование Далеко не все языки получится

    подружить Медленно, если модулю нужно подгружать данные, необходимые для работы
  4. Свой протокол Нет Трудозатратно В лучшем случае получится что-то похожее

    на готовое решение, в худшем нерасширяемый и трудноподдерживаемый протокол
  5. Apache Thrift С++ PHP C# Python Erlang Java Ruby Perl

    Objective C C Haskell JavaScript Node.js OCaml Smalltalk Action Script 3
  6. Встроенные типы Thrift Python C++ i32 int int32_t double float

    double string str std::string list<i32> [ ] std::vector<int32_t> map<i32, string> { } std::map<int32_t, std::string>
  7. SOA