
Sindlish
A high-level programming language designed for the Sindhi-speaking communities.
Timeline
Ongoing
Role
Creator & Lead Developer
Team
Solo
Status
In-progressTechnology Stack
Key Challenges
- Designing a Native-language Syntax Parser
- Implementing a Bytecode Virtual Machine
- Building Hybrid Typing and Memory Systems
Key Learnings
- Compiler Design and Lexical Analysis
- Virtual Machine Architecture
- Language Theory and Parsing Techniques
Sindlish Programming Language
Overview
For decades, the programming world has been heavily dominated by the English language. This creates an unnecessary barrier to entry for millions of talented individuals who think and speak in Sindhi. Sindlish breaks that barrier, allowing developers to write professional software using the words they already know natively.
Key Features
- Native Keywords: Utilize words like
kaam(function),agar(if),lafz(string),adad(integer), andfaislo(boolean). - Hybrid Typing System: Supports both dynamic typing and static type annotations for robust software development.
- Modern Collections: Built-in support for lists (
fehrist), dictionaries (lughat), and sets (majmuo). - Crash-Proof Error Handling: Employs a Result system instead of traditional try/catch mechanisms, allowing safe unwrapping of values using soft fallbacks and explicit panics.
- Bytecode Virtual Machine: Fast and efficient execution environment backend.
Why I Built This
I wanted to empower the local community to learn computational logic without the prerequisite of mastering English terminology. Sindlish is designed to offer a familiar native-language experience while maintaining a robust, modern syntax and high-performance execution.
Design Choice: Why Roman Sindhi?
Why Not Literal Sindhi Script?
While Sindhi has a rich literary tradition with its own script (Sindhi script), I chose Roman Sindhi for several practical reasons:
- Accessibility: Not all developers have Sindhi script input methods readily available on their machines, especially in programming environments.
- Keyboard Compatibility: Roman Sindhi can be typed using standard QWERTY keyboards without specialized input methods.
- Cross-Platform Support: Ensures the language works seamlessly across different operating systems and development tools without encoding issues.
- Lower Barrier to Entry: Makes it easier for Sindhi speakers learning to program, as they can start coding immediately without technical setup overhead.
Why Roman Sindhi Over English?
The core mission of Sindlish is to make programming accessible in the native language Sindhi speakers think in. Roman Sindhi serves this purpose while maintaining practicality:
- Linguistic Familiarity: Keywords like
kaam,agar,lafz, andadadare recognizable to Sindhi speakers in their phonetic form. - Cultural Preservation: Enables native-language programming without requiring users to maintain separate script systems.
- Future Extensibility: If the community demands, Sindhi script support can be added as a syntax layer without changing the core language design.
This approach balances linguistic authenticity with modern development practicality.
Tooling & Documentation
Sindlish provides interactive REPL capabilities, file execution via script.sd, and a built-in docs command in its CLI for rapid terminal-based reference. Comprehensive online documentation is also available for full language specifications.
