Ka Qeybqaado SoplangContribution guidelines

Introduction to Soplang

Welcome to the official documentation for Soplang, a Somali-first programming language that makes coding intuitive, inclusive, and accessible.

What is Soplang?

Soplang (short for Somali Programming Language) is a culturally-rooted programming language designed and developed by Mr Sharafdin (Sharafdin Yusuf Sharafdin). It allows developers to write code in native Somali syntax using familiar keywords, expressions, and structures — making programming feel natural and accessible.

Language Goals

  • Simplicity: Clean, easy-to-read syntax that makes programming concepts clear and approachable.
  • Education: Built with learners in mind, making programming accessible to students and beginners.
  • Localization: Fully Somali-first keywords and structures, embracing Somali language and culture in programming.
  • Accessibility: Removes English-language barriers, opening programming to a wider Somali-speaking audience.

Current Version: Soplang 2.0

Key Features

  • Dual Typing: door for dynamic, and abn, jajab, qoraal etc. for static typing flexibility.
  • Object-Oriented Programming: Support for fasalka, ka_dhaxal, cusub, and nafta.
  • Control Flow: Clean syntax for conditionals (haddii, haddii_kale, ugudambeyn) and loops (kuceli, intay).
  • Error Handling: With isku_day and qabo for robust error management.
  • Package Manager: Coming soon via the sop CLI.
  • Standard Library: Includes Math, File System, Network, and Date/Time modules.
  • Interpreter: Python-based (compiler planned in the future).

Example Code

example.sop
// Hello World
qor("Hello, World!")

// Variables
door name = "Faarax"
qoraal title = "Soplang Developer"
abn age = 10

qor("Name: " + name)
qor("Title: " + title)
qor("Age: " + qoraal(age))

// Function
hawl greet(person) {
    celi "Hello, " + person + "!"
}
qor(greet(name))

// If/Else
haddii (age > 18) {
    qor("You are an adult")
} ugudambeyn {
    qor("You are underage")
}

// For Loop
kuceli (i 1 ilaa 5) {
    qor(i)
}

// While Loop
abn counter = 5
intay (counter > 0) {
    qor(counter)
    counter = counter - 1
}

qor("Done!")

Tooling

CLI Tool (sop)

Run code, manage projects, and handle packages.

VS Code Extension

Syntax highlighting, inline docs, and code execution.

REPL

Interactive terminal environment with history and syntax highlighting.

sopScript (Browser Runtime)

Run Soplang directly in the browser for demos and learning.

Getting Started

Community & Contribution

Soplang is open-source under the MIT License. Everyone is welcome to contribute to its development.