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

Polyglot Stack - Multi-lingual and Multi-paradigm Application Development

Lucas Mendes
September 05, 2017

Polyglot Stack - Multi-lingual and Multi-paradigm Application Development

With the rise of the new web, IoT and distributed service architectures, new technology alternatives appeared, but there is no silver bullet to solve all problems, so attack the domain with the best technology for each case would be a good path and save a lot of money.

Presented at Tienda Nube's Architects MeetUp.

Lucas Mendes

September 05, 2017
Tweet

More Decks by Lucas Mendes

Other Decks in Technology

Transcript

  1. POLYGLOT STACK TODAY’S APPLICATIONS ▸ Are networked ▸ Have graphical

    and "service" interface ▸ Persist data ▸ Must be resilient and secure ▸ Must scale
  2. IN A FIGHT BETWEEN A BEAR AND AN ALLIGATOR, THE

    TERRAIN DETERMINES THE OUTCOME. Jim Barksdale (CEO, Netscape) POLYGLOT STACK
  3. POLYGLOT STACK PHP ▸ Interpreted ▸ Multi-paradigm: Imperative, Object Oriented,

    Procedural, Reflective ▸ Dynamic weak gradual typed ▸ Low learn curve ▸ Great library ecosystem ▸ Reasonably Fast ▸ Productive
  4. POLYGLOT STACK JAVA ▸ Compiled (JIT) ▸ Multi-paradigm: Object Oriented,

    Structured, Imperative, Reflective, Concurrent ▸ Static strong typed ▸ Mid learn curve ▸ Good standard library ▸ Fast ▸ Productive
  5. POLYGLOT STACK PYTHON ▸ Interpreted ▸ Multi-paradigm: Object-oriented, imperative, functional,

    procedural, reflective ▸ Dynamic duck strong typed ▸ Low learn curve ▸ Great standard library ▸ Reasonably Fast ▸ Productive
  6. POLYGLOT STACK JAVASCRIPT ▸ Interpreted (V8) ▸ Multi-paradigm: Object-oriented (prototype-based),

    imperative, functional, event-driven ▸ Asynchronous ▸ Dynamic duck typed ▸ Low learn curve ▸ Great libraries ecosystem ▸ Fast ▸ Productive
  7. POLYGLOT STACK SCALA ▸ Compiled (JVM) ▸ Multi-paradigm: functional, object-oriented,

    imperative, concurrent ▸ Static strong inferred typed ▸ High learn curve ▸ Fast ▸ Reasonably productive
  8. POLYGLOT STACK GO ▸ Compiled ▸ Multi-paradigm: structured concurrent ▸

    Static strong inferred typed ▸ Mid learn curve ▸ Fast ▸ Reasonably productive
  9. POLYGLOT STACK C / C++ ▸ Compiled ▸ Multi-paradigm: Imperative,

    structured, object- oriented (C++) ▸ Static weak partially inferred typed ▸ High learn curve ▸ Incredible fast
  10. POLYGLOT STACK DISADVANTAGES ▸ N tool chains, languages, libraries, “ecosystems",

    idioms, etc… ▸ Impedance mismatch between tools ▸ Orchestration and maintenance become complex ▸ Multi-competent team of developers
  11. POLYGLOT STACK ADVANTAGES ▸ The best tool for a certain

    job ▸ Reduce blocking by technology limitation ▸ Keep code closer to the domain using DSL’s ▸ Minimize amount of code required => faster iterations ▸ Encourage thinking about different architectural patterns
  12. THANK YOU! Lucas Mendes
 Software Architect at Tienda Nube
 about.me/devsdmf

    We're hiring, join the crew! 
 bit.ly/work-at-tiendanube