Things we care to compare:

  • Functions vs objects
  • this language vs that language;
  • this public cloud vs that public cloud vs this private cloud vs that ‘fill in the blank’;
  • REST vs unrest;
  • this byte level encoding vs some different one;
  • this framework vs that framework;
  • this methodology vs that methodology;
  • bare metal vs containers vs VMs vs unikernels;
  • monoliths vs microservices vs nanoservices;
  • eventually consistent vs transactional;
  • mutable vs immutable;
  • DevOps vs NoOps vs SysOps;
  • scale-up vs scale-out;
  • centralized vs decentralized;
  • single threaded vs massively parallel;
  • sync vs async.



  • vi vs vim
  • scala vector vs array
  • go vs ocaml
  • java vs c++
  • scala vs c++
  • erlang vs scala
  • java vs python
  • ss vs netstat
  • gulp vs grunt
  • TCP vs UDP
  • mongodb vs couchdb
  • streaming vs batch
  • configuration vs code
  • copy-on-write
  • lambda architecture vs kappa architecture
  • Normalized vs Denormalized
  • Schema-On-Read vs Schema-On-Write
  • REST vs SOAP
  • message: Push vs Pull
  • Spark RDD Cache vs Checkpoint
  • probit vs logit
  • chi-squared vs ks-test
  • NN vs SVM
  • ANOVA vs T-test
  • ANOVA vs Discriminant Analysis
  • Naive Bayes vs Logistic Regression
  • Bagging vs Boosting
  • Database Querying vs Data Mining
  • URI vs. URL
  • shady dom vs shadow dom
  • apache http server vs nginx
  • proxy vs reverse proxy

Heterogeneous arrays vs Homogeneous arrays

Homogeneous array vs Heterogeneous array

  • Homogeneous arrays: values of the same type, [1, 2, 3]
  • Heterogeneous arrays: values of different types, ['hello', 12, true]

Homogeneity vs Heterogeneity

  • Homogeneity: statistical properties of any one part of an overall dataset are the same as any other part.
  • Heterogeneity is the state of being heterogeneous. It is the nature of opposition, or contrariety of qualities.

Dimension Table vs Fact Table

  • Dimensions in data management and data warehousing contain relatively static data about such entities as geographical locations, customers, or products
  • Fact tables contain the data corresponding to a particular business process. Each row represents a single event associated with that process and contains the measurement data associated with that event.For example, a database may contain a fact table that stores sales records.
  • a dimension table is one of the set of companion tables to a fact table.


  • CPU: Fewer cores, but each core is much faster and much more capable; great at sequential tasks
  • GPU: More cores, but each core is much slower and “dumber”; great for parallel tasks

Docker vs VM

  • VM: virtual machine, a full image of a source machine, including the OS, disk config, network and even virtual processors
  • docker: virtual environment, lite VM

Mechanism vs Policy

  • mechanisms: low level, how processes are implemented
  • policy: high level, how processes are scheduled

Daemon vs Server

  • A daemon is a background, non-interactive program
  • A server is a program which responds to requests from other programs over some inter-process communication mechanism

Static Website vs Dynamic Website

  • Static website: individual web pages include static content. They may contain client-side scripts.
  • Dynamic website: relies on server-side processing, the content may be dynamically generated(e.g. loaded from database)

    • examples: server-side scripts such as PHP, JSP, or ASP.NET, Node.js, Dyango etc.

HTTP/2 vs WebSocket

  • Websocket: Say you want to build a Massive Multiplayer Online Game that needs a huge amount of messages from both ends of the connection. In such a case, WebSockets will perform much, much better. In general, use WebSockets whenever you need a truly low-latency, near realtime connection between the client and the server.
  • HTTP/2: If your use case requires displaying real-time market news, market data, chat applications, etc., relying on HTTP/2 + SSE will provide you with an efficient bidirectional communication channel while reaping the benefits from staying in the HTTP world.

Go vs OCaml

both are garbage collected, and natively compiled languages