Skip to content

لغة الضاد… للويب كلّه

Ḍād is a programming language with Arabic keywords. The interface, the server and the database live in one file, and the compiler splits them for you.

Phase 1 of 5: dad run works

A whole app in one file

جدول مهمة {
  عنوان: نص
  منجزة = خطأ
}

خادم دالة أضف(عنوان: نص) = مهمة.أنشئ(عنوان: عنوان)

مكون قائمة_المهام() {
  حالة جديدة = ""
  عمود {
    حقل(جديدة، تلميح: "مهمة جديدة…")
    زر("أضف") { أضف(جديدة) }
  }
}
جدول
A database table. Ḍād creates the SQLite schema and a typed API for it.
خادم دالة
A function that runs on the server. The interface calls it like any local function.
مكون
A reactive interface component, right-to-left by default.

Principles, one keyword each

ثابت
Immutable by default. Values never change unless you declare them with متغير.
؟
No surprise nulls. A value that may be missing says so in its type, as in نص؟.
طابق
Every case handled. The compiler rejects a match that forgets a case.
خادم
No fetch, no async. Server calls look local; the compiler adds the waiting.
٠١٢
Arabic first. Arabic digits and punctuation work everywhere, and diacritics never break a name.
٣٩
A small core. 39 keywords in total. Interface elements are ordinary functions.

Where it stands

  1. SpecificationKeywords, grammar and the Arabic-aware lexer
  2. Core languageParser and dad run done; type checker next
  3. InterfaceComponents and reactive state
  4. Server and dataServer functions and SQLite tables
  5. ToolingVS Code extension and web playground done; language server next
  6. InstallersmacOS, Windows and Linux

Read the full roadmap Read the specification