Slide 1

Slide 1 text

What Is The Best Programming Language For Your Web Product? Eugene Kuzminov, Web Team Leader

Slide 2

Slide 2 text

You can do anything with any language eventually What Is The Best Programming Language For Your Web Product?

Slide 3

Slide 3 text

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?

Slide 4

Slide 4 text

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?

Slide 5

Slide 5 text

Human Resources ▶ Entry level ▶ Skills ▶ Poka-yoke (mistake-proofing) ▶ Hiring What Is The Best Programming Language For Your Web Product?

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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?

Slide 8

Slide 8 text

Case #2 Web portal + background processing What Is The Best Programming Language For Your Web Product?

Slide 9

Slide 9 text

Recent decade of Web Dev What Is The Best Programming Language For Your Web Product?

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

The World Has Changed What Is The Best Programming Language For Your Web Product?

Slide 12

Slide 12 text

What has changed? Backend Relational Majestic Monolith Static Centralized Frontend Denormalized Microservices Realtime Distributed What Is The Best Programming Language For Your Web Product?

Slide 13

Slide 13 text

Case #3 SPA, isomorphic app What Is The Best Programming Language For Your Web Product?

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

Case #4 Realtime messaging What Is The Best Programming Language For Your Web Product?

Slide 16

Slide 16 text

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?

Slide 17

Slide 17 text

Case #5 Machine learning What Is The Best Programming Language For Your Web Product?

Slide 18

Slide 18 text

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?

Slide 19

Slide 19 text

Case #6 Blockchain What Is The Best Programming Language For Your Web Product?

Slide 20

Slide 20 text

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?

Slide 21

Slide 21 text

Case #7 (lucky one!) What if I have several cases? What Is The Best Programming Language For Your Web Product?

Slide 22

Slide 22 text

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?

Slide 23

Slide 23 text

Trends What Is The Best Programming Language For Your Web Product?

Slide 24

Slide 24 text

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?

Slide 25

Slide 25 text

Elixir ▶ Erlang + OTP ▶ Functional ▶ Ruby-like syntax ▶ Friendly web framework ▶ Metaprogramming ▶ Scaling ▶ Fault tolerance What Is The Best Programming Language For Your Web Product?

Slide 26

Slide 26 text

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?

Slide 27

Slide 27 text

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?

Slide 28

Slide 28 text

Thank you! [email protected] Questions ?