The Lost Feed

🌐Old Internet

The Day a Lisp Coded a Google App

Discover how Clojure, a Lisp language, was used to program Google's Flutter app. A surprising tech story.

3 views·5 min read·Jun 22, 2026
Show HN: Programming Google Flutter with Clojure

Imagine building a modern app, the kind you use every day on your phone. Now imagine doing it with a programming language that’s been around for decades, a language known for its unique style and power. This is the story of how that actually happened, blending old-school programming wisdom with cutting-edge mobile tech.

It’s a tale that started with a simple idea: could a powerful, flexible language like Clojure be used to create apps for Google’s popular Flutter framework? The answer turned out to be a surprising yes, opening up new possibilities for developers.

A Lisp Language

Finds a New Home

Clojure is a modern dialect of Lisp. Lisp itself is one of the oldest programming languages still in use, first created in the late 1950s. It’s famous for its simple, powerful syntax that often looks like a series of nested parentheses. This structure makes it great for certain kinds of complex tasks.

While Lisp languages have been around for a long time, they aren't typically the first choice for building mobile apps today. Most modern apps are built using languages like Swift for iPhones or Kotlin for Android. Google’s Flutter framework offers a way to build apps for both platforms using a single codebase, usually written in Dart.

But the challenge was set: could Clojure, with its unique approach, talk to Flutter? The goal was to see if this classic language could be a tool for modern app creation. The results were more than promising.

Bringing Clojure to Flutter: The Tech

The project that made this possible involved a few key pieces of technology. First, there was Flutter, Google’s own toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase. It’s known for its fast development and expressive UI.

Then, there was ClojureDart. This is a special version, or port, of Clojure that has been adapted to work with Dart. Dart is the programming language that Flutter uses. So, ClojureDart acts as a bridge, allowing Clojure code to be understood and run within the Dart environment that Flutter relies on.

Finally, the project used a reactive framework called Matrix. Think of a reactive framework as a system that helps apps respond automatically to changes. This made the process of building the app smoother and more efficient. It’s like having a helpful assistant that keeps everything updated in real-time.

How It Worked: A

Proof of Concept

This wasn't just a theoretical idea. The team behind it built a proof-of-concept. This means they created a working example to show that their idea was actually possible. They wanted to demonstrate that you could, in fact, program Flutter apps using Clojure.

The project included dozens of examples that showed different features and capabilities. These examples were like small test cases, each proving a specific point about how Clojure and Flutter could work together. They covered various aspects of app development, from basic functions to more complex interactions.

The TodoMVC Classic: A Real-World Test

To really test the system, the developers implemented a classic programming challenge: TodoMVC. This is a simple application where users can add tasks, mark them as complete, and delete them. It's a standard test used in the programming world to compare different frameworks and languages because it covers common app features like data management and user interface updates.

Building the TodoMVC app with Clojure and Flutter showed that the combination could handle real-world tasks. It proved that this unusual pairing wasn't just a novelty; it could be a practical tool for building functional applications. The success with TodoMVC gave confidence that more complex apps could also be built this way.

What This Means for Developers

So, why is this important? It shows that the world of programming is always expanding. Developers aren't limited to just the most popular or newest tools. Sometimes, older, well-established languages can find new life in surprising places.

For programmers who already love Clojure, this opens up a new avenue for creating mobile apps. They can use a language they are comfortable and productive with to build for iOS and Android. It means they don't have to switch to a completely different language if they want to get into mobile development.

It also encourages thinking outside the box. It suggests that we should always consider how different technologies, even those from different eras, might be combined to create something new and powerful. Innovation often comes from unexpected combinations.

Access and Community Support

Getting started with this technology wasn't hidden away. The project offered support and ways for others to try it out. This is crucial for any new development approach. If others can test it, they can find bugs, suggest improvements, and help it grow.

Support was available through a community channel. This is a common way for developers to help each other. People could ask questions, share their experiences, and get help installing the necessary tools. The goal was to make it easy for interested developers to experiment and see the potential for themselves.

This open approach helps projects like this move forward. It allows a wider group of people to contribute and learn, making the technology stronger over time. It’s a collaborative effort to push the boundaries of what’s possible.

The

Future of Lisp in App Development?

Could this be the start of something bigger? Will we see more apps built using Lisp dialects like Clojure? It’s hard to say for sure. The tech world moves fast, and new tools and languages appear all the time.

However, this project proved that it’s possible. It showed that a language with a long history could be adapted to modern needs. It’s a reminder that familiar tools can often be applied in new and exciting ways.

For now, it remains a fascinating example of technical creativity. It’s a story about how developers can bridge different programming worlds, proving that even seemingly old languages can still have a place in the future of app development. The door has been opened for more exploration into these kinds of hybrid approaches.

How does this make you feel?

Comments

0/2000

Loading comments...