<?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: Ankit bishnoi</title>
    <description>The latest articles on DEV Community by Ankit bishnoi (@ankitkhileryy).</description>
    <link>https://dev.to/ankitkhileryy</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%2F3915436%2F7734c9ed-15da-4dbf-b570-c9b5a0211192.png</url>
      <title>DEV Community: Ankit bishnoi</title>
      <link>https://dev.to/ankitkhileryy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ankitkhileryy"/>
    <language>en</language>
    <item>
      <title>I built my own programming language at 19 — Akro (runs in the browser, no install)</title>
      <dc:creator>Ankit bishnoi</dc:creator>
      <pubDate>Tue, 12 May 2026 12:22:20 +0000</pubDate>
      <link>https://dev.to/ankitkhileryy/i-built-my-own-programming-language-at-19-akro-runs-in-the-browser-no-install-1ge6</link>
      <guid>https://dev.to/ankitkhileryy/i-built-my-own-programming-language-at-19-akro-runs-in-the-browser-no-install-1ge6</guid>
      <description>&lt;h2&gt;
  
  
  Who am I?
&lt;/h2&gt;

&lt;p&gt;I'm &lt;strong&gt;Ankit Bishnoi&lt;/strong&gt;, 19 years old from &lt;strong&gt;India&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills:&lt;/strong&gt; JavaScript, TypeScript, React, HTML/CSS, Python, MongoDB, SQL, Ethical Hacking, Social Media.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/ankitkhileryy" rel="noopener noreferrer"&gt;@ankitkhileryy&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Akro&lt;/strong&gt; — a minimal programming language that runs entirely in the browser.&lt;/p&gt;

&lt;p&gt;The name comes from my initials &lt;strong&gt;"AK"&lt;/strong&gt;. Personal name, universal language.&lt;/p&gt;

&lt;p&gt;No install needed → try it now: &lt;strong&gt;&lt;a href="https://akro-lang.dev/playground" rel="noopener noreferrer"&gt;akro-lang.dev/playground&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What it looks like
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
akro
fn main {
  name := "World"
  say "Hello, {name}!"

  nums := [1, 2, 3, 4, 5]
  total := reduce(nums, fn(a, b) { return a + b }, 0)
  say "Sum = {total}"

  grade := match 87 {
    case 90..100 { "A" }
    case 80..89  { "B" }
    case _       { "C or below" }
  }
  say "Grade: {grade}"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>typescript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I wrote a programming language that runs in the browser — introducing Akro</title>
      <dc:creator>Ankit bishnoi</dc:creator>
      <pubDate>Tue, 12 May 2026 12:17:20 +0000</pubDate>
      <link>https://dev.to/ankitkhileryy/i-wrote-a-programming-language-that-runs-in-the-browser-introducing-akro-1bm2</link>
      <guid>https://dev.to/ankitkhileryy/i-wrote-a-programming-language-that-runs-in-the-browser-introducing-akro-1bm2</guid>
      <description>&lt;h1&gt;
  
  
  What is Akro?
&lt;/h1&gt;

&lt;p&gt;Akro is a minimal programming language with a browser-based interpreter.&lt;br&gt;&lt;br&gt;
No install needed — you can run Akro code right now at &lt;strong&gt;&lt;a href="https://akro-lang.dev/playground" rel="noopener noreferrer"&gt;akro-lang.dev/playground&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The name &lt;strong&gt;"Akro"&lt;/strong&gt; starts with &lt;strong&gt;"AK"&lt;/strong&gt; — the initials of the developer &lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/ankitkhileryy"&gt;@ankitkhileryy&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
The name is personal, the language is for everyone.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I built it
&lt;/h2&gt;

&lt;p&gt;I wanted a language that combined three things I liked from existing languages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; — clean, readable syntax&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Go&lt;/strong&gt; — fast compilation, simple structure
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt; — web-native, runs everywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of them alone felt right. So I built Akro.&lt;/p&gt;




&lt;h2&gt;
  
  
  What it looks like
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
akro
fn fibonacci(n) {
  if n &amp;lt;= 1 { return n }
  return fibonacci(n - 1) + fibonacci(n - 2)
}

fn main {
  for i in 0..10 {
    say "{i}: {fibonacci(i)}"
  }
}
Output:

0: 0
1: 1
2: 1
3: 2
4: 3
5: 5
6: 8
7: 13
8: 21
9: 34
Key design decisions
:= for variable declaration
name := "Akro"
count := 42
is_fast := true
No var, no let, no const noise. Inspired by Go.

No semicolons, no type annotations required
fn greet(name) {
  return "Hello, {name}!"
}
Types are inferred. You only annotate when you want to.

String interpolation with {expr}
x := 10
say "Double is {x * 2}"   // Double is 20
Supports full expressions, not just variable names.

Pattern matching
score := 87

grade := match score {
  case 90..100 { "A" }
  case 80..89  { "B" }
  case 70..79  { "C" }
  case _       { "F" }
}

say "Grade: {grade}"
Error handling
fn divide(a, b) {
  if b == 0 { throw "Division by zero" }
  return a / b
}

try {
  say divide(10, 2)
  say divide(5, 0)
} catch err {
  say "Error: {err}"
}
First-class functions &amp;amp; closures
nums := [1, 2, 3, 4, 5]
doubled := map(nums, fn(x) { return x * 2 })
say doubled   // [2, 4, 6, 8, 10]
Current status
v0.1.0-beta — The interpreter is written in TypeScript and runs entirely in the browser.

It handles:

Variables, constants, mutation
Functions, closures, recursion
Loops (for, while, loop)
Arrays, maps, structs
Pattern matching
Error handling (try/catch)
String interpolation
Built-ins: map, filter, reduce, sort, len, range, and 40+ more
Native compilation is on the roadmap for v0.3.0.

Roadmap
Version Feature
v0.1.0 ✅  Beta — browser interpreter
v0.2.0  Package manager &amp;amp; modules
v0.3.0  Native binary compilation
v0.4.0  VS Code extension &amp;amp; LSP
v1.0.0  Stable release
Try it
▶️ Playground (no install): akro-lang.dev/playground
📖 Docs: akro-lang.dev/docs/introduction
⭐ GitHub: github.com/ankitkhileryy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>programming</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built My Own Programming Language at 19 – Introducing Akro</title>
      <dc:creator>Ankit bishnoi</dc:creator>
      <pubDate>Wed, 06 May 2026 07:38:12 +0000</pubDate>
      <link>https://dev.to/ankitkhileryy/i-built-my-own-programming-language-at-19-introducing-akro-5a24</link>
      <guid>https://dev.to/ankitkhileryy/i-built-my-own-programming-language-at-19-introducing-akro-5a24</guid>
      <description>&lt;p&gt;Hi DEV community! I'm Ankit Bishnoi, 19 years old from India, and I just &lt;br&gt;
released my first major open source project — &lt;strong&gt;Akro&lt;/strong&gt;, a programming language &lt;br&gt;
I built from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I built Akro
&lt;/h2&gt;

&lt;p&gt;I was frustrated with existing languages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; is simple but slow&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Go&lt;/strong&gt; is fast but verbose&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript&lt;/strong&gt; is everywhere but messy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I spent months building Akro to combine the best of all three.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Akro looks like
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
akro
fn main {
    name := "World"
    say "Hello, {name}!"

    nums := [1, 2, 3, 4, 5]
    total := reduce(nums, fn(a, b) { return a + b }, 0)
    say "Sum = {total}"

    for i in 0..5 {
        say "i = {i}"
    }
}
Key Features
Type inference — like Rust/Go

x := 10
name := "Akro"
pi := 3.14
String interpolation — supports full expressions

say "Hello, {name}!"
say "1 + 1 = {1 + 1}"
say "Sum = {sum(nums)}"
Pattern matching

match score {
    case n if n &amp;gt;= 90 =&amp;gt; say "A grade"
    case n if n &amp;gt;= 80 =&amp;gt; say "B grade"
    default           =&amp;gt; say "F grade"
}
Transpiles to JavaScript — write Akro, run in browser

akro transpile app.ak
# → app.js (ready for browser)
Error handling

try {
    result := divide(10, 0)
} catch(e) {
    say "Error: {e}"
}
Structs with methods

struct Point {
    x: int
    y: int
}

impl Point {
    fn distance(self) -&amp;gt; float {
        return sqrt(self.x ** 2 + self.y ** 2)
    }
}

p := Point(3, 4)
say p.distance()  // 5.0
How it's built
The interpreter is written in Go:

Hand-written lexer
Recursive descent parser
Tree-walking interpreter
JS transpiler (AST → JavaScript)
40+ built-in functions
Install
npm install -g akro-lang
akro run hello.ak        # Run a file
akro repl                # Interactive shell
akro transpile app.ak    # Convert to JavaScript
akro version             # Show version
Links
GitHub: https://github.com/ankitkhileryy/akro
npm: https://www.npmjs.com/package/akro-lang
This is my first major open source project. I'd love honest feedback — what's missing, what could be better, and what would make you actually use a new language.

Thanks for reading!

— Ankit Bishnoi, 19, India
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>go</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
