$30 off During Our Annual Pro Sale. View Details »

What Is The Best Programming Language For Your Web Product

What Is The Best Programming Language For Your Web Product

MobiDev Experts Day 2016

Yevhen "Eugene" Kuzminov

June 04, 2016
Tweet

More Decks by Yevhen "Eugene" Kuzminov

Other Decks in Programming

Transcript

  1. What Is The Best
    Programming Language
    For Your Web Product?

    View Slide

  2. Ievgen Kuzminov
    http://stdout.in
    @iJackUA
    7+ years
    in Web Development
    Ruby Team Lead
    in MobiDev
    Author of
    http://rwdtow.stdout.in

    View Slide

  3. Dilemma
    How do we choose programming
    language for a product ?
    ❏ There is no “bad” languages
    ❏ The “best” lang - is the lang you know!
    ❏ Ecosystem does matter

    View Slide

  4. Speed vs Quality vs Price
    Requests per Second in “Hello World”
    has nothing to do here...

    View Slide

  5. Recent decade of The Web Dev

    View Slide

  6. The World Has Changed

    View Slide

  7. WAT?
    ❏ Backend ~> Frontend
    ❏ Relational ~> Denormalized
    ❏ Majestic Monolith ~> Microservices
    ❏ Static ~> Realtime
    ❏ a lot more ...

    View Slide

  8. A new choice
    ❏ Application criterias
    ❏ Ecosystem: packages, tools, community
    ❏ Evolution roadmap
    ❏ A bit of personal “taste”

    View Slide

  9. Master of “yellow” titles
    ❏ PHP is not so awful
    ❏ Ruby is not so awesome
    ❏ Node.JS is not so almighty

    View Slide

  10. Master of “yellow” titles
    ❏ PHP is not so awful
    ❏ Ruby is not so awesome
    ❏ Node.JS is not so almighty
    ❏ “This city needs a hero”

    View Slide

  11. Language

    View Slide

  12. Language
    ❏ Evolution
    ❏ Syntax
    ❏ DSL
    ❏ Metaprogramming

    View Slide

  13. Language
    ❏ Execution flow (sync, async)
    ❏ Performance
    ❏ Concurrency
    ❏ Debug

    View Slide

  14. Ecosystem

    View Slide

  15. Ecosystem
    ❏ Packages
    ❏ Web frameworks
    ❏ Tests
    ❏ Daemons
    ❏ Deployment
    ❏ IDE

    View Slide

  16. Human Resources

    View Slide

  17. Human Resources
    ❏ Entry level. Familiarity.
    ❏ Skills
    ❏ Poka-yoke
    ❏ Hiring

    View Slide

  18. ❏ Low entry barrier
    ❏ Bigger market
    ❏ Cheaper
    Developers:
    ❏ Pure PHP ~> Frameworks
    ❏ Harder to filter skilled devs
    NB!

    View Slide

  19. ❏ Quick start with Rails
    ❏ MVP oriented
    ❏ Harder to scale
    Developers:
    ❏ Solely Rails oriented
    ❏ Easier to filter skilled devs
    NB!

    View Slide

  20. ❏ Aimed to API/Realtime
    ❏ Node.JS is everywhere
    ❏ Harder to maintain backend
    Developers:
    ❏ Come from Frontend
    ❏ Closer to Full-Stack
    NB!

    View Slide

  21. Dark Horses
    of Web Development

    View Slide

  22. Elixir, Go, Closure and others
    ❏ Compiled (fast)
    ❏ Much better performance
    ❏ Close to system level
    ❏ Functional approaches
    ❏ Multi-core concurrency

    View Slide

  23. ❏ Erlang + OTP
    ❏ Functional
    ❏ Ruby-like syntax
    ❏ Friendly web framework
    ❏ Metaprogramming
    ❏ Scaling
    ❏ Fault tolerance
    NB!
    http://elixir-lang.org

    View Slide

  24. A new choice (once again!)
    ❏ Application criterias
    ❏ Ecosystem: packages, tools, community
    ❏ Evolution roadmap
    ❏ A lot of personal “taste”

    View Slide

  25. Brief conclusion
    ❏ PHP: “classic” web portal
    ❏ Ruby: web portal + background jobs
    ❏ Node.JS: isomorphic app, API + SPA
    ❏ Elixir: your next “world class” pet-project

    View Slide

  26. Thank you! [email protected]
    http://stdout.in
    @iJackUA
    Questions ?

    View Slide