Reference
Supported languages
JDoodle runs 114 languages, frameworks and databases in the IDE.
This page is about what each language can do. For the exact language and
versionIndex values the API expects, see
languages and versions.
Every language
Each one has its own page, with an editor, the versions it runs, and what it supports.
Ada · Algol 68 · APL · Assembler - GCC · Assembler - NASM · Assembler - Turbo · AWK · B******K · Bash Shell · BC · Befunge · BhaiLang · Blockly · Bun · C · C# · C++ · C++ 14 · C++ 17 · C++ 20 · C++ 23 · C3 · C99 · Chicken Scheme · CLISP · Clojure · COBOL · CoffeeScript · Cow · Crystal · D · Dart · Deno · Elixir · Erlang · Express · F# · Factor · Falcon · Fantom · FASM · Flask · Flex · Forth · Fortran · FreeBASIC · Go · Groovy · Guile · Hack · Haskell · Haxe · HTML/CSS/JS · Icon · Intercal · J Language · Java · JBang · Jelly · Julia · Jython · Kotlin · Laravel · LOLCODE · Lua · MicroPython · MongoDB · MoonScript · MySQL · Nemerle · Nim · NodeJS · Objective-C · OCaml · Octave · Odin · OZ Mozart · PARI/GP · Pascal · Perl · PHP · PicoLisp · Pike · PostgreSQL · Prolog · PyPy3 · Python · Python 2 · R Language · Racket · Raku · React · Rhino JS · Ruby · Rust · Scala · Scheme · Smalltalk · Solidity · SpiderMonkey · Spring Boot · SQL · Swift · Tcl · TypeScript · Unlambda · V · Vala · VB.NET · Verilog · Vue · Whitespace · Yabasic · Zig
Languages with multi-file projects
41 languages have an Advanced variant. That is the multi-file one: several source files, your own folder structure, and a build step.
Java, HTML/CSS/Javascript, C, C++, C++ 14, C++ 17, C99, C#, PHP, Perl, Ruby, Python2, Python3, Scala, VB.NET, Haskell, Go, Swift, Groovy, Fortran, Lua, R, Ada, D, Dart, FreeBASIC, Verilog, NodeJS, Bash, COBOL, Assembler (NASM), OCaml, Elixir, Nim, Kotlin, Deno, Crystal, TypeScript, C++ 20, C++ 23, Bun
Everything else is single file. See multi-file projects.
Languages that take libraries
25 languages let you add third party libraries from the Libraries panel in the IDE. Name the package and it is installed before your code runs.
| Language | Where the package comes from |
|---|---|
| Java | Maven |
| C | Arch Linux |
| C99 | Arch Linux |
| C++ | Arch Linux |
| C++ 14 | Arch Linux |
| C++ 17 | Arch Linux |
| PHP | Packagist |
| Perl | CPAN |
| Python 2 | pip |
| Python | pip |
| Ruby | RubyGems |
| Scala | Maven |
| Bash Shell | Arch Linux |
| C# | NuGet |
| VB.NET | NuGet |
| Swift | You edit the project file yourself |
| Groovy | Maven |
| Lua | LuaRocks |
| R Language | CRAN |
| Dart | Pub Dev |
| NodeJS | npm |
| Kotlin | Maven |
| TypeScript | npm |
| C++ 20 | Arch Linux |
| C++ 23 | Arch Linux |
Languages you can debug
23 languages can be stepped through with a breakpoint debugger: set a breakpoint on a line, press Debug, and the program stops there so you can step over or into it and read your local variables while it is paused.
Java, C, C99, C++, C++ 14, C++ 17, PHP, Perl, Python, Ruby, Go, Scala, Objective-C, Groovy, Fortran, Rust, D, Ada, NodeJS, Assembler - GCC, Kotlin, C++ 20, C++ 23.
Debugging runs on the newest version of each. See the debugger.
Languages that can show a GUI window
20 languages can open a window and have it shown live in the IDE - a matplotlib chart, a turtle drawing, a tkinter or Swing app, an SDL sketch. It is the real window, so you can click and type into it.
Java, C, C99, C++, C++ 14, C++ 17, Perl, Python, Ruby, Scala, Groovy, Tcl, R Language, FreeBASIC, Clojure, Rhino JS, Kotlin, C++ 20, C++ 23, PyPy3.
A window runs on the newest version of each, and is ticked per run with the
GUI box in the I/O row. Some take their toolkit from the Libraries
panel first: the C dialects use X11, the C++ dialects use SDL2, and Ruby
uses tk. See the GUI window.
Full stack and database IDEs
These are project templates rather than single languages. Each one runs a server, a database, or both.
- Frontend. React, Vue
- Backend. Express, Spring Boot, Flask, Laravel
- Database. PostgreSQL, MySQL, MongoDB
What assessments accept
Assessments take single file languages only.
The multi-file Advanced variants, the full stack templates, the databases, HTML/CSS/Javascript and Blockly cannot be set as an assessment question. If you need a student to write across several files, set it as a project instead.
See question types.
What next
- Languages and versions, for the API values.
- Limits, for what your plan allows.