惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
M
MIT News - Artificial intelligence
量子位
N
Netflix TechBlog - Medium
The Cloudflare Blog
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
B
Blog
博客园_首页
博客园 - Franky
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
爱范儿
爱范儿
H
Help Net Security
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I Built a Programming Language from Scratch — No C, No LL...
JAI LALAWAT · 2026-05-20 · via DEV Community

TL;DR

I spent the last several months building Jda — a self-hosted systems programming language bootstrapped entirely from raw x86-64 assembly. No C. No Rust. No LLVM. The compiler compiles itself, and it beats C on 3 of 5 benchmarks while compiling 33x faster than Rust.

👉 jdalang.org | GitHub


Why Build Yet Another Language?

Most "new" languages are built on top of existing infrastructure — LLVM, GCC, or at minimum a C runtime. That's totally valid, but it always felt like a shortcut to me.

I wanted to understand what a language actually is at the lowest level. So I started from scratch: raw x86-64 assembly, no external dependencies, no C library, nothing. Just me, the CPU manual, and a lot of patience.

The result is Jda — a fast, modern systems language where the compiler:

  • Is written in Jda itself (self-hosted)
  • Produces a ~1 MB static binary with zero external dependencies
  • Compiles in an average of 43ms

Performance: Does It Actually Work?

I benchmarked Jda against C (gcc -O2), Rust, Go, and Python in the same Docker environment.

Runtime (lower is better)

Benchmark C Jda Rust Go Python
sieve 1M 27ms 24ms 31ms 32ms 416ms
sum 100M 57ms 49ms 30ms 80ms 8,183ms
json parse 50K 32ms 31ms 33ms 90ms 159ms
matmul 200x200 30ms 37ms 32ms 40ms 2,265ms
fib(35) 40ms 148ms 62ms 126ms 2,826ms

Jda beats C on 3 of 5 benchmarks. 54x faster than Python on average.

Compile Time (lower is better)

Benchmark C (gcc) Jda Rust Go
sieve 1M 479ms 45ms 1,579ms 658ms
sum 100M 434ms 40ms 1,209ms 678ms
fib(35) 495ms 42ms 1,269ms 746ms

11x faster than gcc, 33x faster than Rust, 16x faster than Go.


What Does Jda Look Like?

It's clean and familiar — think Go meets Rust without the boilerplate.

// A ripgrep-style file searcher in ~20 lines
import "file_io"
import "string"

fn search_file(path: &i8, pattern: &i8, pat_len: i64) -> i64 {
    let fd = file_open(path, 0)
    defer file_close(fd)
    let buf = file_read_all(fd)
    let matches = 0
    for i in range(str_len(buf)) {
        if substr_match(buf, i, pattern, pat_len) {
            print_match(path, line_num, buf, i)
            matches += 1
        }
    }
    ret matches
}

Enter fullscreen mode Exit fullscreen mode

Structs and traits follow a Rust-style model:

trait Shape {
    fn area(self: &Self) -> i64
}

struct Circle { radius: i64 }

impl Shape for Circle {
    fn area(self: &Circle) -> i64 {
        ret self.radius * self.radius * 3
    }
}

Enter fullscreen mode Exit fullscreen mode

And concurrency uses Go-style green threads with typed channels:

fn producer(ch: Channel<i64>) {
    for i in range(100) {
        channel_send(ch, i)
    }
    channel_close(ch)
}

fn main() -> i64 {
    let ch = channel_new<i64>()
    spawn producer(ch)
    ret 0
}

Enter fullscreen mode Exit fullscreen mode


What's in the Box?

Jda ships with 117 stdlib packages including:

  • Networking, HTTP client/server, WebSockets
  • Crypto, JSON, regex, archives (tar/zip/gzip)
  • Tensors, autograd, and neural networks — ML built right in
  • GPU acceleration via AVX-512, PTX (NVIDIA), and ROCm (AMD)
  • Full toolchain: formatter, LSP, doc generator, REPL, fuzzer, race detector, package manager

There's also JDA Forge — a full-stack web framework in the style of Rails, built entirely in Jda.


The Bootstrap Story

The hardest part wasn't the language features — it was the bootstrap.

Every self-hosted compiler faces the chicken-and-egg problem: you need the compiler to compile the compiler. My solution was to write the first version of the Jda compiler in raw x86-64 assembly. From there, I rewrote it in Jda itself, verified the output was byte-identical, and the bootstrap was complete.

The compiler now compiles itself. Every release is verified to produce the same binary.


Current Status

  • ✅ Jda v1.0.0 released (MIT license)
  • ✅ v1.1.0 shipped last week with a macOS native backend
  • ✅ VS Code + JetBrains plugins with full LSP support
  • ✅ 388 tests passing
  • 🔜 ARM/AArch64 native backend
  • 🔜 Windows support

I'd Love Your Feedback

This is still early days and I'm actively looking for feedback on:

  • Language design — anything that feels off or missing?
  • Stdlib gaps — what packages do you need?
  • Tooling — what would make your workflow better?
  • Documentation — what's unclear or missing?

Drop your thoughts in the comments — I read everything. 🙏