Written in
Programming languages
A programming language is how people write instructions a computer can follow. Each one makes trade-offs: how quickly you can write it, how fast it runs, how many mistakes it catches for you, and where it can run at all, from a browser tab to a phone, a server or a tiny chip.
Most products use several. A website is built from HTML, CSS and JavaScript (often TypeScript); the server behind it might run Python, PHP, Go or Java; phone apps are written in Kotlin, Swift or Dart; and nearly every product talks to its database in SQL. Systems languages such as Rust, C and C++ sit underneath all of it, in browsers, databases and operating systems.
17 terms · 4 comparisons · prices checked September 2026
17 terms, click any to open
Web
HTML
LanguageFreeThe language that gives every web page its structure: headings, paragraphs, links, images, forms and buttons.
HTML wraps content in tags, such as <h1> for the main heading, <a> for a link and <form> for a form, and the browser turns that markup into a page. Strictly it is a markup language rather than a programming language: it says what each piece of content is, while CSS decides how it looks and JavaScript makes it respond.
Choosing the right element (semantic HTML such as <nav>, <main>, <button> and <label>) matters more than it looks. Screen readers, search engines, keyboard navigation and reader modes all depend on it, and a real <button> works with the keyboard for free where a styled <div> does not. HTML is a living standard maintained by WHATWG, so features such as dialogs and lazy-loaded images arrive without big numbered versions.
What it costs · Free
Free; an open standard that every browser understands.
Approximate, checked September 2026.
Related
Also called: HyperText Markup Language, HTML5, markup
CSS
LanguageFreeThe language that controls how web pages look: colours, fonts, spacing, layout, and how a page adapts from a phone to a wide screen.
A CSS rule picks elements with a selector and sets properties on them, such as making every link blue or laying out a product list as a grid. 'Cascading' describes how the browser settles conflicts when several rules apply: the more specific rule wins, and among equals the later one. That cascade is powerful, and also the usual reason a style mysteriously refuses to apply.
Modern CSS handles work that once needed JavaScript or add-on tools: Flexbox and Grid for layout, media and container queries for responsive design, custom properties (variables), nesting, the :has() selector, transitions and animations. Other tools build on CSS rather than replace it: Sass adds extra syntax, and Tailwind CSS generates small utility classes that you combine in the HTML.
What it costs · Free
Free; an open standard that every browser understands.
Approximate, checked September 2026.
Also called: Cascading Style Sheets, stylesheet, CSS3
JavaScript
LanguageFreeThe programming language built into every web browser, used to make pages interactive and, through Node.js and similar runtimes, to run servers too.
JavaScript is the only programming language browsers run directly, apart from WebAssembly. It reacts to clicks and typing, changes the page through the DOM, fetches data from APIs, and powers frameworks such as React, Vue and Svelte. It was created at Netscape in 1995 and is standardised as ECMAScript, which gains a new edition every year.
It is dynamically typed: a variable can hold a number now and text later, and type mistakes surface only when the code runs. Work that waits, such as a network request, runs asynchronously on an event loop with promises and async/await, so one slow task does not freeze the page. Node.js, Deno and Bun run the same language on servers, so one team can use one language across the whole product.
Its package registry, npm, holds millions of packages. The flip side is a sprawling ecosystem where tools and fashions change quickly, and a few historical quirks, such as loose equality with == and automatic type conversion, that catch newcomers out.
Pros
- Runs in every browser with nothing to install
- One language for front end, back end and mobile (React Native)
- Vast ecosystem of packages, frameworks and tutorials
- Fast engines such as V8 make it quick for a dynamic language
- Easy to start: a text file and a browser are enough
Cons
- Dynamic typing lets many mistakes through until run time
- Historical quirks (type coercion, this, ==) catch people out
- Fast-moving ecosystem with deep dependency trees
- Slower than compiled languages for heavy number crunching
Pick it when
- Anything that has to run in a web browser
- Small scripts, prototypes and pages with a little interactivity
- A full-stack team that wants one language on front and back end
Skip it when
- A codebase that will grow large (TypeScript adds safety at little cost)
- CPU-heavy work such as video encoding or large simulations
What it costs · Free
Free: built into every browser, and Node.js, Deno and Bun run it on servers at no cost.
Approximate, checked September 2026.
Related
Also called: JS, ECMAScript, ES6, vanilla JS
TypeScript
LanguageOpen sourceJavaScript with types added, so the editor can catch mistakes such as a misspelt field or a missing value before the code ever runs.
TypeScript, released by Microsoft in 2012, is a superset of JavaScript: any JavaScript file is a valid starting point, and you add type annotations such as name: string where they help. The compiler checks that values are used consistently, then strips the types and outputs plain JavaScript, so browsers and servers never see TypeScript itself.
Types are inferred wherever possible, so much of the code needs no annotations at all. The payoff shows up in the editor: precise autocomplete, safe renaming across files and errors underlined as you type. Most popular libraries ship their own types, and tools such as Zod, Prisma and tRPC use them to carry one definition from the database to the screen.
Deno and Bun run .ts files directly, and recent Node.js versions can strip the types and run them too. In larger builds, fast tools such as esbuild and SWC remove the types while the tsc compiler does the checking, often only in the editor and in CI.
Pros
- Catches whole classes of bugs before the code runs
- Autocomplete and refactoring become far more reliable
- Types document the code and make large codebases easier to change
- Can be adopted gradually, one file at a time
Cons
- A build or check step to set up and keep running
- Advanced types (generics, conditional types) take real effort to learn
- Types vanish at run time, so outside data still needs validating
Pick it when
- Almost any JavaScript project that will grow or be shared by a team
- Libraries and APIs whose users benefit from autocomplete
- Full-stack apps that share types between front end and back end
Skip it when
- A one-off script or tiny page where a build step is not worth it
What it costs · Open source
Free and open source (Apache 2.0).
Approximate, checked September 2026.
Related
Also called: TS, tsc, .ts, .tsx
WebAssembly
FormatFreeA compact binary format that lets code written in languages such as Rust, C++ or Go run in the browser at close to native speed.
WebAssembly (Wasm) is rarely written by hand. Compilers turn Rust, C, C++, Go, Kotlin, C# and other languages into a .wasm file, which the browser loads, checks and runs inside the same security sandbox as JavaScript. It became a W3C standard in 2019 and runs in every major browser.
It suits heavy, well-defined work: image and video editing, games, CAD, codecs and encryption, or bringing an existing C++ library to the web; Figma and Photoshop on the web rely on it. Wasm cannot touch the page directly, so it works alongside JavaScript, which handles the DOM. Outside the browser, WASI and runtimes such as Wasmtime run Wasm modules on servers, and edge platforms such as Cloudflare Workers can run them too.
What it costs · Free
Free; an open standard built into every major browser.
Approximate, checked September 2026.
Related
Also called: Wasm, WASM, WASI
Open WebAssembly as a pageOfficial site (opens in a new tab)
PHP
LanguageOpen sourceA server-side language made for the web, behind WordPress, Laravel and a large share of websites, and offered by almost every web host.
PHP runs on the server: when a page is requested, PHP code builds the HTML (or JSON) and sends it back. Each request starts fresh and shares nothing with the last, which keeps hosting simple and stops one broken page from taking down the rest. It began in 1994 as a few tools for a personal home page and grew into a full language.
Modern PHP is far from its messy reputation. Versions 7 and 8 brought large speed gains, type declarations, enums, attributes and a JIT compiler, and Composer manages packages. Laravel and Symfony are the main frameworks, and WordPress, Drupal, WooCommerce and Magento are all written in PHP.
Pros
- Runs on nearly every host, including cheap shared hosting
- Simple deployment: upload the files and they run
- Mature frameworks (Laravel, Symfony) and the WordPress ecosystem
- Much faster and stricter than its old reputation suggests
Cons
- Inconsistent function names and old habits linger in the standard library
- Plenty of outdated, insecure tutorials and plugins still circulate
- Live features such as WebSockets need extra tools or services
Pick it when
- WordPress sites, plugins and WooCommerce shops
- Laravel apps, where one framework covers most of the backend
- Budget hosting where PHP is the main option
Skip it when
- A team that already writes JavaScript or Python on the server
- Apps built around live, long-lived connections
What it costs · Open source
Free and open source.
Approximate, checked September 2026.
Related
Also called: PHP: Hypertext Preprocessor, Composer
General purpose
Python
LanguageOpen sourceA readable general-purpose language: the main language of data science and AI, and widely used for web backends, scripts and teaching.
Python reads almost like plain English and groups code by indentation instead of braces, which is one reason it is so often the first language people learn. Guido van Rossum released it in 1991, and Python 3 is the only version still maintained. The standard library covers files, networking, JSON, dates and much more before anything is installed.
Its reach comes from libraries: NumPy and pandas for data, PyTorch and scikit-learn for machine learning, Django, Flask and FastAPI for web backends, and countless packages for automation. Packages come from PyPI through pip, or through uv, a much faster newer tool, usually inside a separate virtual environment for each project.
The standard interpreter is slow at pure-Python loops, which is why data and AI libraries do their heavy lifting in C, C++ or Rust underneath. The global interpreter lock (GIL) has long stopped threads running Python code in parallel; recent versions offer an optional build without it. Type hints are optional and checked by tools such as mypy and Pyright rather than by Python itself.
Pros
- Clear, readable syntax that is quick to learn
- The standard home of data, AI and machine learning libraries
- Large standard library, so much works out of the box
- Handy for scripts, automation and gluing systems together
- Huge community and plenty of learning material
Cons
- Slow for CPU-heavy code written in pure Python
- Packaging and virtual environments confuse newcomers
- Dynamic typing lets errors slip through without extra tools
- No natural route into browsers or native mobile apps
Pick it when
- Data analysis, machine learning and AI work
- Scripts and automation, from renaming files to scraping websites
- Web APIs and backends with FastAPI or Django
Skip it when
- Code that must run in a browser or ship as a native mobile app
- Performance-critical services where every millisecond counts
What it costs · Open source
Free and open source (Python Software Foundation licence).
Approximate, checked September 2026.
Related
Also called: Python 3, py, CPython, pip
Java
LanguageOpen sourceA long-established, strongly typed language that runs on the Java Virtual Machine, behind large company systems, banks, many backends and early Android apps.
Java code compiles to bytecode that runs on the Java Virtual Machine (JVM), so the same program runs on Windows, macOS, Linux and servers alike: the original 'write once, run anywhere' promise. It is statically typed and object-oriented, with automatic memory management (garbage collection). Sun Microsystems released it in 1995; Oracle owns it now, and development happens in the open-source OpenJDK project.
It is a workhorse of enterprise software: banks, insurers, retailers and governments run huge Java systems, often on Spring Boot, and data tools such as Kafka, Hadoop and Elasticsearch are built on the JVM. Android apps were written in Java for their first decade, and Android still runs Java libraries, although Kotlin is now Google's recommended language.
Java was long criticised as verbose, and modern releases have steadily trimmed that with records, pattern matching, text blocks, the var keyword and lightweight virtual threads for handling many requests at once. A long-term support (LTS) release arrives every two years.
Pros
- Mature, stable and backwards compatible over decades
- Fast JVM with advanced garbage collectors and profiling tools
- Huge ecosystem (Spring, Maven Central) and a large hiring pool
- Runs on any system with a JVM, from laptops to large servers
Cons
- More boilerplate than Kotlin, Python or Go
- Slower start-up and higher memory use than native binaries
- Oracle's changing licence terms have confused many teams
Pick it when
- Large backends and enterprise systems with long lifespans
- Companies that already run Java and Spring
- Data and streaming tools from the JVM world
Skip it when
- New Android apps, where Kotlin is the default
- Small serverless functions where fast start-up matters
What it costs · Open source
Free: OpenJDK builds such as Eclipse Temurin and Amazon Corretto cost nothing. Oracle's own JDK has its own licence terms, worth checking for commercial use.
Approximate, checked September 2026.
Also called: JVM, JDK, OpenJDK, Java SE
C#
LanguageOpen sourceMicrosoft's general-purpose language on the .NET platform, used for business backends, Windows software and games built with Unity.
C# is statically typed and object-oriented, with a garbage collector, and it has absorbed good ideas steadily: LINQ queries, async/await (which C# popularised), pattern matching and records. Microsoft introduced it in 2000; its lead designer, Anders Hejlsberg, later led the design of TypeScript. It runs on .NET, open source and cross-platform since 2016, so C# apps run on Linux servers and Macs as well as Windows.
ASP.NET Core is a fast framework for web APIs and sites, and Blazor runs C# in the browser through WebAssembly. .NET MAUI targets phones and desktops, Unity uses C# for game scripting, and a great deal of corporate software on Windows is written in it.
Pros
- Consistent language that gains useful features with each yearly release
- Fast runtime and a quick web framework in ASP.NET Core
- Strong tooling in Visual Studio, VS Code and JetBrains Rider
- The scripting language of Unity, a widely used game engine
Cons
- Its ecosystem leans towards Microsoft products and Azure
- Fewer startups and open-source web projects use it than JavaScript or Python
- Cross-platform desktop and mobile UI (MAUI) is less mature than its server side
Pick it when
- Companies already invested in Microsoft, Windows and Azure
- Games and interactive 3D with Unity
- Fast, strongly typed web APIs with ASP.NET Core
Skip it when
- A typical web app for a team that already knows JavaScript or Python
What it costs · Open source
Free: .NET is open source (MIT). Visual Studio Community is free for individuals and small teams; Professional costs about $45 a month per user.
C# pricing (opens in a new tab)Approximate, checked September 2026.
Also called: C Sharp, .NET, dotnet, ASP.NET Core
Mobile
Kotlin
LanguageOpen sourceA modern, concise language from JetBrains that Google recommends for Android apps, and that also runs on servers and across platforms.
Kotlin runs on the JVM and works hand in hand with Java: a project can mix both, and Kotlin calls any Java library directly. It removes much of Java's ceremony with type inference, data classes, extension functions and smart casts, and its type system separates values that may be null from values that cannot, which prevents a very common cause of crashes in Java apps.
Google made Kotlin an official Android language in 2017 and declared Android development 'Kotlin-first' in 2019. Jetpack Compose, the modern way to build Android screens, is Kotlin-only, and coroutines and Flow handle background work and streams of data without tangles of callbacks.
Beyond Android, Kotlin runs servers with Ktor or Spring Boot, and Kotlin Multiplatform shares business logic (and, with Compose Multiplatform, screens) across Android, iOS, desktop and the web.
Pros
- Concise and readable, with far less boilerplate than Java
- Null safety built into the type system
- Works with existing Java code and libraries in the same project
- Coroutines make background work and concurrency simpler
- First-class support from Google for Android
Cons
- Compiles can be slower than Java on big projects
- Outside Android and the JVM its ecosystem is smaller
- Many ways to write the same thing, so teams need a style guide
Pick it when
- Any new Android app
- JVM backends where a team wants a modern alternative to Java
- Sharing logic between Android and iOS with Kotlin Multiplatform
Skip it when
- An iOS-only app, where Swift is the native choice
- A large Java codebase where adding a second language brings little
What it costs · Open source
Free and open source (Apache 2.0). Android Studio, the usual editor for Android work, is free too.
Approximate, checked September 2026.
Related
Also called: Kotlin/JVM, Kotlin for Android, kt
Swift
LanguageOpen sourceApple's modern language for apps on iPhone, iPad, Mac, Apple Watch and Apple TV, designed to be fast and safe.
Apple introduced Swift in 2014 as the successor to Objective-C and made it open source in 2015. It is statically typed and compiles to fast native code, and memory is managed by automatic reference counting (ARC) rather than a garbage collector. Optionals force code to handle missing values explicitly, closing off a common source of crashes.
Nearly all new Apple-platform work is written in Swift, and SwiftUI builds interfaces declaratively in it. Recent versions check concurrent code for data races at compile time, using async/await and actors. Swift also runs on Linux and Windows, with server frameworks such as Vapor, but its community is centred on Apple.
In practice, building and publishing iPhone apps needs Xcode, which runs only on macOS, so a Mac is part of the kit.
Pros
- The native, Apple-supported way to build for iPhone and Mac
- Fast compiled code with strong safety features
- Modern syntax that is pleasant to read and write
- SwiftUI makes building interfaces quicker
Cons
- iOS work needs a Mac and Xcode
- Mostly useful inside Apple's ecosystem
- Yearly language and SwiftUI changes mean regular code updates
Pick it when
- iPhone, iPad and Mac apps that should feel fully native
- Apps that need new Apple features, such as widgets or Live Activities, as soon as they ship
Skip it when
- One codebase must also cover Android (consider Flutter, React Native or Kotlin Multiplatform)
What it costs · Open source
Free (Apache 2.0). Xcode is free but runs only on a Mac; publishing on the App Store needs the Apple Developer Program at $99 a year.
Swift pricing (opens in a new tab)Approximate, checked September 2026.
Related
Also called: Swift language, Apple Swift
Dart
LanguageOpen sourceGoogle's language behind Flutter, used to build one app that runs on Android, iOS, the web and desktop from a single codebase.
Dart looks familiar to anyone who knows Java, C# or JavaScript: classes, async/await, generics and sound null safety, meaning the compiler guarantees that a value declared non-null never is. Google introduced it in 2011, and nearly all of its popularity today comes from Flutter.
Its compiler is built around the way Flutter works. During development, code runs in a virtual machine with hot reload, so a change appears in the running app within a second or so without losing its state. For release, Dart compiles ahead of time to native ARM or x64 code for phones and desktops, and to JavaScript or WebAssembly for the web.
Pros
- Easy to pick up for anyone who knows Java, C#, Kotlin or JavaScript
- Hot reload makes building interfaces fast
- Compiles to native code for phones and desktops
- Sound null safety and a solid set of official tools
Cons
- Used almost only with Flutter, so the skill transfers less widely
- Smaller package ecosystem than JavaScript or Kotlin
Pick it when
- Building a Flutter app for Android and iOS together
- Teams that want one codebase with a consistent look on every platform
Skip it when
- Backend or web-only work, where other languages have far larger ecosystems
What it costs · Open source
Free and open source (BSD licence).
Approximate, checked September 2026.
Also called: Dart language, dart2js
Systems
Rust
LanguageOpen sourceA fast systems language whose compiler rules out whole classes of memory bugs and crashes, without the pauses of a garbage collector.
Rust offers the speed and low-level control of C and C++, but its compiler enforces rules about ownership: every value has one owner, and the 'borrow checker' makes sure memory is freed exactly once and never used after it is gone. Data races between threads are ruled out the same way, so mistakes that would be security holes in C become compile errors.
It began at Mozilla and reached 1.0 in 2015. Cargo, its build tool and package manager, handles dependencies, builds, tests and documentation, and packages (crates) come from crates.io. Rust now runs inside the Linux kernel, Windows, Android, Firefox and Cloudflare's network, and tools such as Tauri, ripgrep and uv are written in it.
The price is a steep learning curve and slow compiles: the compiler rejects code until it can prove it safe, which frustrates newcomers, even though its error messages are unusually helpful.
Pros
- Speed on a par with C and C++
- Memory and thread safety checked at compile time
- Cargo makes building, testing and sharing code simple
- Helpful compiler errors and an expressive type system
- Compiles to WebAssembly and to small embedded chips
Cons
- Steep learning curve: ownership, lifetimes and traits
- Slow compile times on large projects
- Fewer developers to hire, and some libraries still maturing
Pick it when
- Performance-critical code: engines, parsers, databases, game servers
- Security-sensitive software where memory bugs are not acceptable
- Command-line tools, desktop apps with Tauri, and WebAssembly modules
Skip it when
- Quick prototypes or ordinary form-and-database web apps that need to ship fast
- A team with no time to climb the learning curve
What it costs · Open source
Free and open source (MIT or Apache 2.0).
Approximate, checked September 2026.
Related
Also called: rustc, Cargo, crates.io, Rustacean
Go
LanguageOpen sourceGoogle's deliberately simple, fast-compiling language for servers, cloud tools and command-line programs, with concurrency built in.
Go was designed at Google by Robert Griesemer, Rob Pike and Ken Thompson, announced in 2009 and stable since 1.0 in 2012. Its feature set is small on purpose, so most Go code looks alike and is easy to read. It compiles in seconds to a single self-contained binary, which makes deployment as simple as copying one file, and a garbage collector tuned for short pauses manages memory.
Concurrency is part of the language: a goroutine is a very lightweight thread, thousands can run at once, and channels pass data between them safely. That suits network servers, which is why so much cloud infrastructure is written in Go, including Docker, Kubernetes, Terraform, Prometheus and Caddy.
Generics arrived only in 2022, and errors are handled with explicit if err != nil checks rather than exceptions, which some find tedious and others find clear.
Pros
- Small language that is quick to learn and easy to read
- Very fast compiles and single-file deployments
- Goroutines make concurrent servers straightforward
- Strong standard library for HTTP, JSON and cryptography
- Formatter, test runner and other tools built in
Cons
- Verbose error handling with repeated if err != nil checks
- Fewer language features, by design, than Rust, Kotlin or C#
- Garbage collection makes it a weaker fit for hard real-time code or tiny devices
Pick it when
- APIs, microservices and network servers
- Command-line tools and DevOps tooling
- Teams that value readable code and quick onboarding
Skip it when
- Data science and machine learning, where Python has the libraries
- Code where every microsecond and byte counts (Rust or C++)
What it costs · Open source
Free and open source (BSD-style licence).
Approximate, checked September 2026.
Related
Also called: Golang, goroutines
C and C++
LanguageOpen sourceTwo closely related languages much of computing is built on, from operating systems and browsers to game engines and the chips inside household devices.
C was created at Bell Labs in the early 1970s to write Unix, and it is still the language of operating system kernels (Linux, and much of Windows and macOS), embedded devices and core libraries such as SQLite and PostgreSQL. It is small, maps closely to what the hardware does, and leaves memory management to the programmer.
C++, started by Bjarne Stroustrup in 1979 and first released in 1985, adds classes, templates and a large standard library on top of C. It powers Chrome, Firefox and most game engines, including Unreal, as well as trading systems, databases and audio and video software. A new standard every three years keeps it evolving.
Both compile to very fast machine code, but neither stops a program from reading past the end of an array or using memory after it has been freed. Microsoft and Google have each reported that most of their serious security bugs are memory-safety mistakes of this kind, which is why more new systems code now starts in Rust.
Pros
- Very high performance and direct control over memory and hardware
- Runs everywhere, from microcontrollers to supercomputers
- Decades of libraries, tools and existing code
- The native language of most operating systems and game engines
Cons
- Memory bugs lead to crashes and security holes
- C++ is large and complex, with many pitfalls
- No standard package manager, and build setups (CMake) can be fiddly
Pick it when
- Game engines, graphics and real-time audio or video
- Embedded devices and firmware
- Extending an existing C or C++ codebase or library
Skip it when
- New projects that could use Rust or Go for the same job with fewer risks
- Ordinary web apps and business software
What it costs · Open source
Free compilers: GCC and Clang are open source, and Microsoft's compiler comes with the free Visual Studio Community.
Approximate, checked September 2026.
Also called: C, C++, cpp, GCC, Clang
Data and scripting
SQL
LanguageFreeThe standard language for asking a relational database questions and changing its data, understood by PostgreSQL, MySQL, SQLite and many more.
SQL is declarative: you describe the result you want, such as all paid orders from last week with each customer's name, and the database works out how to fetch it. SELECT reads data, INSERT, UPDATE and DELETE change it, JOIN combines tables, GROUP BY summarises, and CREATE TABLE defines the structure.
It grew out of IBM research in the 1970s, based on Edgar Codd's relational model, and has been an ANSI and ISO standard since the 1980s. Every database adds its own dialect (T-SQL in SQL Server, PL/pgSQL in PostgreSQL), so the basics transfer everywhere while advanced features differ. Analysts and product managers use it as much as developers, and data warehouses such as BigQuery and Snowflake speak it too.
Building SQL by pasting user input into a string invites SQL injection, a long-standing and serious attack, so apps pass values separately as parameters, or use an ORM or query builder that does it for them.
Pros
- One language that works across nearly every relational database
- Very expressive for filtering, joining and summarising data
- Stable for decades, so the skill lasts a career
- Readable enough for analysts and non-developers to learn
Cons
- Dialects differ between databases beyond the basics
- Complex queries get hard to read and to speed up
- Careless string building leads to SQL injection
Pick it when
- Working with any relational database
- Reports, dashboards and one-off questions about data
- Analytics in warehouses such as BigQuery, Snowflake or ClickHouse
Skip it when
- The data lives in a document store such as Firestore, which has its own query API
What it costs · Free
The language is free to use. Many databases that speak it are open source; commercial ones such as Oracle Database and SQL Server charge licence fees.
Approximate, checked September 2026.
Related
Also called: Structured Query Language, SQL query, T-SQL, PL/pgSQL
Shell scripting
LanguageOpen sourceSmall programs written in the language of the terminal, such as Bash or PowerShell, that automate jobs like builds, deployments, backups and file clean-ups.
A shell is the program that reads the commands typed into a terminal. A shell script saves those commands in a file, with variables, loops and conditions, so a job of twenty manual steps becomes one command. Bash is the standard on Linux servers, Zsh is the default on macOS, and plain POSIX sh is the lowest common denominator that runs almost anywhere.
Scripts glue other programs together: a pipe sends one command's output into the next (find the files, filter them with grep, count them with wc), which is why so many CI pipelines, Dockerfiles, deploy steps and cron jobs are shell. On Windows, PowerShell plays the same role but passes structured objects between commands instead of plain text; it is open source and runs on macOS and Linux too.
Shell is easy to start and easy to get wrong: unquoted variables break on file names with spaces, and failed commands are ignored unless the script opts in to stopping, for example with set -euo pipefail. The ShellCheck linter catches most of these mistakes. Once a script grows past a page or two, Python is usually the better tool.
Pros
- Already installed on every Linux server and Mac
- Natural glue for running and combining command-line tools
- Quick to write for automation, CI steps and server chores
- Skills carry over to every server, container and CI system
Cons
- Quoting rules and silent failures cause subtle bugs
- Differences between Bash, Zsh, sh and PowerShell hurt portability
- Hard to test and maintain once scripts grow large
Pick it when
- Automating terminal tasks, builds and deployments
- CI pipelines, Docker images and cron jobs
- Short scripts that mostly call other programs
Skip it when
- Logic with complex data, many branches or careful error handling (use Python)
- Scripts that must run unchanged on Windows and Linux, unless written in PowerShell
What it costs · Open source
Free: Bash, Zsh and PowerShell are all open source.
Approximate, checked September 2026.
Related
Also called: Bash, shell script, Zsh, PowerShell, sh
Open Shell scripting as a pageOfficial site (opens in a new tab)
Side by side
Differences
How the options in this area compare on the questions that usually decide the choice.
JavaScript vs TypeScript
Open as a page: JavaScript vs TypeScriptTypeScript is JavaScript with a type checker on top, so this is less a choice between languages than a choice of how much the tools check for you before the code runs.
| Compare | JavaScript | TypeScript |
|---|---|---|
| What it is | The language browsers run | JavaScript plus types, compiled to JavaScript |
| Types | Dynamic, checked as the code runs | Static, checked before the code runs |
| Setup | None, runs as written | A compiler or a tool that strips types |
| Mistakes caught | At run time, sometimes by users | In the editor and at build time |
| Editor help | Autocomplete based on guesses | Precise autocomplete and safe renames |
| Learning curve | Gentler start | More to learn: types, generics, config |
| Runs in the browser | Directly | After the types are removed |
| Best for | Small scripts and quick experiments | Apps that grow and code shared by a team |
How to choose
- Pick JavaScript for small scripts, quick experiments and pages with a little interactivity.
- Pick TypeScript for anything that will grow, be shared by a team or be maintained for years.
- TypeScript accepts plain JavaScript, so a project can move over one file at a time.
Kotlin vs Java
Open as a page: Kotlin vs JavaBoth run on the JVM, share libraries and can live in the same project. Kotlin is the newer, more concise option that Google recommends for Android; Java is the long-established standard for enterprise backends.
| Compare | Kotlin | Java |
|---|---|---|
| Origin | JetBrains, 1.0 in 2016 | Sun Microsystems, 1995; now Oracle |
| Code style | Concise, little boilerplate | More verbose, though modern Java trims a lot |
| Null safety | Built into the type system | Annotations and Optional; null crashes still common |
| Concurrency | Coroutines and Flow | Threads, plus lightweight virtual threads |
| Android | Recommended; Compose is Kotlin-only | Supported, but new APIs are Kotlin-first |
| Servers | Ktor, Spring Boot | Spring Boot, Quarkus and a vast enterprise base |
| Working together | Calls Java libraries directly | Calls Kotlin code, a little less naturally |
| Hiring | Growing pool, concentrated on Android | A very large, long-established pool |
How to choose
- Pick Kotlin for new Android apps, and for JVM projects that want less boilerplate and built-in null safety.
- Pick Java for large existing Java codebases, teams that already know it, and enterprise stacks built around it.
- The two mix freely in one project, so moving from Java to Kotlin can happen gradually.
Python vs JavaScript
Open as a page: Python vs JavaScriptTwo of the most common first languages. Both are easy to start with and dynamically typed; they differ mostly in where they run and what their ecosystems are built for.
| Compare | Python | JavaScript |
|---|---|---|
| Where it runs | Servers, laptops, notebooks, scripts | Every browser, plus servers via Node.js |
| Best for | Data, AI, automation and backends | Websites, web apps and full-stack work |
| Syntax | Indentation-based, reads like plain English | C-style braces, several ways to do things |
| Speed | Slow in pure Python; fast libraries in C | Fast JIT-compiled engines such as V8 |
| Concurrency | asyncio; the GIL limits threads | Event loop with async/await built in |
| Packages | pip and PyPI, or the faster uv | npm, with millions of packages |
| Types | Optional type hints, checked by tools | Optional types through TypeScript |
| Learning curve | Often the first language taught | Easy start, quirky in places |
How to choose
- Pick Python for data work, AI and machine learning, scripting and automation.
- Pick JavaScript, or TypeScript, for anything that runs in a browser and for one language across front end and back end.
- Plenty of products use both: a JavaScript front end talking to a Python API.
Rust vs Go vs C++
Open as a page: Rust vs Go vs C++Three compiled languages for fast, low-level or infrastructure code. They make different trade-offs between raw speed, safety and how easy the code is to write and read.
| Compare | Rust | Go | C++ |
|---|---|---|---|
| Memory safety | Checked by the compiler, no garbage collector | Garbage collected, safe by default | Manual; up to the programmer |
| Speed | On a par with C++ | Fast, a step behind Rust and C++ | Very fast, with careful code |
| Learning curve | Steep: ownership and lifetimes | Gentle: a small, simple language | Steep: a huge language with many pitfalls |
| Compile times | Slow | Very fast | Slow on big projects |
| Concurrency | Threads and async, checked for data races | Goroutines and channels built in | Threads; safety is up to you |
| Tooling | Cargo builds, tests and fetches packages | The go tool builds, tests and formats | Many build systems, no standard package manager |
| Typical uses | Systems, CLIs, WebAssembly, Tauri apps | Cloud services, APIs, DevOps tools | Games, browsers, engines, embedded, finance |
| Maturity | Younger; 1.0 in 2015 | Mature for servers; 1.0 in 2012 | Decades of code; released in 1985 |
How to choose
- Pick Go for network services and tools where simple code and fast builds matter more than the last bit of speed.
- Pick Rust for performance-critical or security-sensitive code that must be fast without memory bugs.
- Pick C++ for games, existing C++ codebases and platforms where its compilers and libraries are the standard.
Crafted in the dark. Shipped to the world.
Tell us what you are building. You get a private project space with a proposal and a line-by-line quote within a day.