Supported Languages
Code Interview supports a wide variety of programming languages. Many of them have supporting libraries pre-installed for you to use. Feel free to email us if you feel any important libraries or settings are missing.
Below is the list of all the supported languages and some information about them:
- C#
- C/C++
- Clojure
- Java
- Kotlin
- Go
- Haskell
- JavaScript(Node)
- TypeScript(Node)
- PHP
- Python 2
- Python 3
- Swift
- Ruby
- Rust
- Scala
- Visual Basic .NET
- Objective-C
- Perl
- Erlang
- Elixir
- MySQL
- Bash
- PowerShell
- Web
- Realtime Terminal
C#
Running Visual C# Compiler Version 3.6.0Our C# environment runs on top of the mono project’s implementation of the .NET runtime.
You can define multiple classes but one of them should have a static void Main
.
C/C++
Running GCC 8.4.0C++17 standards are supported. GCC compiler is used with the following arguments:
g++ -std=c++17 -pthread
Clojure
Running clj 1.10Nothing to explain, it should probably work.
Java
Running Java 16.0.1 - Autocomplete is supportedYou should define public static void main(java.lang.String[])
inside a public class.
We have added JUnit 4 for your convenience. To use it, make sure your main class is public and named Code
. Here is an example:
import org.junit.*; import org.junit.runner.*; public class Code { @Test public void testNoop() { Assert.assertTrue(true); } public static void main(String[] args) { JUnitCore.main("Code"); } }
Kotlin
Running Kotlin 1.6.10Nothing to explain, it should probably work.
Go
Running Go 1.13You should declare a func main()
in a package main
, like this:
package main import "fmt" func main() { fmt.Printf("Hello") }
Haskell
Running GHC 8.4.3Nothing to explain, it should probably work.
JavaScript(Node)
Running Node 16 - Autocomplete is supportedYour code is run using NodeJS with —harmony
flag on, which enables most of the ES6 features. We have also installed following npm packages for you to use:
jquery, underscore, request, express, jade, shelljs, passport, http, sys, lodash, async, mocha, chai, sinon, sinon-chai, moment, connect, validator, restify, ejs, ws, co, when, helmet, wrench, brain, mustache, should, backbone, forever, debug
TypeScript(Node)
Running TypeScript 4.5.5 with Node 16 - Autocomplete is supportedYour code is compiled to JavaScript using tsc --strict
and then run using NodeJS with —harmony
flag on. We have also installed following npm packages for you to use:
jquery, underscore, request, express, jade, shelljs, passport, http, sys, lodash, async, mocha, chai, sinon, sinon-chai, moment, connect, validator, restify, ejs, ws, co, when, helmet, wrench, brain, mustache, should, backbone, forever, debug
PHP
Running PHP 7Don’t forget to wrap your code in <?php
and ?>
tags.
Python 2
Running Python 2.7 - Autocomplete is supportedWe have installed following pip packages for you to use:
numpy, scipy, pandas, sympy, nose, scikit-learn, enum34, requests, ipython.
Python 3
Running Python 3.7 - Autocomplete is supportedWe have installed following pip packages for you to use:
numpy, scipy, pandas, sympy, nose, scikit-learn, enum34, requests, ipython.
Swift
Running Swift 5.0We’re using Apple’s recently open sourced Swift implementation for Linux.
Ruby
Running Ruby 2.7.5We have installed the following gems for you to use:
rspec, minitest, httparty, faraday, excon.
Here is an example code for using RSpec:
require 'rspec/autorun' class Greet def print! 'HELLO' end end RSpec.describe Greet do it 'prints hello' do expect(Greet.new.print!).to eq('HELLO') end end
Rust
Running Rust 1.59Nothing to explain, it should probably work.
Scala
Running Scala 3.1.1You can name the object anything you want. But you should define def main(args: Array[String])
, like this:
object HelloWorld { def main(args: Array[String]) = println("Hello Scala!") }
Visual Basic .NET
Running VBNC 4.7Our VB.NET environment runs on top of the mono project’s implementation of the .NET runtime.
You can define multiple classes but one of them should have a Public Shared Sub Main()
.
Objective-C
Running GCC 5.5Since we don’t run Objective-C natively on OS X. We run it using GCC. Your code is compiled with:
gcc -I/usr/include/GNUstep -L/usr/lib/GNUstep -lobjc -lgnustep-base -Wall
We know this is not a perfect way to do it so we are open to any suggestions on how to run Obj-C better.
Perl
Running Perl 5.22Nothing to explain, it should probably work.
Erlang
Running Erlang 19Your solution should define the module as solution
and export a method named start
, like this:
-module(solution). -export([start/0]). start() -> io:fwrite("Hello").
Elixir
Running elixir 1.2You must define the module asSolution
with a method named start
, like this:
Code.compiler_options(ignore_module_conflict: true) defmodule Solution do def start() do IO.puts "Hello" end end
Also notice the first line Code.compiler_options(ignore_module_conflict: true)
which is needed by our system to work.
MySQL
Running MySQL 8Nothing to explain, it should probably work.
Bash
Running GNU Bash 4.3Your bash script is run on our servers as is.
PowerShell
Running Pash 7.0.0We don’t run PowerShell natively on Windows. But we use Pash which is an open-source implementation of PowerShell.
If something doesn’t work right, feel free to contact us.
Web
Web mode includes all of the popular web frameworks including React, Angular, Nextjs, Express, etc. You can also create a custom template with your own selection of NPM packages and a start script. Everyone in the interview pad is able to see the output in the embedded browser panel.
Realtime Terminal
The terminal is shared between all participants and they can see the output and run commands.
Are any of the languages outdated? Feel free to email us.