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

This website uses cookies to ensure you get the best experience on our website.