Slot: browser
Code that runs in the user's browser.
A product is a set of slots to fill: browser, server, database, deploy. A language fills some of them well, some badly, some not at all. A stack is one pick per slot.
browserserverdatabasesystemsmobilecliscriptsdatacomputeembeddedwasmconfiggames
Who fits
| Language | Fit | |
|---|---|---|
| JavaScript | ●●● strong | Used on the client side by 98.9 % of websites. |
| TypeScript | ●●● strong | Compiles to JavaScript, so it runs wherever JavaScript does. |
| C# | ●○○ weak | Blazor runs C# in the browser through WebAssembly, but JavaScript is the default. |
| Dart | ●○○ weak | Compiles to JavaScript; Chrome never shipped the Dart VM. |
| Elixir | ●○○ weak | Browsers still run JavaScript; Elixir sends updates to the page from the server. |
| Rust | ○○○ none | Only through WebAssembly, not as a browser language. |
| C | ○○○ none | Only through WebAssembly, not as a browser language. |
| C++ | ○○○ none | Chrome's JavaScript engine is C++, but pages reach C++ only through WebAssembly. |
| Go | ○○○ none | Compiles to WebAssembly, but is not a browser language. |
| Java | ○○○ none | Applets ran as browser plugins, and no major browser runs them now. |
| Lua | ○○○ none | |
| PHP | ○○○ none | Only the HTML that PHP produces reaches the browser, never the code. |
| Python | ○○○ none | Browsers run JavaScript, not Python. |
| Ruby | ○○○ none | The browser never runs Ruby; Rails sends HTML and JavaScript to it. |
| Swift | ○○○ none | Not a web page language. |
| Zig | ○○○ none | Compiles to WebAssembly, but is not a browser language. |