Side by side
The terms people mix up, compared
98 comparisons, each laid out like two facing pages: what each term is, how they differ, and when to pick which.
The ones people ask about most
- SQLNoSQLSQL vs NoSQLSQL databases keep data in related tables with a fixed schema, while NoSQL databases use flexible models like documents or key-value pairs that scale out.7 differences
- REST APIGraphQLREST vs GraphQLREST exposes many URLs that each return a fixed shape of data, while GraphQL exposes a single endpoint where the client asks for exactly the fields it needs.7 differences
- TCPUDPTCP vs UDPTCP opens a connection and guarantees complete, in-order delivery, while UDP sends independent packets with no guarantee, trading reliability for lower latency.7 differences
- MergeRebaseGit Merge vs RebaseGit merge joins two branches with a merge commit that keeps the full history, while git rebase replays your commits onto another branch for a linear history.7 differences
- DockerKubernetesDocker vs KubernetesDocker builds container images and runs containers on one machine, while Kubernetes runs them across a cluster, handling scheduling, scaling and self-healing.8 differences
- AuthenticationAuthorizationAuthentication vs AuthorizationAuthentication verifies who you are, for example with a password or passkey, while authorization decides what you are allowed to do once your identity is known.7 differences
Every comparison, by book
Programming Fundamentals9 comparisons
- CompilervsInterpreterA compiler translates a whole program before it runs, while an interpreter executes source code step by step at runtime, trading raw speed for faster feedback.
- OOPvsFunctional ProgrammingOOP bundles data and the methods that change it into objects, while functional programming transforms immutable data with pure functions.
- ArrayvsLinked ListAn array keeps elements side by side in memory, so any item is read instantly by index; a linked list chains nodes with pointers: cheap inserts, slow lookups.
- CallbackvsPromiseA callback is a function you hand to another function to run when it's done, while a promise stands for a future result you can chain and catch errors on.
- CompilervsTranspilerA compiler turns code into a lower-level form a machine or VM runs, while a transpiler outputs another high-level language, like TypeScript to JavaScript.
- LibraryvsFrameworkA library is code you call when you need it, while a framework provides your app's structure and calls your code. You call a library; a framework calls you.
- Static TypingvsDynamic TypingStatic typing checks types before the program runs, usually with a compiler, while dynamic typing attaches types to values and checks them only at run time.
- ConcurrencyvsParallelismConcurrency is handling many tasks in overlapping time, even on one core, while parallelism is running several tasks at the same instant on multiple cores.
- ClassvsObjectA class is a blueprint that describes what data and behavior a kind of thing has, while an object is one concrete thing built from it, with its own values.
Web Development15 comparisons
- JavaScriptvsTypeScriptJavaScript is the dynamically typed language that browsers and Node.js run, while TypeScript is a superset that adds static types and compiles to JavaScript.
- SSRvsCSRServer-side rendering (SSR) builds full HTML on the server for each request, so content shows fast, while CSR builds the page in the browser with JavaScript.
- SSGvsSSRSSG builds each page into HTML once, at build time, and serves the same file to everyone, while SSR builds the HTML on every request, so it can show fresh data.
- CookievsLocal StorageCookies are small data the browser sends to the server with every matching request, while local storage keeps larger data in the browser and never sends it.
- DOMvsVirtual DOMThe DOM is the browser's live tree of page elements, while the virtual DOM is a light JavaScript copy that frameworks compare to decide what to change.
- CSS GridvsFlexboxCSS Grid places items in rows and columns at once, in two dimensions, while Flexbox lines them up along one row or column, ideal inside components.
- CookievsSessionA cookie is small data the browser stores and sends back with each request, while a session is state the server keeps about a visitor, found by a cookie ID.
- ReactvsVueReact is a library that uses JSX and leaves routing and state to its ecosystem, while Vue is a framework with HTML-like templates and official tools for both.
- ReactvsAngularReact is Meta's flexible UI library that you pair with other tools, while Angular is Google's opinionated framework with routing, forms and HTTP built in.
- Next.jsvsReactReact is a library for building UIs from components, while Next.js is a React framework that adds routing, server-side rendering and static generation.
- VitevsWebpackWebpack bundles the whole app before serving it, even in development, while Vite serves native ES modules and bundles only for production, so it starts fast.
- FrontendvsBackendThe frontend runs on the user's device and draws the interface, while the backend runs on servers and holds the data and rules the frontend relies on.
- DebouncevsThrottlingDebounce waits until a burst of events stops, then runs the function once, while throttle runs it at most once per interval as the events continue.
- WebSocketvsServer-Sent EventsWebSocket opens a two-way channel where client and server both send messages anytime, while Server-Sent Events (SSE) let only the server push updates.
- HTTPvsHTTPSHTTPS is HTTP sent over encrypted TLS: the requests are the same, but HTTPS hides them from eavesdroppers, detects tampering and proves the server's identity.
Backend & APIs9 comparisons
- DjangovsFlaskDjango is a full-featured Python framework with an ORM, admin panel and authentication built in, while Flask is a minimal one that leaves those choices to you.
- APIvsSDKAn API is the set of requests or functions a service offers, while an SDK is a toolkit, usually built on that API, that makes it easier to use from a language.
- REST APIvsGraphQLREST exposes many URLs that each return a fixed shape of data, while GraphQL exposes a single endpoint where the client asks for exactly the fields it needs.
- REST APIvsgRPCREST exposes resources over HTTP, usually as JSON, while gRPC calls typed remote functions with binary messages over HTTP/2: faster, but harder from browsers.
- REST APIvsSOAPREST is a lightweight API style on plain HTTP, URLs and usually JSON, while SOAP is a formal protocol that wraps messages in XML under a strict WSDL contract.
- Message QueuevsPub/SubIn a message queue each message goes to one consumer, so workers share the load, while pub/sub copies every message to each subscriber so many services react.
- API GatewayvsLoad BalancerA load balancer spreads traffic across copies of one service, while an API gateway is one front door that routes calls to the right service and checks auth.
- KafkavsRabbitMQKafka is a streaming platform that keeps events in a durable, replayable log, while RabbitMQ routes messages to queues and deletes them once acknowledged.
- JSONvsXMLBoth write structured data as text: JSON is lighter and maps onto objects and arrays, while XML adds attributes, namespaces and schemas.
Databases7 comparisons
- SQLvsNoSQLSQL databases keep data in related tables with a fixed schema, while NoSQL databases use flexible models like documents or key-value pairs that scale out.
- ShardingvsDatabase ReplicationSharding splits a database so each server stores only part of the data, while replication copies the same data to several servers for redundancy and reads.
- Data WarehousevsData LakeA data warehouse stores cleaned, structured data in a fixed schema for fast queries, while a data lake keeps raw data of any type and adds structure on read.
- PostgreSQLvsMySQLBoth are open-source relational databases: PostgreSQL is known for advanced SQL, extensibility and strictness, MySQL for simplicity, speed and wide adoption.
- OLTPvsOLAPOLTP systems handle many small, fast transactions such as orders and payments, while OLAP systems run large analytical queries over historical data.
- FirebasevsSupabaseBoth give apps a ready-made backend: Firebase is Google's platform built on NoSQL, while Supabase is an open-source alternative built on PostgreSQL.
- MongoDBvsPostgreSQLPostgreSQL keeps data in fixed-schema tables and joins them with SQL, while MongoDB stores flexible JSON-like documents and was built to shard across servers.
DevOps & Cloud10 comparisons
- ContainervsVirtual MachineA container packages an app with its dependencies and shares the host's kernel, while a virtual machine runs its own OS: stronger isolation, more resources.
- DockervsKubernetesDocker builds container images and runs containers on one machine, while Kubernetes runs them across a cluster, handling scheduling, scaling and self-healing.
- Blue-Green DeploymentvsCanary DeploymentBlue-green runs two full environments and switches all traffic to the new one at once, while canary sends a small share to the new version first and grows it.
- Reverse ProxyvsLoad BalancerA reverse proxy forwards requests to the servers behind it and adds TLS, caching and security, while a load balancer spreads load so no server is overloaded.
- DevOpsvsSite Reliability EngineeringDevOps is a culture that unites development and operations to ship faster and safer; SRE is Google's practice of running production to reliability targets.
- TerraformvsAnsibleTerraform declares and creates cloud infrastructure and tracks it in a state file, while Ansible configures existing machines and deploys software over SSH.
- AWSvsAzureAWS is Amazon's cloud, the oldest and largest with the most services, while Azure is Microsoft's, strongest where companies already use Microsoft products.
- Docker ComposevsKubernetesDocker Compose runs a multi-container app on a single machine, while Kubernetes orchestrates containers across a cluster with scaling and self-healing.
- IaaSvsPaaSIaaS rents you raw infrastructure like virtual machines that you manage yourself, while PaaS runs your code and handles the servers, OS and scaling for you.
- SLAvsSLOAn SLO is an internal target, like 99.9% of requests succeeding in 30 days; an SLA promises customers a service level, usually with credits if it is missed.
Version Control5 comparisons
- MergevsRebaseGit merge joins two branches with a merge commit that keeps the full history, while git rebase replays your commits onto another branch for a linear history.
- ForkvsBranchA fork is a full copy of a repository under another owner, used to contribute where you can't push, while a branch is a separate line of work in the same repo.
- Git ResetvsGit RevertGit reset moves a branch back to an earlier commit and drops the later ones, while git revert adds a new commit that undoes one, safe on shared branches.
- GitvsGitHubGit is a version control tool that keeps your code's history on your computer, while GitHub hosts Git repositories online and adds pull requests, issues and CI.
- Git FetchvsGit Pullgit fetch downloads new commits without touching your work, while git pull fetches and then immediately merges or rebases them into your current branch.
Security9 comparisons
- AuthenticationvsAuthorizationAuthentication verifies who you are, for example with a password or passkey, while authorization decides what you are allowed to do once your identity is known.
- EncryptionvsHashingEncryption scrambles data with a key so it can be decrypted later, while hashing makes a fixed-length fingerprint that can't be reversed, ideal for passwords.
- JWTvsSessionA JWT is a signed token that carries the user's identity, so servers verify it without a lookup, while sessions keep state on the server behind a random ID.
- XSSvsCSRFXSS injects malicious scripts that run inside a trusted website, while CSRF tricks a logged-in user's browser into sending unwanted requests to that site.
- SQL InjectionvsXSSSQL injection makes a server run an attacker's database commands, while XSS makes a website run an attacker's JavaScript in other users' browsers.
- OAuthvsSSOOAuth lets an app reach a user's data on another service without their password, while SSO is one login for many apps, built on SAML or OpenID Connect.
- OAuthvsOpenID ConnectOAuth 2.0 lets an app access an API for a user with an access token; OpenID Connect adds an identity layer that says who the user is with a signed ID token.
- Symmetric EncryptionvsPublic-Key CryptographySymmetric encryption uses one shared secret key and is fast, while asymmetric uses a public and a private key, which solves key sharing but is much slower.
- JWTvsOAuthOAuth is a framework for giving an app limited access to user data; a JWT is a token format. They aren't rivals: OAuth often issues JWT access tokens.
AI & Machine Learning5 comparisons
- Machine LearningvsDeep LearningMachine learning covers algorithms that learn from data; deep learning is a subset whose many-layered neural networks find features alone but need more data.
- RAGvsFine-tuningRAG gives a language model relevant documents at question time so it answers from fresh sources, while fine-tuning trains it further to change its behavior.
- Supervised LearningvsUnsupervised LearningSupervised learning trains a model on labeled examples so it can predict answers for new data, while unsupervised learning finds patterns in unlabeled data.
- Artificial IntelligencevsMachine LearningAI aims to make machines do tasks that need human intelligence; machine learning is one way to get there, learning from data instead of hand-written rules.
- ChatbotvsAI AgentA chatbot converses and answers questions, while an AI agent pursues a goal on its own, planning steps and using tools such as search, code execution or APIs.
Software Architecture4 comparisons
- MonolithvsMicroservicesA monolith is one app deployed as a single unit, simple to build and run, while microservices split it into small services that deploy and scale independently.
- MVCvsMVVMMVC splits an app into a model, a view and a controller that handles input, while MVVM puts a ViewModel between model and view and syncs them by data binding.
- MicroservicesvsService-Oriented ArchitectureSOA splits enterprise systems into shared services that talk over a central bus, while microservices split one app into small, independently deployed services.
- Horizontal ScalingvsVertical ScalingHorizontal scaling adds more machines and spreads the load across them, while vertical scaling gives one machine more CPU, memory or faster storage.
Testing & Quality4 comparisons
- Unit TestvsIntegration TestA unit test checks one small piece of code, like a function, in isolation within milliseconds; an integration test checks that several parts work together.
- Test-Driven DevelopmentvsBehavior-Driven DevelopmentIn TDD, developers write a failing test before the code that makes it pass, while BDD builds on it with plain-language scenarios the whole team can read.
- Black-Box TestingvsWhite-Box TestingBlack-box testing checks software against its requirements without looking at the code, while white-box testing bases tests on the code's internal structure.
- CypressvsPlaywrightCypress runs end-to-end tests inside the browser with an interactive runner, while Microsoft's Playwright drives browsers from outside, in several languages.
Networking6 comparisons
- TCPvsUDPTCP opens a connection and guarantees complete, in-order delivery, while UDP sends independent packets with no guarantee, trading reliability for lower latency.
- LANvsWANA LAN connects devices in one building or site over fast, private links, while a WAN links networks across cities or countries, often over the internet.
- VPNvsProxy ServerA VPN encrypts all your device's traffic and sends it through a secure tunnel, while a proxy forwards only the traffic of apps set to use it, often unencrypted.
- IPv4vsIPv6IPv4 uses 32-bit addresses, allowing about 4.3 billion of them, while IPv6 uses 128-bit addresses, enough for every device to have its own public address.
- LatencyvsThroughputLatency is how long one request or piece of data takes to arrive, while throughput is how much data or how many requests a system handles per unit of time.
- Proxy ServervsReverse ProxyA forward proxy sits in front of clients and sends their requests to the internet; a reverse proxy sits in front of servers and takes requests for them.
Data Structures3 comparisons
- StackvsQueueA stack removes the newest item first (last in, first out, LIFO), while a queue removes the oldest first (first in, first out, FIFO), like plates versus a line.
- Breadth-First SearchvsDepth-First SearchBFS explores a graph level by level with a queue, finding shortest paths in unweighted graphs, while DFS goes deep down one branch, then backtracks.
- Merge SortvsQuicksortMerge sort guarantees O(n log n) time but uses extra memory, while quicksort partitions around a pivot in place and is usually faster, but can slow to O(n²).
Operating Systems5 comparisons
- ProcessvsThreadA process is a running program with its own memory, while threads run inside a process and share its memory: lighter, but harder to coordinate safely.
- MutexvsSemaphoreA mutex lets one thread at a time use a shared resource and only its owner releases it, while a semaphore is a counter that lets up to N threads in at once.
- Stack MemoryvsHeap MemoryThe stack manages function calls' local variables automatically in last-in, first-out order, fast but small; the heap holds runtime data, larger but slower.
- CPUvsGPUA CPU has a few powerful cores for varied, sequential work; a GPU has thousands of simpler cores that run one operation on lots of data in parallel.
- TerminalvsShellA terminal is the program that shows a text interface and passes on your keystrokes, while the shell runs inside it, reading your commands and executing them.
Programming Languages4 comparisons
- GovsRustGo is a simple, garbage-collected language for building network services fast, while Rust gets memory safety without a garbage collector, through ownership.
- PythonvsJavaScriptPython is a general-purpose language known for readable code and its data and AI libraries, while JavaScript is the web's language, run by browsers and Node.js.
- PythonvsJavaPython is a concise, dynamically typed language popular for data, AI and scripting, while Java is a statically typed JVM language for enterprise and Android.
- CvsC++C is a small, procedural systems language from the early 1970s; C++ grew out of it into a much larger language with classes, templates and a rich library.
Teams & Process3 comparisons
- AgilevsWaterfallAgile ships working software in short cycles and adapts the plan to feedback, while Waterfall moves through fixed phases from requirements to release.
- ScrumvsKanbanScrum organizes work into fixed-length sprints with set roles and goals, while Kanban is a continuous flow on a board that limits how much work is in progress.
- AgilevsScrumAgile is a set of values for building software in small, frequent steps with feedback, while Scrum is one framework that applies it with roles and sprints.