FAQ
Frequently asked questions about Soplang
General
What is Soplang?
Soplang is the Somali programming language. Its keywords and built-ins are in Somali (door, hawl, haddii, qor, …), so Somali speakers can learn programming in their own language. It supports both dynamic (door) and static (abn, qoraal, …) typing.
How does Soplang run my code?
Soplang is implemented in Rust. soplang fuli file.sop runs a program with the Cranelift JIT. soplang dhis file.sop -o app builds a standalone native program using bundled LLVM, a platform linker, and the Soplang runtime. Official 3.6 packages do not require a separate Rust or Clang installation to run or build programs. See CLI & REPL.
Is it open source?
Yes. Soplang is open source under the MIT License. The source is at github.com/soplang/soplang.
Installation & Setup
How do I install Soplang?
Download a prebuilt release from the downloads page, build it from source with Cargo, or run it with Docker. See the installation guide.
What file extension does Soplang use?
Use .sop for new programs. The CLI also accepts the compatible .so source extension.
Language Features
Does it support classes?
Yes. Classes are defined with qaab, created with cusub, can inherit with dhaxal, and use nafta for the current instance. See Classes. There are no interfaces.
Can I handle errors?
Yes. Use tuur to raise an error, tijaabi/qabo to catch it, and dhammee for guaranteed cleanup. See Error Handling.
Can I split my program into multiple files?
Yes, with keen "file.sop". See Modules.
Do I need semicolons?
No. Semicolons are optional statement separators. Both door x = 1 on its own line and door x = 1; qor(x); are valid.
Does Soplang have string interpolation?
Yes. qor(f"Da'da: {da}") interpolates a value; + also joins strings.