<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[RUDRA]]></title><description><![CDATA[RUDRA]]></description><link>https://rudra-language.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 22 Oct 2026 17:10:15 GMT</lastBuildDate><atom:link href="https://rudra-language.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Hello World Is a Lie — Build a Real Program in RUDRA (Chapter 2)]]></title><description><![CDATA[Hello world teaches you nothing. It has no state, no decisions, no loops, no bugs. It's a greeting card, not a program. Chapter 2 is where RUDRA gets real…]]></description><link>https://rudra-language.hashnode.dev/hello-world-is-a-lie-build-a-real-program-in-rudra-chapter-2</link><guid isPermaLink="true">https://rudra-language.hashnode.dev/hello-world-is-a-lie-build-a-real-program-in-rudra-chapter-2</guid><category><![CDATA[programming]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[compilers]]></category><category><![CDATA[Systems Programming]]></category><dc:creator><![CDATA[hacker piyush]]></dc:creator><pubDate>Thu, 08 Oct 2026 05:29:02 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac7285dcaac76ede6086d8e/d5ae9537-261e-46e3-bc0e-b6154a5c9bc1.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello world teaches you nothing. It has no state, no decisions, no loops, no bugs. It's a greeting card, not a program.</p>
<p>Chapter 2 is where RUDRA gets real. We build a <strong>Number Summarizer</strong>: feed it 1..n, it prints each number's even/odd status, totals them up, and classifies the sum. Small enough to fit in your head. Real enough to teach you everything.</p>
<h2>The program</h2>
<pre><code class="language-rust">fn sum_to(n: int) -&gt; int {
    let mut total = 0;
    for i in 1..(n + 1) {
        total = total + i;
    }
    return total;
}

fn is_even(x: int) -&gt; bool {
    return x % 2 == 0;
}

fn main() {
    let n = 5;
    print("RUDRA number summary");
    for i in 1..(n + 1) {
        if is_even(i) {
            print("{i} is even");
        } else {
            print("{i} is odd");
        }
    }
    let s = sum_to(n);
    print("sum: {s}");
    if is_even(s) {
        print("the sum is even");
    } else {
        print("the sum is odd");
    }
}
</code></pre>
<h2>The ideas that do all the work</h2>
<ul>
<li><strong><code>let</code> vs <code>let mut</code></strong> — variables are immutable by default. Reassign a plain <code>let</code> and the compiler stops you with the exact line number. Mutability is opt-in, which means every mutation in your code is a deliberate decision.</li>
<li><strong>Ranges end exclusive</strong> — <code>1..6</code> means 1 through 5. This WILL bite you exactly once; after that you'll never forget. The idiom for "1 through n" is <code>1..(n + 1)</code>.</li>
<li><strong>The accumulator</strong> — <code>total = total + i;</code> inside the loop. (No <code>+=</code> in RUDRA's book — the explicit form keeps beginners honest about what's happening.)</li>
<li><strong>Functions with types</strong> — <code>fn sum_to(n: int) -&gt; int</code>. Parameters and return types are written out. The compiler checks every call.</li>
</ul>
<h2>The honest workflow</h2>
<p>There's no keyboard-input API in the book at this stage — so <code>n</code> lives in the source. Change it and re-run:</p>
<pre><code class="language-bash">rudrac summary.rux --run
</code></pre>
<p>Edit → run → read output → repeat. n = 5, 10, 20… each run teaches you something.</p>
<h2>The 3 bugs you will definitely write</h2>
<p>Debugging method: <strong>problem → behavior → reason → fix → retest.</strong></p>
<ol>
<li><strong>Off-by-one</strong> — you write <code>1..n</code> and n silently vanishes from the sum. Runs fine. Wrong answer. The exclusive end strikes.</li>
<li><strong>Missing <code>mut</code></strong> — you reassign a plain <code>let</code>. Compiler error, exact line given. Add <code>mut</code>, move on.</li>
<li><strong><code>=</code> vs <code>==</code></strong> — assignment inside a condition. Compiler error; conditions need comparison.</li>
</ol>
<p>Every one of these has bitten a professional this month. You're in good company.</p>
<h2>Refactor like you mean it</h2>
<p>Repeated logic becomes a function (<code>is_even</code>, <code>sum_to</code>). Names say what they mean. One idea per function. And the rule that keeps you honest: refactor only with features you've already learned — no cleverness debt.</p>
<h2>Proof it works</h2>
<table>
<thead>
<tr>
<th>n</th>
<th>sum</th>
<th>parity</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>1</td>
<td>odd</td>
</tr>
<tr>
<td>5</td>
<td>15</td>
<td>odd</td>
</tr>
<tr>
<td>10</td>
<td>55</td>
<td>odd</td>
</tr>
<tr>
<td>20</td>
<td>210</td>
<td>even</td>
</tr>
</tbody></table>
<p>Real runs, real numbers.</p>
<h2>Keep going</h2>
<p>🎥 Start the course — Chapter 1 video: <a href="https://www.youtube.com/watch?v=-adNF7Fi0Pg">https://www.youtube.com/watch?v=-adNF7Fi0Pg</a></p>
<p>📥 Download RUDRA (free): <a href="https://github.com/rakshanex/rudra">https://github.com/rakshanex/rudra</a></p>
<p>💬 WhatsApp channel: <a href="https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47">https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47</a></p>
<p>Next chapters build on this foundation — the course follows the official book, chapter by chapter.</p>
<p><strong>Question:</strong> which of the 3 bugs has bitten YOU most recently — off-by-one, missing mut, or <code>=</code> vs <code>==</code>? Confess in the comments.</p>
<hr />
<p><em>Piyush Kumar — Founder &amp; Director, RAKSHANEX TECHNOLOGIES. Cybersecurity specialist (pentesting, red teaming, SOC, DFIR). Builder of RUDRA, OmniCore OS, AgentTrace. Author of "The RUDRA Programming Language" and four cybersecurity books.</em></p>
]]></content:encoded></item><item><title><![CDATA[Your First 60 Seconds With a Language That Compiles Itself — RUDRA Chapter 1]]></title><description><![CDATA[Most systems languages make you earn your first "hello world." Install the compiler. Install the linker. Configure the build system. Sacrifice something to…]]></description><link>https://rudra-language.hashnode.dev/your-first-60-seconds-with-a-language-that-compiles-itself-rudra-chapter-1</link><guid isPermaLink="true">https://rudra-language.hashnode.dev/your-first-60-seconds-with-a-language-that-compiles-itself-rudra-chapter-1</guid><category><![CDATA[programming]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[compilers]]></category><category><![CDATA[Systems Programming]]></category><dc:creator><![CDATA[hacker piyush]]></dc:creator><pubDate>Thu, 08 Oct 2026 05:27:14 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac7285dcaac76ede6086d8e/1630006e-8566-4c27-8db0-aca1b97da0ac.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most systems languages make you earn your first "hello world."</p>
<p>Install the compiler. Install the linker. Configure the build system. Sacrifice something to the linker gods. Then — maybe — your program runs.</p>
<p>RUDRA skips all of that. Chapter 1 of the course is about one thing: going from zero to a running native binary as fast as humanly possible.</p>
<h2>One archive. That's the whole toolchain.</h2>
<p>Download RUDRA from <a href="https://github.com/rakshanex/rudra">https://github.com/rakshanex/rudra</a> and you get four small tools:</p>
<table>
<thead>
<tr>
<th>Tool</th>
<th>Job</th>
</tr>
</thead>
<tbody><tr>
<td><code>rudra</code></td>
<td>Everyday driver: <code>new</code>, <code>run</code>, <code>build</code>, <code>fmt</code>, <code>test</code></td>
</tr>
<tr>
<td><code>rudrac</code></td>
<td>The compiler: one <code>.rux</code> file → native binary</td>
</tr>
<tr>
<td><code>ruxpkg</code></td>
<td>Package manager</td>
</tr>
<tr>
<td><code>rudra-lsp</code></td>
<td>Language server (VS Code extension: <code>rakshanex.rudra</code>)</td>
</tr>
</tbody></table>
<p>No GCC. No Clang. No assembler. No linker. RUDRA emits x86-64 machine code and writes the executable itself.</p>
<h2>Your first program</h2>
<p><code>hello.rux</code>:</p>
<pre><code class="language-rust">fn main() {
    print("Hello, RUDRA!");
}
</code></pre>
<pre><code class="language-bash">rudrac hello.rux --run
# ✅ Compiled: build/hello
# Hello, RUDRA!
</code></pre>
<p>Three lines. One command. A real native binary — a few kilobytes, starts in about a millisecond.</p>
<h2>The project workflow you'll use forever</h2>
<pre><code class="language-bash">rudra new myapp &amp;&amp; cd myapp
rudra run     # compile + run
rudra build   # native binary
rudra fmt     # format code
rudra test    # run test_* functions
</code></pre>
<p>Every project is just a <code>Rux.toml</code> manifest plus <code>src/main.rux</code>. No build scripts, no 400-line config files.</p>
<h2>What happens between source and binary</h2>
<p>RUDRA's compilation pipeline has 8 stages: lex → parse → resolve imports → type-check → monomorphize generics → emit x86-64 → native ELF executable. You don't need to memorize them — but knowing your language doesn't hide a C compiler under the hood changes how you think about it.</p>
<h2>One more trick before you go</h2>
<pre><code class="language-rust">print("2 + 2 = {2 + 2}");   // 2 + 2 = 4
</code></pre>
<p>String interpolation with <code>{...}</code> — any expression, evaluated inline. You'll use this constantly.</p>
<h2>Keep going</h2>
<p>🎥 Watch Chapter 1 (full video lesson): <a href="https://www.youtube.com/watch?v=-adNF7Fi0Pg">https://www.youtube.com/watch?v=-adNF7Fi0Pg</a></p>
<p>📥 Download RUDRA (free): <a href="https://github.com/rakshanex/rudra">https://github.com/rakshanex/rudra</a></p>
<p>💬 WhatsApp channel: <a href="https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47">https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47</a></p>
<p>Next: Chapter 2 — we build a real Number Summarizer with loops, mutable state, and functions. And we debug it like professionals.</p>
<p><strong>Question:</strong> what's the most painful install experience you've ever had with a programming language? Tell me in the comments — I need to feel better about my 2 AM linker story.</p>
<hr />
<p><em>Piyush Kumar — Founder &amp; Director, RAKSHANEX TECHNOLOGIES. Cybersecurity specialist (pentesting, red teaming, SOC, DFIR). Builder of RUDRA, OmniCore OS, AgentTrace. Author of "The RUDRA Programming Language" and four cybersecurity books.</em></p>
]]></content:encoded></item><item><title><![CDATA[I Built My Own Programming Language Because I Was Tired of Fighting C Compilers]]></title><description><![CDATA[Every programmer has a breaking point. Mine came at 2 AM, staring at a linker error that had nothing to do with my code. Three hours of "programming"…]]></description><link>https://rudra-language.hashnode.dev/i-built-my-own-programming-language-because-i-was-tired-of-fighting-c-compilers</link><guid isPermaLink="true">https://rudra-language.hashnode.dev/i-built-my-own-programming-language-because-i-was-tired-of-fighting-c-compilers</guid><category><![CDATA[programming]]></category><category><![CDATA[compilers]]></category><category><![CDATA[Systems Programming]]></category><category><![CDATA[open source]]></category><dc:creator><![CDATA[hacker piyush]]></dc:creator><pubDate>Thu, 08 Oct 2026 05:23:33 GMT</pubDate><content:encoded><![CDATA[<p>Every programmer has a breaking point.</p>
<p>Mine came at 2 AM, staring at a linker error that had nothing to do with my code. Three hours of "programming" — zero lines written. Just me versus the toolchain. Again.</p>
<p>That night I asked a stupid question: what if the language just... compiled itself? No GCC. No LLVM. No assembler. No linker. One download, one binary, done.</p>
<p>Two years later, that stupid question has a name: <strong>RUDRA</strong>.</p>
<h2>I built it. It works. Here's the proof.</h2>
<pre><code class="language-rust">fn main() {
    print("Hello, RUDRA!");
}
</code></pre>
<pre><code class="language-bash">rudrac hello.rux --run
# ✅ Compiled: build/hello
# Hello, RUDRA!
</code></pre>
<p>That's it. One command. A few kilobytes of native executable. Starts in about a millisecond.</p>
<h2>Why another language?</h2>
<p>Fair question. The world doesn't need another toy language.</p>
<p>RUDRA isn't a toy — it's a bet. A bet that you don't have to choose between speed, safety, and simplicity:</p>
<ul>
<li><strong>Memory-safe by default:</strong> statically typed, no null, bounds-checked access, immutable by default. Use-after-free? Caught at compile time.</li>
<li><strong>Actually powerful:</strong> generics, traits, closures, sum types with exhaustive pattern matching. A real standard library — files, networking, threads, JSON, HTTP.</li>
<li><strong>Simple enough to learn in a weekend:</strong> clean Rust-and-Go-flavored syntax. Readable by humans — and by AI.</li>
</ul>
<h2>The decision nobody else made</h2>
<p>Here's the part that makes compiler people do a double-take: RUDRA has its own native backend. It emits x86-64 machine code and writes the ELF binary itself.</p>
<p>Most new languages cheat at this step — they lean on LLVM (gigabytes of dependency) or shell out to GCC. RUDRA does neither. The whole toolchain is four small tools:</p>
<table>
<thead>
<tr>
<th>Tool</th>
<th>Job</th>
</tr>
</thead>
<tbody><tr>
<td><code>rudra</code></td>
<td>Project driver: new, run, build, fmt, test</td>
</tr>
<tr>
<td><code>rudrac</code></td>
<td>The compiler: one .rux file → native binary</td>
</tr>
<tr>
<td><code>ruxpkg</code></td>
<td>Package manager</td>
</tr>
<tr>
<td><code>rudra-lsp</code></td>
<td>Language server (VS Code extension in the marketplace)</td>
</tr>
</tbody></table>
<h2>The honest part</h2>
<p>RUDRA is v1.1.0. Let me tell you what it can't do yet: DNS/hostname resolution and HTTPS/TLS are still on the roadmap. The compiler source is proprietary; the toolchain binaries are free to use.</p>
<p>I'm not claiming it replaces Rust. I'm claiming something better: building it taught me more about compilers, type systems, and language design than a decade of using other people's languages.</p>
<h2>Learn it with me — free</h2>
<p>I'm teaching all of it on YouTube, chapter by chapter, straight from the official book "The RUDRA Programming Language":</p>
<p>🎥 Chapter 1 — Introduction, Installation &amp; Your First Program: <a href="https://www.youtube.com/watch?v=-adNF7Fi0Pg">https://www.youtube.com/watch?v=-adNF7Fi0Pg</a></p>
<p>📥 Download RUDRA (free): <a href="https://github.com/rakshanex/rudra">https://github.com/rakshanex/rudra</a></p>
<p>💬 WhatsApp channel: <a href="https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47">https://whatsapp.com/channel/0029Vb8hknnGE56kO24pbq47</a></p>
<p>Chapter 2 is next — we build a real Number Summarizer app: loops, mutable state, functions, debugging.</p>
<h2>One question for you</h2>
<p>What's the first program you'd write in a brand-new systems language?</p>
<p>Drop it in the comments — the best answer might become a chapter in the course.</p>
<hr />
<p><em>Piyush Kumar — Founder &amp; Director, RAKSHANEX TECHNOLOGIES. Cybersecurity specialist (pentesting, red teaming, SOC, DFIR). Builder of RUDRA, OmniCore OS, AgentTrace. Author of "The RUDRA Programming Language" and four cybersecurity books.</em></p>
]]></content:encoded></item></channel></rss>