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

What Is The Best Programming Language For Your Web Product?

What Is The Best Programming Language For Your Web Product?

DevWeek Austin 2017

Yevhen "Eugene" Kuzminov

November 09, 2017
Tweet

More Decks by Yevhen "Eugene" Kuzminov

Other Decks in Technology

Transcript

  1. You can do anything with any language eventually What Is

    The Best Programming Language For Your Web Product?
  2. Speed Quality Price The number of requests per second in

    “Hello World” is not very helpful What Is The Best Programming Language For Your Web Product?
  3. Considerations ▶ There are no “bad” languages ▶ Business goals

    dictate tools ▶ Ecosystem does matter ▶ Human resources What Is The Best Programming Language For Your Web Product?
  4. Human Resources ▶ Entry level ▶ Skills ▶ Poka-yoke (mistake-proofing)

    ▶ Hiring What Is The Best Programming Language For Your Web Product?
  5. Case #1 “Classic” CRUD web portal What Is The Best

    Programming Language For Your Web Product?
  6. PHP ▶ Low entry barrier ▶ Big diversity of frameworks

    ▶ Stable performance ▶ Big market / cheap Developers: ▶ Pure PHP ⇨ Frameworks ▶ Hard to filter skilled devs What Is The Best Programming Language For Your Web Product?
  7. Case #2 Web portal + background processing What Is The

    Best Programming Language For Your Web Product?
  8. Ruby ▶ Quick start with Rails ▶ MVP oriented ▶

    Harder to scale What Is The Best Programming Language For Your Web Product? Developers: ▶ Solely Rails oriented ▶ Easier to filter skilled devs
  9. What has changed? Backend Relational Majestic Monolith Static Centralized Frontend

    Denormalized Microservices Realtime Distributed What Is The Best Programming Language For Your Web Product?
  10. Node.JS ▶ Aimed at API/Realtime ▶ Node.JS is everywhere ▶

    Harder to maintain backend What Is The Best Programming Language For Your Web Product? Developers: ▶ Come from Frontend ▶ Closer to Full-Stack
  11. Go ▶ Effective concurrency model ▶ Compiles to native code

    ▶ Small market Developers: ▶ “Leaders” come from other langs ▶ Potentially more experienced What Is The Best Programming Language For Your Web Product?
  12. Python ▶ General purpose lang (prototype, automation) ▶ Math and

    data science ecosystem ▶ Two worlds 2.7 vs 3.x ▶ Generally lower performance Developers: ▶ Tend to believe in packages ▶ Hard to find real seniors What Is The Best Programming Language For Your Web Product?
  13. Blockchain ▶ Do not write your own blockchain (no need

    in C++) ▶ Blockchain is less than 10% of total code ▶ Smart contracts: Solidity (Ethereum), Go (Hyperledger) ▶ JS/Node.JS SDK ▶ Any lang for a web app (wallet backend) What Is The Best Programming Language For Your Web Product?
  14. Case #7 (lucky one!) What if I have several cases?

    What Is The Best Programming Language For Your Web Product?
  15. Microservices ▶ Docker is not a must for Microservices ▶

    Docker DevOps is non trivial ▶ Microservices communication issue ▾ REST API ▾ GRPC / Protobuf ▾ Thrift What Is The Best Programming Language For Your Web Product?
  16. Elixir, Go and others ▶ Compiled (fast) ▶ Better performance

    ▶ Close to system level ▶ Functional approaches ▶ Abstraction over multi-core concurrency What Is The Best Programming Language For Your Web Product?
  17. Elixir ▶ Erlang + OTP ▶ Functional ▶ Ruby-like syntax

    ▶ Friendly web framework ▶ Metaprogramming ▶ Scaling ▶ Fault tolerance What Is The Best Programming Language For Your Web Product?
  18. How we treat choosing technologies in MobiDev ▶ Legacy prospect

    (in case of existing background) ▶ Business prospect (the client's business reality) ▶ Functional prospect (features and area of implementation) ▶ Evolution monitoring ▶ Suggesting new opportunities What Is The Best Programming Language For Your Web Product?
  19. Still want a ”simple answer”? ▶ PHP: “classic” web portal

    ▶ Ruby: web portal + background processing ▶ Node.JS: isomorphic app, API + SPA, simple realtime ▶ Python: data science, machine learning ▶ Go: messaging, heavy computations, multi-threaded data processing ▶ Elixir: potentially general-purpose language for web projects What Is The Best Programming Language For Your Web Product?