Online Compilers

note: version numbers are correct as of 2025-05-15, unless stated: [AutoHotkey] [C] [C++] C++ Shell [hotkey: (none)] [version: multiple e.g. 202002] [note: std::format failed with ints] [note: pre-includes <algorithm>] [note: prints non-ASCII chars as other chars] [time zone: local] Online C++ Compiler - Programiz [hotkey: Ctrl+Enter] [version: 201703] [note: supports Unicode chars including emojis] [time zone: UTC] Online C++ Compiler - online editor [hotkey: F9] [version: multiple e.g. 202302] [note: std::format worked with ints (C++ 20 compiler)] [time zone: UTC] Online C++ Compiler and Visualizer [hotkey: Ctrl+Shift+Enter] [version: 202002] [note: pre-includes <algorithm> and <format>] [note: std::format worked with ints] [time zone: UTC] [C#] | C# Online Compiler | .NET Fiddle [hotkey: (none)] [version: multiple e.g. .NET 9.0.0 (C# 13)] [note: F5 refreshes and executes] [time zone: UTC] Online C# Compiler (Editor) - Programiz [hotkey: Ctrl+Enter] [version: 4.0.30319.42000] [time zone: UTC] [Crystal] [set time zone: Time::Location.local = Time::Location.load("Europe/London")] Compile & run code in Crystal [hotkey: Ctrl+Enter] [version: multiple e.g. 1.16.0] [time zone: UTC, can set it] Online Crystal Compiler - Online Crystal Editor - Run Crystal Online - Online Crystal Runner [hotkey: Ctrl+Enter] [version: 1.10.1] [time zone: UTC, can set it] [Dart] [Excel] [Excel VBA] [Go] [set time zone: os.Setenv("TZ", "Europe/London")] Go Playground - The Go Programming Language [hotkey: Shift+Enter] [version: 1.24.3] [time zone: MAJOR WARNING: time.Now() is stuck at '2009-11-10 23:00:00 +0000 UTC' (Go's date of birth)] Online Go Compiler - Programiz [hotkey: Ctrl+Enter] [version: 1.23.8] [time zone: UTC] Online Go Lang Compiler [hotkey: Ctrl+Enter] [version: multiple e.g. 1.21.4] [time zone: UTC] [Haskell] Online Haskell Runner [hotkey: Ctrl+Enter] [version: multiple e.g. GHC 9.0.2] [time zone: UTC] [Java] [set time zone: java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("Europe/London"));] Online Java Compiler - Programiz [hotkey: Ctrl+Enter] [version: 21.0.7] [note: prints non-ASCII chars as '?'] [note: ‘’“” are interpreted as single/double quotes] [note: line breaks sometimes (randomly?) not printed] [time zone: UTC, can set it] Online Java Compiler | Java Editor [hotkey: Ctrl+Enter] [version: multiple e.g. 21.0.0] [note: supports Unicode chars including emojis] [note: ‘’“” are interpreted as chars with no special meaning] [time zone: UTC, can set it] [JavaScript] [set time zone (Node.js): process.env.TZ = "Europe/London";] Online JavaScript Compiler (Editor) - Programiz [hotkey: Ctrl+Enter] [version: 22.15.0 (Node.js)] [time zone: UTC, can set it] JavaScript Online Compiler & Interpreter [hotkey: Ctrl+Enter] [version: 20.18.0 (Node.js)] [time zone: UTC, can set it] NodeJS Online Editor [hotkey: Ctrl+Enter] [version: multiple e.g. 21.2.0 (Node.js)] [time zone: UTC, can set it] [Kotlin] [set time zone: java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("Europe/London"))] Kotlin Playground: Edit, Run, Share Kotlin Code Online [hotkey: Ctrl+F9] [version: multiple e.g. 1.9.25] [time zone: UTC, can't be changed] Kotlin Online Compiler [hotkey: Ctrl+Enter] [version: 1.3.70] [time zone: UTC, can set it] [Lisp (Common Lisp)] compile lisp online [hotkey: F8] [version: CLISP 2.49.60] [time zone: CET? (out of sync by around 10 min?)] CLISP Online Editor [hotkey: Ctrl+Enter] [version: multiple e.g. CLISP 2.49.93] [time zone: UTC] [Pascal] [Perl] [PHP] [set time zone: date_default_timezone_set("Europe/London");] PHP Sandbox - Execute PHP code online through your browser [hotkey: Ctrl+Enter] [version: multiple e.g. 8.4.5] [note: cookie prompt on entering] [time zone: UTC, can set it] Online PHP Compiler - Programiz [hotkey: Ctrl+Enter] [version: 8.2.28] [time zone: UTC, can set it] W3Schools Tryit Editor [hotkey: Ctrl+Alt+R] [version: 7.1.1-1] [note: supports GMP functions] [note: to print '\n' use '<br>'] [time zone: UTC, can set it] [Python] [set time zone: import os, time; os.environ["TZ"] = "Europe/London"; time.tzset()][note: tzset() is for Unix-like OSes only] Trinket: run code anywhere [hotkey: Ctrl+Enter] [version: 3.10.9] [time zone: UTC, can set it] Online Python - IDE, Editor, Compiler, Interpreter [hotkey: F8] [version: 3.8.5] [note: awkward to select output, can click 'Copy to Clipboard' button] [note: cookie prompt on entering, 'Leave site' prompt on leaving] [time zone: UTC, can't be changed] Python-Fiddle: Online Python IDE, Compiler, and Interpreter [hotkey: Shift+Enter] [version: 3.12.7] [time zone: local, can't be changed] Python Online Compiler & Interpreter [hotkey: Ctrl+Enter] [version: 3.12.3] [time zone: UTC, can set it] Online Python 3 Compiler [hotkey: Ctrl+Enter] [version: multiple e.g. 3.11.5] [time zone: UTC, can set it] Python 2 Online Compiler & Interpreter [hotkey: Ctrl+Enter] [version: 2.7.17] [time zone: UTC, can set it (tzset() is unnecessary)] [R] [set time zone: Sys.setenv(TZ="Europe/London")] Online R Compiler - Programiz [hotkey: Ctrl+Enter] [version: 4.2.3] [time zone: UTC, can set it] R Online Compiler | Run R Code Online [hotkey: Ctrl+Enter] [version: multiple e.g. 4.3.2] [time zone: UTC, can set it] [Raku] [Ruby] [set time zone: ENV["TZ"] = "Europe/London"] Ruby Online Compiler & Interpreter [hotkey: Ctrl+Enter] [version: 3.2.3] [time zone: UTC, can set it] Ruby Online Compiler | Online Ruby Editor [hotkey: Ctrl+Enter] [version: multiple e.g. 3.0.6] [time zone: UTC, can set it] [Rust] Rust Playground [hotkey: Ctrl+Enter] [version: multiple e.g. 1.86.0] [time zone: UTC] Online Rust Compiler - Programiz [hotkey: Ctrl+Enter] [version: unknown] [time zone: UTC] [Scala] [set time zone: java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("Europe/London"))] Scastie [hotkey: Ctrl+Enter] [version: multiple e.g. 3.6.4] [time zone: UTC, can set it] [SQL] [SQL (MySQL)] [set time zone: SET time_zone = 'Europe/London';] MySQL Online Editor [hotkey: Ctrl+Enter] [version: 8.0.27] [note: disallows running stored functions] [time zone: UTC, can set it] MySQL Online | Online editor and compiler [hotkey: Ctrl+Enter] [version: 8.0.41] [note: allows running stored functions] [time zone: UTC, can set it] [SQL (PostgreSQL)] [set time zone: SET timezone = 'Europe/London';] PostgreSQL Online Editor [hotkey: Ctrl+Enter] [version: 14.18] [time zone: UTC, can set it] PostgreSQL Online | PostgreSQL Playground | PostgreSQL Sandbox [hotkey: (none)] [version: 16.4] [note: cookie prompt on entering] [time zone: UTC, can set it] SQL OnLine IDE [hotkey: Shift+Enter] [version: 17.0] [note: see PostgreSQL in the sidebar] [note: splits output across tabs] [time zone: UTC, can set it] [SQL (SQLite)] [set null string: .nullvalue NULL] SQLite Compiler | Online Compiler | Newton School [hotkey: Ctrl+Enter] [version: 3.41.1] [time zone: UTC] [print null: '', can set it] SQL OnLine IDE [hotkey: Shift+Enter] [version: 3.47.2] [note: splits output across tabs] [time zone: local] [print null: 'NULL', can't be changed] SQLite Online Editor [hotkey: Ctrl+Enter] [version: 3.27.2] [time zone: UTC] [print null: '', can set it] Online SQL Compiler | JDoodle [hotkey: Ctrl+Enter] [version: multiple e.g. 3.44.0] [time zone: UTC] [print null: '', can set it] [Swift] Online Swift Compiler - Programiz [hotkey: Ctrl+Enter] [version: 5.8] [time zone: UTC] Swift Online Compiler [hotkey: Ctrl+Enter] [version: multiple e.g. 5.9.1] [time zone: UTC] [TypeScript] [Notes] considerations (version numbers): whether the version number is stated explicitly (or obtainable in-script via code) whether versions are updated at least once a year whether older versions are available whether the library for obtaining the version number is available for include/import (if a library is a needed) note: two of the best uses for online compilers are: trying out new features, and testing whether code works on older versions considerations (further): whether have a run/execute hotkey (e.g. that displays when you hover over the Run(/Execute Code) button) (avoid F5 as this typically does refresh, so muscle memory could make you press it on the wrong online compiler and lose information, or if use F5, also have an alternative) whether IF YOU CLOSE AND REOPEN THE TAB (OR REFRESH), THE CODE IS STILL THERE whether you can select and copy the output easily whether common libraries are available for include/import (e.g. the library for obtaining the version number) whether any pre-included libraries are explicitly stated whether tabs are treated as tabs or spaces whether Unicode characters are handled or not whether multiple versions of the programming language are available (useful for writing backwards compatible code) whether have a favicon (for quick identification amongst many tabs) whether demo code, if present, includes 'print' or equivalent (for convenience) whether the title/URL/'hello word' example code contains the programming language name or not (useful for record-keeping, identifying the programming language) whether a temporary ID in the URL allows you to share the code via a URL whether base 64 in the URL allows you to share the code via a URL whether a specific URL or option button, allows you to access one or more default 'hello world' code examples whether have an autocomplete drop-down menu (this can often slow down writing code) whether have useful editor features e.g. highlight matching parentheses / show next parameter name whether dark mode is available whether changing the language/language version clears the code whether there is a close tab prompt (clicking 'no' on the prompt 99%-100% of the time, is worse than very occasionally closing the tab accidentally and reopening the tab, this requires that reopening restores the code) whether there is a cookie prompt on entering whether code snippets are searchable (i.e. examples are useful, and users should consider their privacy) whether the local time zone is available (to be able to test date functions using your local time zone, or to spoof a specific local time zone, rather than have the 'local' time zone be set to UTC regardless of your location) note: one online compiler had a bug where some line breaks were sometimes (randomly?) not printed note: some common hotkeys: Ctrl+Enter (also seen: F5, F8, Ctrl+F9, Shift+Enter, Ctrl+Shift+Enter)