<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mr Sharafdin</title>
    <description>The latest articles on DEV Community by Mr Sharafdin (@sharafdin).</description>
    <link>https://dev.to/sharafdin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1465235%2F1c8e3c19-76c9-4781-bfbc-c2e232029bda.jpeg</url>
      <title>DEV Community: Mr Sharafdin</title>
      <link>https://dev.to/sharafdin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sharafdin"/>
    <language>en</language>
    <item>
      <title>How I Built Soplang — A Programming Language Inspired by Somali (And Why You Don’t Start From Scratch)</title>
      <dc:creator>Mr Sharafdin</dc:creator>
      <pubDate>Sat, 19 Apr 2025 13:47:44 +0000</pubDate>
      <link>https://dev.to/sharafdin/how-i-built-soplang-a-programming-language-inspired-by-somali-and-why-you-dont-start-from-5fh5</link>
      <guid>https://dev.to/sharafdin/how-i-built-soplang-a-programming-language-inspired-by-somali-and-why-you-dont-start-from-5fh5</guid>
      <description>&lt;p&gt;Have you ever dreamed of creating your own programming language? I did — and I followed through with it.&lt;/p&gt;

&lt;p&gt;It’s called &lt;a href="https://soplang.org" rel="noopener noreferrer"&gt;&lt;strong&gt;Soplang&lt;/strong&gt;&lt;/a&gt;, and it’s a language designed with simplicity, education, and the Somali language in mind. But building a programming language isn't as mysterious as it seems — and you don't need to start from raw machine code.&lt;/p&gt;

&lt;p&gt;In this post, I’ll walk you through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What a programming language really is,&lt;/li&gt;
&lt;li&gt;How they’re built (step by step),&lt;/li&gt;
&lt;li&gt;Why most languages are built &lt;em&gt;on top&lt;/em&gt; of others,&lt;/li&gt;
&lt;li&gt;And the lessons I learned building Soplang — especially the pain of designing grammar in Somali.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What &lt;em&gt;Is&lt;/em&gt; a Programming Language?
&lt;/h2&gt;

&lt;p&gt;At its core, a programming language is just a way to give instructions to a computer. But computers only understand &lt;strong&gt;machine code&lt;/strong&gt; — binary ones and zeros. So we create &lt;strong&gt;human-friendly languages&lt;/strong&gt; that get translated into something the machine can actually execute.&lt;/p&gt;

&lt;p&gt;A typical language has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Syntax&lt;/strong&gt;: the rules of how code is written (like grammar in English).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantics&lt;/strong&gt;: the meaning of that code (what it &lt;em&gt;does&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A compiler or interpreter&lt;/strong&gt;: a program that translates your code into something executable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standard library&lt;/strong&gt;: built-in functionality like math, file access, networking, etc.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How Are Programming Languages Built?
&lt;/h2&gt;

&lt;p&gt;Let’s break it down into the essential building blocks:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Lexing &amp;amp; Parsing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You take the raw code (&lt;code&gt;door x = 5&lt;/code&gt;) and turn it into tokens: words like &lt;code&gt;door&lt;/code&gt;, &lt;code&gt;x&lt;/code&gt;, &lt;code&gt;=&lt;/code&gt;, &lt;code&gt;5&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Then, you parse those tokens into an &lt;strong&gt;Abstract Syntax Tree (AST)&lt;/strong&gt; — a tree structure that represents what the code means.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Interpreting or Compiling&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once you have the AST, you can either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interpret it&lt;/strong&gt;: directly execute it line by line (like Python does),&lt;/li&gt;
&lt;li&gt;Or &lt;strong&gt;Compile it&lt;/strong&gt;: translate the whole thing into another language or machine code (like Rust or C++).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Runtime / Standard Library&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This is the toolbox for your language: math functions, file I/O, networking, etc. Without this, the language can’t do much.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Tooling&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once your language works, you still need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A REPL (interactive shell),&lt;/li&gt;
&lt;li&gt;A CLI tool to run code,&lt;/li&gt;
&lt;li&gt;An editor plugin (e.g. VS Code extension),&lt;/li&gt;
&lt;li&gt;A debugger, linter, formatter — the whole ecosystem.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For &lt;a href="https://github.com/soplang/soplang" rel="noopener noreferrer"&gt;&lt;strong&gt;Soplang&lt;/strong&gt;&lt;/a&gt;, the first version includes a Python-based interpreter, an extended standard library, and we’re building a Rust-based compiler and a browser version (&lt;code&gt;sopScript&lt;/code&gt;) next.&lt;/p&gt;




&lt;h2&gt;
  
  
  Every Language Stands on the Shoulders of Another
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Almost every major language you know was built using &lt;strong&gt;another&lt;/strong&gt; language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; was written in &lt;strong&gt;C&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript (V8 engine)&lt;/strong&gt; is written in &lt;strong&gt;C++&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rust&lt;/strong&gt; was first prototyped in &lt;strong&gt;OCaml&lt;/strong&gt;, then rewritten in Rust.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Go&lt;/strong&gt; was bootstrapped with &lt;strong&gt;C&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt; compiles to &lt;strong&gt;JavaScript&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Even &lt;strong&gt;C&lt;/strong&gt; came from &lt;strong&gt;B&lt;/strong&gt;, which came from &lt;strong&gt;BCPL&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So when I started &lt;a href="https://github.com/soplang/soplang" rel="noopener noreferrer"&gt;&lt;strong&gt;Soplang&lt;/strong&gt;&lt;/a&gt;, I used &lt;strong&gt;Python&lt;/strong&gt; to build the first interpreter. It let me move fast, prototype quickly, and focus on language design. Later, we’re switching to a &lt;strong&gt;Rust-based compiler&lt;/strong&gt; for better performance and safety.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Using another language to build your own isn’t cheating — it’s the standard.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Lessons From Designing Soplang’s Grammar (It Was Painful)
&lt;/h2&gt;

&lt;p&gt;One of the most surprising challenges I faced was &lt;strong&gt;choosing the right grammar and keywords&lt;/strong&gt; — especially because Soplang is designed with &lt;strong&gt;Somali&lt;/strong&gt; in mind.&lt;/p&gt;

&lt;p&gt;At first, I used &lt;code&gt;keyd&lt;/code&gt; for variables — it means “storage.” Technically correct, but it didn’t feel natural.&lt;/p&gt;

&lt;p&gt;After some testing and feedback, I changed it to &lt;code&gt;door&lt;/code&gt;, a short form of &lt;strong&gt;doorsoome&lt;/strong&gt;, meaning “something that changes.” That captured the real purpose of a variable better, and it was shorter and cleaner.&lt;/p&gt;

&lt;p&gt;But that process repeated for &lt;em&gt;every&lt;/em&gt; keyword:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What should &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;, &lt;code&gt;print&lt;/code&gt;, &lt;code&gt;function&lt;/code&gt; be in Somali?&lt;/li&gt;
&lt;li&gt;Should the syntax look more like Python or something completely new?&lt;/li&gt;
&lt;li&gt;Should I favor readability or brevity?&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Language design isn’t just technical — it’s cultural and linguistic too.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The Future of Soplang
&lt;/h2&gt;

&lt;p&gt;Soplang is still evolving. Here’s what’s coming in &lt;strong&gt;Soplang 2.0&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A new, clean grammar specification.
&lt;/li&gt;
&lt;li&gt;A Python interpreter and a Rust-based compiler.
&lt;/li&gt;
&lt;li&gt;A CLI tool (&lt;a href="https://github.com/soplang/sop" rel="noopener noreferrer"&gt;&lt;code&gt;sop&lt;/code&gt;&lt;/a&gt;) to run and manage packages.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sopScript&lt;/code&gt;: Soplang running in the browser.
&lt;/li&gt;
&lt;li&gt;A full standard library: math, file I/O, networking, date/time.
&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;VS Code extension&lt;/strong&gt; with auto-completion, syntax highlighting, and inline docs.
&lt;/li&gt;
&lt;li&gt;A new &lt;a href="https://soplang.org" rel="noopener noreferrer"&gt;website&lt;/a&gt; and &lt;a href="https://soplang.org/docs" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Building a programming language is like creating your own universe. You define the rules, the words, the behaviors. It’s hard — but deeply rewarding.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You don’t need to be a compiler expert to start. You just need a goal, a little curiosity, and the patience to make a lot of design decisions.&lt;/p&gt;

&lt;p&gt;Whether you're thinking about building your own language or just curious how it’s done — I hope &lt;a href="https://github.com/soplang/soplang" rel="noopener noreferrer"&gt;&lt;strong&gt;Soplang&lt;/strong&gt;&lt;/a&gt; inspires you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mr Sharafdin.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>soplang</category>
      <category>opensource</category>
      <category>somalia</category>
    </item>
    <item>
      <title>Soplang 2.0 Is Almost Here — A Somali-first Programming Language Nears Major Release</title>
      <dc:creator>Mr Sharafdin</dc:creator>
      <pubDate>Fri, 18 Apr 2025 13:40:48 +0000</pubDate>
      <link>https://dev.to/sharafdin/soplang-20-is-almost-here-a-somali-first-programming-language-nears-major-release-37ne</link>
      <guid>https://dev.to/sharafdin/soplang-20-is-almost-here-a-somali-first-programming-language-nears-major-release-37ne</guid>
      <description>&lt;p&gt;The programming language landscape is about to welcome a fresh and culturally grounded addition: &lt;strong&gt;Soplang&lt;/strong&gt;, a Somali-first programming language, is preparing to launch its long-awaited 2.0 release. Designed with native Somali syntax, dual typing, and full developer tooling, Soplang 2.0 is shaping up to be more than just a language — it's an ecosystem.&lt;/p&gt;

&lt;p&gt;Initially released as a minimalist interpreted language, Soplang has evolved into a feature-rich environment intended to make software development more accessible to Somali-speaking developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Soplang?
&lt;/h2&gt;

&lt;p&gt;Soplang is a general-purpose programming language built around Somali linguistic conventions. Its core syntax reflects Somali words — like &lt;code&gt;door&lt;/code&gt; for variable declarations, &lt;code&gt;haddii&lt;/code&gt; for conditionals, and &lt;code&gt;howl&lt;/code&gt; for functions — making it more intuitive for native speakers.&lt;/p&gt;

&lt;p&gt;Beyond the syntax, Soplang includes many of the features developers expect from a modern language: object-oriented programming, static typing, module support, and error handling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Soplang 2.0: What’s New?
&lt;/h2&gt;

&lt;p&gt;The upcoming 2.0 release is a full revamp that significantly expands language capabilities and introduces powerful development tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Language Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dual Typing System&lt;/strong&gt;: Support for both static and dynamic typing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Class System&lt;/strong&gt;: OOP via &lt;code&gt;fasalka&lt;/code&gt;, inheritance with &lt;code&gt;ka_dhaxal&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured Control Flow&lt;/strong&gt;: Including &lt;code&gt;haddii&lt;/code&gt;, &lt;code&gt;celi&lt;/code&gt;, &lt;code&gt;iska_joog&lt;/code&gt;, and loop constructs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling&lt;/strong&gt;: With &lt;code&gt;isku_day&lt;/code&gt;/&lt;code&gt;qabo&lt;/code&gt; (try/catch) semantics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Soplang’s syntax is backed by a formal EBNF grammar, implemented fully in the interpreter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Expanded Standard Library
&lt;/h2&gt;

&lt;p&gt;Soplang 2.0 ships with a more complete standard library:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Math Module&lt;/strong&gt;: Functions for matrix operations, vectors, and basic statistics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File I/O&lt;/strong&gt;: Somali-named file handlers like &lt;code&gt;faylka_fur&lt;/code&gt;, &lt;code&gt;faylka_qor&lt;/code&gt;, and &lt;code&gt;faylka_xir&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Networking&lt;/strong&gt;: Basic HTTP functionality using &lt;code&gt;shabakad_codso&lt;/code&gt; and &lt;code&gt;shabakad_jawaab&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Date/Time&lt;/strong&gt;: Native date manipulation in Somali syntax&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to keep everything practical while preserving linguistic clarity and accessibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tooling &amp;amp; Developer Experience
&lt;/h2&gt;

&lt;p&gt;Tooling has been a major focus for Soplang 2.0, and it shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VS Code Extension&lt;/strong&gt;: Includes syntax highlighting, inline docs, and code suggestions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;REPL&lt;/strong&gt;: Command-line interface with history and syntax coloring&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Browser Runtime (&lt;code&gt;sopScript&lt;/code&gt;)&lt;/strong&gt;: For embedding Soplang in web applications and learning platforms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CLI Tool (&lt;code&gt;sop&lt;/code&gt;)&lt;/strong&gt;: Manage packages, run programs, and handle project scaffolding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a level of polish rarely seen in small-language ecosystems — a promising sign of future growth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Website &amp;amp; Docs
&lt;/h2&gt;

&lt;p&gt;The official website is now live at &lt;a href="https://soplang.org" rel="noopener noreferrer"&gt;soplang.org&lt;/a&gt;. You’ll find full documentation, language reference, community links, and project updates — all aligned with the language's mission to be educational, accessible, and community-driven.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;The current focus is on finalizing the Python-based interpreter and testing the tooling across platforms. A Rust-based compiler is on the roadmap for future versions, bringing faster performance and system-level capabilities.&lt;/p&gt;

&lt;p&gt;According to the team, the 2.0 beta release is expected within the next 4–6 weeks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why It Matters
&lt;/h2&gt;

&lt;p&gt;Soplang is part of a growing trend toward culturally contextual programming languages. For Somali-speaking learners and developers, this offers an easier entry point into coding — no translation required. For educators, it’s a new tool to make computer science more accessible.&lt;/p&gt;

&lt;p&gt;And for the wider tech community, it’s a reminder: programming doesn't need to be English-only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn More
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/soplang/soplang" rel="noopener noreferrer"&gt;github.com/soplang/soplang&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website: &lt;a href="https://soplang.org" rel="noopener noreferrer"&gt;soplang.org&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Have thoughts on culturally localized programming? Seen similar efforts in your own region? Drop a comment below and let’s talk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mr Sharafdin.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>soplang</category>
      <category>opensource</category>
      <category>somalia</category>
    </item>
    <item>
      <title>Introducing Soplang: A Somali Programming Language</title>
      <dc:creator>Mr Sharafdin</dc:creator>
      <pubDate>Sun, 19 May 2024 18:45:09 +0000</pubDate>
      <link>https://dev.to/sharafdin/the-remote-revolution-how-work-from-home-is-reshaping-our-lives-and-economy-49p1</link>
      <guid>https://dev.to/sharafdin/the-remote-revolution-how-work-from-home-is-reshaping-our-lives-and-economy-49p1</guid>
      <description>&lt;h2&gt;
  
  
  1. Inspiration and Early Beginnings
&lt;/h2&gt;

&lt;p&gt;I first started thinking about creating a programming language called &lt;strong&gt;Soplang in February 2023&lt;/strong&gt;. My main motivation was to bridge the gap for Somali speakers learning to code. The idea of &lt;strong&gt;writing code in Somali&lt;/strong&gt; felt both ambitious and exciting — it could lower barriers for beginners and seasoned developers alike.&lt;/p&gt;

&lt;p&gt;By &lt;strong&gt;October 2023&lt;/strong&gt;, I had a working version ready for release. Although it wasn’t a fully standalone language, this &lt;strong&gt;initial Python-based implementation&lt;/strong&gt; laid the foundation for what Soplang could become. &lt;strong&gt;Soplang is also the first known programming language specifically crafted for Somali speakers,&lt;/strong&gt; making it a landmark effort to integrate technology with the Somali language.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. What is Soplang?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Soplang&lt;/strong&gt; stands for Somali &lt;strong&gt;(So) Programming (P) Language (Lang).&lt;/strong&gt; It features a &lt;strong&gt;Somali-based syntax&lt;/strong&gt; so that common programming constructs — like declaring variables, writing functions, or handling conditionals — feel more natural for Somali speakers. The goal is to make coding more intuitive, especially for those who may find English-based languages challenging.&lt;/p&gt;

&lt;p&gt;Even at this early stage, Soplang already supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Variables&lt;/strong&gt; with the keyword keyd&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conditionals&lt;/strong&gt; (haddii, haddii_kale, kale)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loops&lt;/strong&gt; (ku_celi for loops and inta_ay for while loops)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Functions&lt;/strong&gt; (shaqo to define, soo_celi to return)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lists&lt;/strong&gt; with built-in functions for appending, popping, and more&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Why I Created It
&lt;/h2&gt;

&lt;p&gt;One core inspiration is the idea of &lt;strong&gt;“Dhis software adigoo adeegsanaya afkaaga hooyo,”&lt;/strong&gt; which translates to &lt;strong&gt;“Build software using your mother tongue.”&lt;/strong&gt; I believe that allowing people to &lt;strong&gt;code in Somali&lt;/strong&gt; empowers them to focus on logic rather than translating English keywords in their heads. Additionally, I’m passionate about &lt;strong&gt;developing the Somali&lt;/strong&gt; language further, and Soplang is my way of contributing to that growth in the tech world.&lt;/p&gt;

&lt;p&gt;There are many established languages — Python, JavaScript, Rust, and more — but they largely rely on &lt;strong&gt;English&lt;/strong&gt;. By introducing &lt;strong&gt;Somali-based keywords&lt;/strong&gt; and documentation, I hope Soplang can foster a more inclusive environment for learners who might otherwise feel discouraged or overwhelmed by language barriers.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The Current State of Soplang
&lt;/h2&gt;

&lt;p&gt;Right now, Soplang:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Runs on top of Python&lt;/strong&gt; (it is essentially interpreted by a Python script).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lacks a dedicated package manager,&lt;/strong&gt; meaning external libraries or modules aren’t as easy to install.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is open to syntax improvements&lt;/strong&gt; — I’m considering changes that will refine how variables, loops, and function calls look.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Despite these limitations, Soplang is fully capable of running simple programs and demonstrating how programming in Somali can work. Here’s a quick sample:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;keyd&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="nx"&gt;keyd&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Mr Sharafdin&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="nx"&gt;haddii&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="nx"&gt;markaas&lt;/span&gt;
    &lt;span class="nc"&gt;PRINT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x is less than 10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;kale&lt;/span&gt;
    &lt;span class="nc"&gt;PRINT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x is 10 or more&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;dhamee&lt;/span&gt;
&lt;span class="nx"&gt;shaqo&lt;/span&gt; &lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;magac&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nc"&gt;PRINT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Salaan, &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;magac&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;dhamee&lt;/span&gt;
&lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Grammar Highlights
&lt;/h2&gt;

&lt;p&gt;I based Soplang’s grammar on &lt;strong&gt;EBNF&lt;/strong&gt; notation, ensuring it’s both flexible and easy to parse. Some of the keywords include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;keyd&lt;/code&gt; (declare a variable)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;haddii&lt;/code&gt; / haddii_kale / kale (if / else-if / else)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ku_celi&lt;/code&gt; / ilaa / tallaabo (for loops with an optional step)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;inta_ay&lt;/code&gt; (while loops)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;shaqo&lt;/code&gt; (define a function)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;soo_celi&lt;/code&gt; (return from function)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Looking Ahead: Next Steps
&lt;/h2&gt;

&lt;p&gt;I have plenty of &lt;strong&gt;ambitious plans&lt;/strong&gt; for Soplang’s future:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Become Fully Standalone&lt;/strong&gt;
I’m aiming to evolve Soplang beyond a Python-based interpreter. This might involve rewriting it in &lt;strong&gt;Python&lt;/strong&gt; more thoroughly, and potentially porting it to Rust for speed and efficiency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add a Package Manager&lt;/strong&gt;
Package managers are essential for modern languages. I want Soplang to easily incorporate community-built packages, libraries, and frameworks, so developers can collaborate more effectively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refine the Syntax and Grammar&lt;/strong&gt;
Soplang’s syntax is still evolving. I plan to smooth out any rough edges — making the language both consistent and readable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community Involvement&lt;/strong&gt;
Once things are stable enough, I hope to open-source the project more widely. Feedback and collaboration from other developers — especially Somali speakers — will help Soplang grow into a language that truly serves its community.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  7. Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;Soplang is still in its &lt;strong&gt;early days,&lt;/strong&gt; but the journey so far has been incredibly rewarding. By building a &lt;strong&gt;Somali-based language,&lt;/strong&gt; I aim to encourage more people to explore programming without linguistic barriers. If you share this vision or simply want to tinker with something new, Soplang might be a fun project to follow.&lt;/p&gt;

&lt;p&gt;Stay tuned for updates on &lt;strong&gt;package management,&lt;/strong&gt; a &lt;strong&gt;Rust-based compiler,&lt;/strong&gt; and &lt;strong&gt;syntax enhancements.&lt;/strong&gt; For now, &lt;strong&gt;thank you&lt;/strong&gt; for reading about Soplang — &lt;strong&gt;and let’s keep coding in Somali!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: If you’re interested in trying out Soplang or contributing, check out the &lt;a href="https://github.com/soplang/soplang" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; and feel free to share any ideas or feedback. Let’s build a vibrant Somali programming community together.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mr Sharafdin.&lt;/p&gt;

</description>
      <category>soplang</category>
      <category>sop</category>
    </item>
    <item>
      <title>Unleashing Efficiency in Backend Development with Yonode</title>
      <dc:creator>Mr Sharafdin</dc:creator>
      <pubDate>Fri, 03 May 2024 10:03:01 +0000</pubDate>
      <link>https://dev.to/sharafdin/unleashing-efficiency-in-backend-development-with-yonode-3pbb</link>
      <guid>https://dev.to/sharafdin/unleashing-efficiency-in-backend-development-with-yonode-3pbb</guid>
      <description>&lt;p&gt;Discover how Yonode empowers both JavaScript and TypeScript developers with ready-made templates and robust tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction: The Need for Speed
&lt;/h2&gt;

&lt;p&gt;In a world where development speed equates to a competitive edge, Yonode stands out as a premier Node.js toolkit, accelerating both initial setup and ongoing project management. It supports JavaScript and TypeScript, catering to diverse development needs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Yonode?
&lt;/h2&gt;

&lt;p&gt;Yonode is a comprehensive toolkit designed to enhance backend development. It provides pre-configured templates and tools, allowing developers to quickly move past setup and focus on innovative coding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Dual-Language Support
&lt;/h3&gt;

&lt;p&gt;Yonode's support for both JavaScript and TypeScript makes it adaptable for a variety of projects, enhancing flexibility and accessibility for developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  MVC Architecture
&lt;/h3&gt;

&lt;p&gt;Yonode's MVC structure promotes clean code separation and scalability, crucial for managing complex applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  Database Integration
&lt;/h3&gt;

&lt;p&gt;Yonode eases database setup with ready-to-use configurations for SQL and NoSQL databases, integrating popular ORMs to streamline development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Robust Authentication
&lt;/h3&gt;

&lt;p&gt;Security is paramount, and Yonode delivers with customizable authentication templates that are easy to implement.&lt;/p&gt;

&lt;h3&gt;
  
  
  Middleware &amp;amp; Environment Setup
&lt;/h3&gt;

&lt;p&gt;Yonode comes equipped with essential middleware for logging, error handling, and more. It also simplifies the management of environment variables, ensuring smooth operation across different development stages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;Kickstart your project with Yonode using just one command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx yonode@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This setup initiates a tailored configuration process, even allowing projects to be started directly in the current directory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Choose Yonode?
&lt;/h2&gt;

&lt;p&gt;Yonode is crafted for developers seeking to reduce setup time and enhance productivity. Its comprehensive toolkit supports rapid development cycles, making it an essential asset for modern backend development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join the Yonode Community
&lt;/h2&gt;

&lt;p&gt;Yonode is more than just a toolkit; it's a community. Developers are invited to contribute to its evolution, share insights, and stay at the forefront of backend development innovations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Yonode is an indispensable tool for Node.js developers aiming to optimize their development workflow. With its robust features and strong community, Yonode is poised to elevate your backend development.&lt;/p&gt;

&lt;p&gt;Explore Yonode further and join the community at &lt;a href="https://yonode.org/" rel="noopener noreferrer"&gt;yonode.org&lt;/a&gt; and on our &lt;a href="https://github.com/sharafdin/yonode" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>node</category>
      <category>opensource</category>
      <category>yonode</category>
      <category>backend</category>
    </item>
  </channel>
</rss>
