<?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: Aswin M Rajeev </title>
    <description>The latest articles on DEV Community by Aswin M Rajeev  (@aswinmrajeev).</description>
    <link>https://dev.to/aswinmrajeev</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4034086%2Ff1624d98-165e-4c85-a59a-2fda9c14a19b.jpg</url>
      <title>DEV Community: Aswin M Rajeev </title>
      <link>https://dev.to/aswinmrajeev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aswinmrajeev"/>
    <language>en</language>
    <item>
      <title>Beyond Syntax: What Really Makes a Programming Language?</title>
      <dc:creator>Aswin M Rajeev </dc:creator>
      <pubDate>Sat, 01 Aug 2026 18:28:52 +0000</pubDate>
      <link>https://dev.to/aswinmrajeev/beyond-syntax-what-really-makes-a-programming-language-43b8</link>
      <guid>https://dev.to/aswinmrajeev/beyond-syntax-what-really-makes-a-programming-language-43b8</guid>
      <description>&lt;p&gt;In this post, I want to explain how I approached the design of my own programming language, &lt;strong&gt;Light&lt;/strong&gt;, and why some of its rules were designed the way they are.&lt;/p&gt;

&lt;p&gt;When designing Light, I was not only deciding how programs should be written. I also had to define how those programs should behave, how different features should interact, and what rules should remain consistent throughout the language.&lt;/p&gt;

&lt;p&gt;One question guided many of these decisions:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What rule should govern this, and how should it interact with the rest of the language?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This led to a design centered around &lt;strong&gt;explicit structure and dynamic flexibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Light defines structural rules for program entry, control flow, data access, and reusable program units. At runtime, variables remain dynamically typed while operations such as array access, expression evaluation, and type conversion follow defined rules.&lt;/p&gt;

&lt;p&gt;The same principle applies to &lt;code&gt;Purpose&lt;/code&gt; blocks and libraries. They are not isolated features; their behavior is designed to fit into the language's existing execution and data model.&lt;/p&gt;

&lt;p&gt;A feature is not complete simply because its syntax works. Its behavior must remain predictable when combined with everything around it.&lt;/p&gt;

&lt;p&gt;That is why I focus not only on &lt;strong&gt;what a feature can do&lt;/strong&gt;, but also on &lt;strong&gt;where it belongs, what rules govern it, and how it interacts with existing constructs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For me, this is the foundation of Light's design philosophy:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;explicit rules, structured execution, and dynamic flexibility without sacrificing consistency.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Light is still under active development, including its standard libraries, so its design will continue to evolve as the language grows.&lt;/p&gt;

&lt;p&gt;Your thoughts and feedback are appreciated.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href="https://dev.to/aswinmrajeev/building-light-what-i-learned-after-9-months-10bn"&gt;Building Light Programming Language — What I Learned After 9 Months&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explore Light on GitHub:&lt;/strong&gt; &lt;a href="https://github.com/aswinmrajeev/light" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>architecture</category>
      <category>showdev</category>
      <category>software</category>
    </item>
    <item>
      <title>Building the Light Programming Language: What I Learned After 9 Months</title>
      <dc:creator>Aswin M Rajeev </dc:creator>
      <pubDate>Sun, 26 Jul 2026 07:45:28 +0000</pubDate>
      <link>https://dev.to/aswinmrajeev/building-light-what-i-learned-after-9-months-10bn</link>
      <guid>https://dev.to/aswinmrajeev/building-light-what-i-learned-after-9-months-10bn</guid>
      <description>&lt;p&gt;A few days ago, I shared the first public release of &lt;strong&gt;Light&lt;/strong&gt;, a programming language I've been designing and developing over the past nine months.&lt;/p&gt;

&lt;p&gt;Rather than introducing the language again, I wanted to share one of the biggest lessons I learned while building it.&lt;/p&gt;

&lt;p&gt;Before diving into that, here's a small example written in &lt;strong&gt;Light&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user

Purpose Add[a,b]
{
    sum = a + b
    out:sum
    stop
}

x = 23
y = 34

out="'Add{x,y}'"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Before implementing the first working version of &lt;strong&gt;Light&lt;/strong&gt;, I documented the core concepts, language rules, and the initial specification. At that stage, I believed the primary challenge would be transforming those ideas into a working implementation.&lt;/p&gt;

&lt;p&gt;Development reinforced just how inherently iterative language design is.&lt;/p&gt;

&lt;p&gt;As implementation progressed, practical experimentation exposed interactions that weren't immediately apparent during the initial design. Some features evolved, certain language rules were refined, and additional capabilities were introduced as the language matured. At the same time, performance, error reporting, and the implementation itself were continuously improved through repeated testing and refinement.&lt;/p&gt;

&lt;p&gt;One observation became increasingly clear throughout the project:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The specification shapes the implementation, but the implementation also helps refine the specification.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Looking back, building a programming language has been as much about evaluating and refining design decisions as it has been about writing code. Every iteration strengthened the language, improved its consistency, and reinforced the foundation established by the current public release.&lt;/p&gt;

&lt;p&gt;This release represents an important milestone in the development of Light. While there is still much to explore and refine, it establishes the foundation on which the language will continue to evolve.&lt;/p&gt;




&lt;p&gt;Your feedback and insights are always appreciated.&lt;/p&gt;

&lt;p&gt;If you're new to &lt;strong&gt;Light&lt;/strong&gt;, you can read the introduction to the project here:&lt;br&gt;
&lt;strong&gt;Introducing Light — A New Programming Language:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://dev.to/aswinmrajeev/introducing-light-a-new-programming-language-ghd"&gt;https://dev.to/aswinmrajeev/introducing-light-a-new-programming-language-ghd&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To learn more about &lt;strong&gt;Light&lt;/strong&gt; and explore its documentation, visit the official GitHub repository.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official GitHub Repository:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/aswinmrajeev/light" rel="noopener noreferrer"&gt;https://github.com/aswinmrajeev/light&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>programming</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Introducing Light — A New Programming Language</title>
      <dc:creator>Aswin M Rajeev </dc:creator>
      <pubDate>Sat, 18 Jul 2026 16:39:04 +0000</pubDate>
      <link>https://dev.to/aswinmrajeev/introducing-light-a-new-programming-language-ghd</link>
      <guid>https://dev.to/aswinmrajeev/introducing-light-a-new-programming-language-ghd</guid>
      <description>&lt;p&gt;Over the past &lt;strong&gt;9 months&lt;/strong&gt;, I've been designing and developing &lt;strong&gt;Light&lt;/strong&gt;, a programming language with the long-term vision of making script automation more structured, consistent, and easier to build and maintain.&lt;/p&gt;

&lt;p&gt;The idea behind Light began with a simple question: &lt;strong&gt;what would a programming language designed around structured program organization and predictable execution look like?&lt;/strong&gt; That question evolved into designing the language specification, defining its syntax and execution model, implementing the interpreter, and building the foundation of its ecosystem.&lt;/p&gt;

&lt;p&gt;This first public release marks an important milestone. It includes the core language and &lt;strong&gt;two standard libraries&lt;/strong&gt;, establishing the initial foundation of the project. &lt;strong&gt;Light is under active development&lt;/strong&gt;, with additional language features, standard libraries, and developer tooling planned for future releases.&lt;/p&gt;

&lt;p&gt;I'm sharing this first public release to introduce the project and gather feedback from the developer community. I'd appreciate your thoughts on the language design, syntax, documentation, and overall developer experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hello Light
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user

name = _Light_

out="Hello 'name'"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/aswinmrajeev/light" rel="noopener noreferrer"&gt;https://github.com/aswinmrajeev/light&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
    </item>
  </channel>
</rss>
