Geblang – I built my own programming language

dwgebler1 pts0 comments

Geblang - I built my own programming language - Dave Gebler's Blog

Skip to main content

Geblang - I built my own programming language

May 18, 2026

11 min read

General Coding

coding

💡 I wouldn't normally feel the need to say this, but because this post is about a<br>project that was build with AI coding tools as a core part of the workflow,<br>I just want to make it clear I don't use AI to write my blog posts. Not a word.<br>The text of this page is entirely authored by me, a living, breathing human.

Introduction

Programming's a funny thing. You can solve so many problems in so many different ways that if you were to ask<br>any number of developers what their ideal programming language would look like and how it would work,<br>you'd probably get as many different answers as people you asked.

Any programming language I've worked with in my life, I've felt has been great for some things and lacking in others.<br>Java I wish was less verbose, more flexible, more user friendly. Python I wish had a real typing system instead of<br>erased syntax left to community tooling. PHP I wish could support operator overloading, generics and native async/await behaviour (and I don't mean the Fibers API).

But there are many things about these languages and others that I love. When it comes to PHP and Python in particular,<br>I love a lot of the ergonomics and ease and simplicity of development they give you, right out the box. The rich standard libraries,<br>PHP's Java-inspired OOP models, Python's elegant syntax and support for aspect-oriented programming.

I've always dreamed of creating my own programming language that I could use to write programs the way<br>I want to and manifest that concept of what my ideal language would look like.

But I'm not an expert on building compilers or interpreters. I have some theoretical knowledge on that subject,<br>mostly from a book I read many years ago, it's not something I ever thought was realistic for me to achieve, at<br>least in a real sense - a sense of a working, feature-complete language that goes beyond a basic learning exercise. Something<br>you could actually use for real projects.

Then we entered the era of cutting-edge coding models, which have moved on from intelligent autocomplete in the IDE to<br>(with a lot of caveats, of course), full agentic development systems.

I wanted to push what I could do, leveraging these tools, to its limits. Could I actually build a real, fully<br>functional programming language, not in 2-3 years, but in a couple of months?

Thus Geblang was conceived, and later born.

Why does Geblang exist?

Fun, interest, curiosity and learning.

The name, of course, is a pun on how Go is commonly known as Golang. My name's Gebler, so Geblang seemed an<br>obvious choice. G++ would have been more than a little confusing.

I wanted to learn Go (I knew a little bit about Go, but not much), I wanted to learn more of Go in a way that was<br>fun and exciting to work on. I wanted to learn more about how a programming language is built. And as I mentioned above,<br>I wanted to see just how far I could push the latest coding models to help me achieve these goals.

Geblang is predominantly inspired by PHP and Python, but also some of Go itself, in which the reference implementation is written.

So the aim, going back to my conception of an ideal language, was to offer the same benefits of PHP and Python in terms of<br>ease, simplicity, low entry barrier and developer experience, but with the benefits those dynamic languages have historically<br>struggled to offer and now are caught trying to play catch-up. My main goals to that end were full static typing and type safety<br>(but with the option to break out into more dynamic structures), with static analysis built into the engine at runtime,<br>a reified generics system that can be checked and enforced at runtime, and cooperative async programming as a day one, native feature.

Finally, all of this needed to be wrapped in something that was plausibly useful for real-world development. In other words,<br>not painstakingly slow, not just a toy.

Matching CPython and PHP's performance is not a goal (and with PHP's JIT, it wouldn't be a realistic goal),<br>I was just aiming for...fast enough, for an interpreted language. So I knew from the start I'd want a VM with bytecode<br>compilation and caching and I figured I could always design it so we fall back to an interpreter if the VM can't<br>support something yet (which is exactly what Geblang 1.0 does).

So it was vibe coded? This is a vibe coding project? AI Slop?

Depends what you mean by vibe coding. This is a term that conventionally (by which I mean about 12 months ago,<br>when it was first invented) referred to a style of development where you just start coding without any planning or design,<br>maybe without any knowledge of programming at all, don't look at the code, don't understand the code, don't tweak the code.<br>Just throw a prompt at an LLM and say "one programming language please" and then plead with it to fix any issues...

programming language geblang coding built python

Related Articles