Supported Languages & Execution Guide
Everything you need to know about the languages CoderKit supports and how to use them.
๐ Supported Languages Overview
CoderKit supports 15+ programming languages across multiple domains:
| Language | Best For | Status | Runtime | |----------|----------|--------|---------| | ๐ Python | Data science, scripting, learning | โ Full support | Python 3.10 | | โ Java | OOP, Android, enterprise | โ Full support | OpenJDK 8+ | | ๐ JavaScript | Web, frontend, interactive | โ Full support | Rhino/V8 | | ๐จ HTML/CSS | Web pages, styling | โ Full support | WebView | | ๐ง C | Systems, embedded, competitive | โ Full support | Clang | | โ C++ | Systems, algorithms, games | โ Full support | Clang | | ๐ฏ Go | Backend, cloud, DevOps | โ Full support | Go 1.20 | | ๐ Groovy | JVM scripting, testing | โ Full support | OpenJDK | | ๐ฎ Clojure | Functional, JVM | โ Full support | OpenJDK | | ๐พ SQL | Databases, queries | โ Full support | SQLite | | ๐ Bash | Shell scripting, automation | โ Full support | Busybox | | ๐ JSON | Data format, config | โ Full support | Syntax highlighting | | ๐ท๏ธ XML | Markup, config | โ Full support | Syntax highlighting | | ๐ด PHP | Server-side web (coming soon) | ๐ In development | PHP 8.0 | | ๐ Ruby | Web, scripting (coming soon) | ๐ In development | Ruby 3.0 |
๐ Python
What is Python?
- Beginner-friendly syntax (reads like English)
- Powerful (data science, AI, web backends)
- Versatile (can do anything)
Python Capabilities in CoderKit
Execution:
- โ Run Python scripts
- โ Interactive console (REPL)
- โ Real-time output streaming
- โ Handle user input (input() function)
Libraries Pre-installed:
- Data Science: NumPy, Pandas, SciPy, Scikit-learn
- Web: Flask, Django, Requests, BeautifulSoup
- Utilities: Pillow, Matplotlib (PNG export), Regex
- Math: SymPy, NetworkX
Code Example:
import random
def guess_number():
secret = random.randint(1, 100)
guesses = 0
while True:
guess = int(input("Guess a number (1-100): "))
guesses += 1
if guess == secret:
print(f"โ Correct! You guessed in {guesses} tries!")
break
elif guess < secret:
print("โ Too low, try again!")
else:
print("โ Too high, try again!")
if __name__ == "__main__":
guess_number()
Run in CoderKit:
โถ Run
โ Guess a number (1-100): 50
โ Too low, try again!
โ Guess a number (1-100): 75
โ Too high, try again!
โ Guess a number (1-100): 62
โ Correct! You guessed in 3 tries!
Python Courses in CoderKit
- Python 101 - Variables, loops, functions (free)
- Python 201 - OOP, file I/O, libraries
- Python 301 - Advanced patterns, decorators, generators
- Python 401 - Async, networking, web apps
Python Tips
- Start simple - Hello World, then add features
- Use libraries - NumPy, Pandas make data work easier
- Interactive mode - Test snippets before using in scripts
- Error messages - Python's are usually helpful
โ Java
What is Java?
- Object-oriented (everything is a class)
- Compiled then interpreted (JVM runs code)
- Enterprise standard (banks, corporations use it)
- Android foundation (mobile apps)
Java Capabilities in CoderKit
Execution:
- โ Compile to bytecode
- โ Run on embedded JVM
- โ Full OOP support
- โ Standard library (java.lang, java.util, etc.)
Code Example:
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter first number: ");
double a = sc.nextDouble();
System.out.print("Enter operator (+, -, *, /): ");
String op = sc.next();
System.out.print("Enter second number: ");
double b = sc.nextDouble();
double result = calculate(a, b, op);
System.out.println("Result: " + result);
}
static double calculate(double a, double b, String op) {
return switch(op) {
case "+" -> a + b;
case "-" -> a - b;
case "*" -> a * b;
case "/" -> a / b;
default -> 0;
};
}
}
Run in CoderKit:
โถ Run
Enter first number: 10
Enter operator (+, -, *, /): *
Enter second number: 5
Result: 50.0
Java Courses in CoderKit
- Java 101 - Basics, classes, objects (free)
- Java 201 - Inheritance, polymorphism, generics
- Java 301 - Advanced patterns, streams, threading
Java Tips
- Use public static void main - Standard entry point
- Compile errors first - Fix syntax before running
- Use Scanner - For reading user input
- Import libraries - import java.util.*, etc.
๐ JavaScript & Web
What is JavaScript?
- Run in browsers (or on servers with Node.js)
- Interactive web (buttons, forms, animations)
- ES6+ modern (arrow functions, async/await, destructuring)
JavaScript in CoderKit
Execution:
- โ ES6+ syntax (arrow functions, const/let, template literals)
- โ DOM manipulation (document.querySelector, etc.)
- โ Event handling (click, input, submit)
- โ Modern APIs (fetch, promises, async/await)
- โ Console logging (debugging)
HTML/CSS/JS Integration:
<!DOCTYPE html>
<html>
<head>
<title>Todo App</title>
<style>
body { font-family: Arial; }
.done { text-decoration: line-through; }
</style>
</head>
<body>
<h1>My Todo List</h1>
<input id="todoInput" type="text" placeholder="Add a task...">
<button onclick="addTodo()">Add</button>
<ul id="todoList"></ul>
<script>
let todos = [];
function addTodo() {
const input = document.getElementById('todoInput');
const text = input.value.trim();
if (text) {
todos.push(text);
renderTodos();
input.value = '';
}
}
function renderTodos() {
const list = document.getElementById('todoList');
list.innerHTML = todos
.map((todo, i) =>
`<li>
<span>${todo}</span>
<button onclick="removeTodo(${i})">Delete</button>
</li>`
).join('');
}
function removeTodo(i) {
todos.splice(i, 1);
renderTodos();
}
</script>
</body>
</html>
See Live Preview:
[Editor on left] [Preview on right with Todo app]
Type in input โ Click Add โ Todo appears in list
Click Delete โ Todo removed
React & Vue Support
CoderKit supports modern frameworks:
React Example:
import React, { useState } from 'react';
export default function Counter() {
const [count, setCount] = useState(0);
return (
<div style={{ textAlign: 'center', padding: '20px' }}>
<h1>Counter: {count}</h1>
<button onClick={() => setCount(count + 1)}>
Increment
</button>
</div>
);
}
Run Preview โ See interactive counter
Web Courses
- Web 101 - HTML, CSS, JavaScript basics (free)
- Web 201 - DOM, events, responsive design
- Web 301 - React, Vue, modern frameworks
Web Tips
- Live preview - See changes in real-time
- Developer console - See console.log() output
- Mobile responsive - Test on different sizes
- Inspect elements - Right-click โ Inspect (in preview)
๐ง C / C++
What is C?
- Low-level (memory management, pointers)
- Fast (compiled to native code)
- Systems programming (OS, embedded, games)
What is C++?
- C with objects (OOP on top of C)
- Modern C++ (C++17/20 features in CoderKit)
- Performance (game engines, finance systems)
C/C++ Execution
Code Example (C):
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
printf("Fibonacci sequence:\n");
for (int i = 0; i < 10; i++) {
printf("fib(%d) = %d\n", i, fibonacci(i));
}
return 0;
}
Output:
Fibonacci sequence:
fib(0) = 0
fib(1) = 1
fib(2) = 1
fib(3) = 2
...
fib(9) = 34
C++ Example (OOP):
#include <iostream>
using namespace std;
class Rectangle {
private:
double width, height;
public:
Rectangle(double w, double h) : width(w), height(h) {}
double getArea() { return width * height; }
double getPerimeter() { return 2 * (width + height); }
};
int main() {
Rectangle rect(5, 3);
cout << "Area: " << rect.getArea() << endl;
cout << "Perimeter: " << rect.getPerimeter() << endl;
return 0;
}
C/C++ Courses
- C 101 - Basics, pointers, memory
- C 201 - Data structures, algorithms
C/C++ Tips
- Memory management - Free allocated memory
- Compilation - C/C++ must compile before running
- Debugging - Check compiler errors carefully
- Performance - Competitive programming advantage
๐ฏ Go
What is Go?
- Simple (designed for simplicity & clarity)
- Fast (compiled to native)
- Concurrent (goroutines for async)
- Cloud native (Docker, Kubernetes written in Go)
Go Example
package main
import (
"fmt"
"time"
)
func worker(id int, jobs <-chan int, results chan<- int) {
for job := range jobs {
fmt.Printf("Worker %d processing job %d\n", id, job)
time.Sleep(time.Second)
results <- job * 2
}
}
func main() {
jobs := make(chan int, 5)
results := make(chan int, 5)
// Start 2 workers
for w := 1; w <= 2; w++ {
go worker(w, jobs, results)
}
// Send 5 jobs
for j := 1; j <= 5; j++ {
jobs <- j
}
close(jobs)
// Collect results
for r := 1; r <= 5; r++ {
fmt.Printf("Result: %d\n", <-results)
}
}
Go Courses
- Go 101 - Basics, goroutines
- Go 201 - Web servers, APIs
๐พ SQL & Databases
What is SQL?
- Query language (talk to databases)
- CRUD operations (Create, Read, Update, Delete)
- Powerful (filtering, joining, aggregating)
SQL Example
-- Create table
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER,
email TEXT
);
-- Insert data
INSERT INTO users (name, age, email) VALUES
('Alice', 28, 'alice@example.com'),
('Bob', 35, 'bob@example.com');
-- Query data
SELECT name, age FROM users WHERE age > 30;
-- Update data
UPDATE users SET age = 29 WHERE name = 'Alice';
-- Delete data
DELETE FROM users WHERE id = 1;
SQL in CoderKit
- SQLite (embedded database)
- Interactive (write queries, see results instantly)
- Visualization (see tables as they change)
SQL Courses
- SQL 101 - Basics, queries, tables
๐ Other Languages
Groovy
- JVM language (Java compatibility)
- Dynamic typing (easier than Java)
- Great for scripting
Clojure
- Functional programming
- Lisp dialect (parentheses-heavy)
- Immutability-first
Bash
- Shell scripting
- System administration
- Command automation
JSON & XML
- Data formats (not runnable)
- Syntax highlighting only
- Validation tools
๐ Language Runtime Management
Download Runtimes
On first use:
- Select language in IDE
- "Python not installed" โ Tap Download
- Wait 2-5 minutes (WiFi recommended)
- ~150-300MB per runtime
Manage Runtimes:
- Settings โ Languages โ Installed
- See which languages downloaded
- Delete unused languages (free storage)
- Re-download anytime
Language Limitations
Not Supported Yet:
- ๐ด PHP (coming Q2 2026)
- ๐ด Ruby (coming Q2 2026)
- ๐ด Swift (limited ARM support)
- ๐ด Kotlin (same as Java, use Java instead)
Offline Execution:
- โ Python, Java, C/C++, Go, Bash (fully offline)
- โ JavaScript (offline via bundled engine)
- โ HTML/CSS (offline via WebView)
- โ ๏ธ Web frameworks (require npm packagesโpartial offline)
๐ก Choosing a Language
For Beginners
Start with: Python
Why: Easy syntax, powerful, great for learning fundamentals
Path: Python 101 โ 201 โ 301 โ Choose specialization
For Web Development
Start with: JavaScript + HTML/CSS
Why: Required for frontend, fun to see results immediately
Path: Web 101 โ 201 โ React/Vue specialization
For Computer Science
Start with: Python (fundamentals) โ Java (OOP) โ C (systems)
Why: Progressive complexity, builds solid foundation
Path: Python โ Java โ C track
For Competitive Programming
Start with: Python (fast development) or C++ (performance)
Why: Python for algorithms, C++ for micro-optimizations
Path: Python 101 โ Algorithms course โ Practice problems
๐ Troubleshooting
Language Download Fails
- Check internet connection
- Try again (servers might be busy)
- Use WiFi instead of cellular
- Check storage space available
Code Won't Run - Syntax Error
- Red underline shows error location
- Read error message
- Check language-specific syntax rules
- Review examples in lessons
"Language Not Installed"
- Download runtime in Settings โ Languages
- Or waitโapp will prompt on first use
- Can't install? Delete other runtimes to free space
Slow Execution
- Python/Java: Normal for interpreted/JVM languages
- C/C++: Should be fast; check code efficiency
- JavaScript: Browsers are slower; use modern syntax
๐ Next Steps
- โ Choose your language? Start coding!
- ๐ Want to learn properly? Jump to Learn Mode
- ๐ Ready for challenges? Practice problems await
Which language calls to you? ๐