Skip to main content

Learn Adesh

Welcome. This page is the language overview and roadmap for the entire /learn course. Follow it top to bottom and you will go from never written code before to building real programs in Adesh — with every concept grounded in the language's own examples repository.

Not a beginner? Skip straight to Quick Start, or jump into the Learn by Examples catalog and read programs directly.


What is Adesh?​

Adesh (meaning command) is a modern programming language designed around one idea: turn a command into code. It combines:

  • a readable, beginner-friendly syntax that looks close to plain English
  • declarative typing that teaches you data modeling while you code
  • multiple execution targets — from a fast interpreter for learning to a native JIT (--njit) for native machine-code execution
  • compile-time memory safety with ownership and borrowing checks
  • a batteries-included standard library: Math, JSON, FS, HTTP, regex, time, crypto, and more

You do not need any prior programming experience. Each lesson below introduces one concept, then immediately shows you real Adesh code that uses it.


Course map​

#LessonYou will learnReal example it is built from
0Quick StartInstall, run your first programexamples/01_Basics/main.adesh
1Hello WorldProgram structure, print, stringsexamples/01_Basics/main.adesh
2Variableslet, mutation, typeof, arrays & objectsexamples/01_Basics/variable.adesh
3Operators & ExpressionsArithmetic, ==/===, ??, ?., spreadexamples/syntax/operators.adesh, examples/operators/strict_equality.adesh
4Conditionalsif/elif/else, comparisons, ternaryexamples/conditionals/elif.adesh
5Loopsfor ranges, while, break/continueexamples/01_Basics/loops.adesh, examples/loops/*
6Functionsfn, params, returns, recursion, closuresexamples/functions/01_basic_functions.adesh
7Higher-Order FunctionsCallbacks, factories, composition, curryingexamples/functions/02_higher_order.adesh
8Recursion & Multiple ReturnsSelf-calls, tail calls, tuple returns, fib/floydexamples/recursion/*, examples/fib/*, examples/real_world/02_test_multiple_returns.adesh
9CollectionsArrays, objects, map/filter/reduceexamples/arrays/comprehensive_array_demo.adesh, examples/basics/collections_demo.adesh
10Calculator ProjectBuild a complete app: ops, menus, historyexamples/functions/01_basic_functions.adesh
11Strings & TextInterpolation, templates, string methodsexamples/01_Basics/string.adesh, examples/syntax/test_template_literals.adesh
12Types & Type SystemAnnotations, numeric types, casting, tuplesexamples/arrays/comprehensive_array_demo.adesh, examples/arrays/tuple_examples.adesh, examples/operators/strict_equality.adesh
13Structs, Enums & Matchingstruct, enum, match, Option/Resultexamples/structures/ecommerce_example.adesh, examples/enum/payload_enum.adesh, examples/advanced_types/*
14Object-Oriented Programmingclass, inheritance, extend on, interfacesexamples/oop/class.adesh, examples/extend/01_basic_extend.adesh, examples/interfaces/01_basic_interfaces.adesh
15Error Handlingthrow/try/catch, defer, validationexamples/errors/error.adesh, examples/defer/resource_cleanup.adesh, examples/real_world/01_task_manager.adesh
16Memory Safety & OwnershipOwn, borrow, & refs, Arc, smart pointersexamples/memory/borrow_ok.adesh, examples/memory/borrow_fail.adesh, examples/pointers/tree_structure.adesh
17Manual Memory & unsafealloc/free, deref, allocatorsexamples/unsafe/manual_allocation.adesh, examples/memory_allocator/*
18Generics & Data Structuresfn<T>, HashMap, VecDeque, stacks, heapsexamples/generics/*, examples/Libraries/collections/*
19Modules & Importsimport, named imports, multi-file appsexamples/modules/imports.adesh
20Interactive Input & Timersinput(), options, setTimeout/intervalexamples/input/*, examples/timers/timers_combined.adesh
21Async, Concurrency & ParallelismThreads, channels, mutex, async/awaitexamples/Libraries/concurrency/*, examples/async/full_async_demo.adesh
22Testingtest fn, assert, assert_eq, --testexamples/testing/*
23The Standard Library TourMath, JSON, FS, regex, time, random, cryptoexamples/Libraries/* (394 files)
24Standard Library IIEncoding, compression, IO, env, processexamples/Libraries/encoding/*, compression/*, io/*, env/*, process/*
25Networking Deep DiveTCP, UDP, DNS, URL, TLS, WebSocketsexamples/Libraries/net/*, dns/*, url/*, tls/*, websocket/*
26Performance & Execution BackendsJIT/--njit, clock(), benchmarkingexamples/fib/*, examples/backends/*, examples/jit/*
27Capstone: Task ManagerBuild a real CLI app end-to-endexamples/real_world/01_task_manager.adesh

The 10-lesson core (lessons 1–10) is the same progression used by most programming courses: output → data → operations → decisions → repetition → functions → higher-order → recursion → collections → a complete project. Lessons 11–26 then take you through Adesh's own way of doing things — types, data modeling, OOP, errors, memory, concurrency, testing, the standard library, networking, and performance — before the capstone ties it all together.


How this course teaches​

Every lesson follows the same loop, and it is the loop used to build Adesh itself:

1. Read a concept → short, plain-English explanation
2. See a real example → code drawn from the official examples repository
3. See the output → every code sample shows its expected output below it
4. Run it → adesh run <file>.adesh
5. Change one thing → tweak a value, a condition, a loop bound
6. Observe the effect → watch what changed
7. Repeat

No memorization required. Adesh's documentation philosophy is the same as the language's: explicit over hidden, every concept with a runnable proof and its exact output spelled out.


Paths through the course​

Depending on who you are, start at a different place:

You are...Start with
Complete beginnerLesson 0 → 1 → 2 → … in order
You know another languageQuick Start then Types
You want to read code, not proseLearn by Examples
You want the deep referenceDocs — the full Language Guide
You want to contributeContributing

Why Adesh is a good language to learn programming with​

FeatureWhy it helps you learn
readable syntaxcode reads like instructions in English
clear semanticsfew hidden rules or surprises
strong compiler feedbackthe error messages tell you exactly what to fix
modern featurespatterns that transfer to Rust, TypeScript, Go, C#
fast executionyou see results immediately, even with --njit
memory safety for freeyou build safe habits from day one
batteries-included stdlibyou can build real tools (HTTP servers, JSON APIs, file apps) without leaving the language

What you will be able to do at the end​

By finishing the course, you will have written, run, and reasoned about:

  • a task manager CLI (Capstone)
  • an e-commerce order model (lesson 13)
  • a string/regex data cleaner (lessons 11 + 23)
  • a TLS-layered, JSON API server (lessons 21 + 23, from examples/Libraries/http/server.adesh)
  • concurrent worker programs with threads, channels, and parallel map (lesson 21)

And you will know enough programming fundamentals to read any Adesh program in the repository, and to learn any other language afterward.


When you finish the course​

Start simple, stay curious, and keep building. Adesh — Give the command. The machine obeys. 🚀