yingjie@memoir
Skip to content

2026-05-27

MoonBit Competition

While browsing through the open-source competition section on the GitLink platform today, I stumbled upon the 2026 MoonBit Domestic Fundamental Software Ecosystem Open Source Competition.

Why do I keep participating in competitions? Because I think it's a great way to stay updated on the latest industry trends and understand the current state and needs of the field. Motivation: intelligence + prize money + influence.

I've heard about MoonBit before, but never actually tried it. After a quick look at the competition rules, I started thinking about whether I could contribute observable-related content to this community.

How to determine feasibility? Should I even determine feasibility? The latter asks whether to do it, the former asks what methods to use to gauge the odds.

Modern people often talk about "internal friction." I believe the best way to overcome it is to act immediately, get first-hand feedback, and iterate continuously based on that feedback.

I think I definitely should do it. I need to seize every opportunity.

Next, let's tackle the question of determining feasibility, which can be rephrased as what specific project should I work on?

  • Big goal: Expand my influence in the observability domain + help fill gaps in the community's relevant capabilities.
  • Small goals: Learn a new language, make new friends, earn the prize money.

How to expand influence? I think it's about becoming a Maintainer in this community for this domain. (Earlier I chatted with AI, and it suggested I directly contribute to the upstream OpenTelemetry standard-setting working group. I felt that was too big a step, and they might not accept it. But I might try later anyway.)

How to become a Maintainer in this community for this domain? It probably involves: domain expertise + track record + endorsements. I have some accumulation in these three areas, but not much—maybe only 20% of what's needed.

How to improve? Directly make significant contributions to the community. I believe this is the simplest, most direct, and most reliable way to showcase your expertise in the domain and earn the community's trust.

What constitutes a significant contribution?

  • Aligns with the community's current development stage.

  • Addresses capabilities the community urgently needs.

  • Meets general contribution requirements: compliance, usability, elegance, maintainability.

  • What does this community do?

    • According to Marvis: The MoonBit community is a developer community built around the MoonBit programming language. MoonBit is an AI-native general-purpose programming language and developer platform developed by the IDEA Research Institute (Digital Economy Research Institute of the Guangdong-Hong Kong-Macao Greater Bay Area).
    • What is MoonBit? MoonBit is an end-to-end programming language toolchain for cloud and edge computing, supporting wasm, wasm-gc, js, and native backends.
  • What is the community's current development stage?

    • According to Kimi: The MoonBit community is in a window period transitioning from "technical validation" to "ecosystem expansion". The language core is already production-ready, but ecosystem richness and finalization for 1.0 remain the main tasks before 2026.
    • MoonBit plans to release version 1.0 in Q3 2026, officially becoming production-ready.
  • What capabilities does the community urgently need?

    • Kimi: The number of ecosystem libraries is relatively small, and the asynchronous runtime needs improvement.

What distinguishes MoonBit from other languages? Who is the target audience? I didn't get a clear picture from the AI's answers—maybe because the AI's response was too verbose, making it hard to extract truly key information.

So, who created MoonBit?

MoonBit's creator is Zhang Hongbo, core developer of OCaml, leading developer of ReScript.

I've heard of ReScript, but OCaml is completely new to me. Does anyone use these languages?

After some searching, I was surprised to discover that "Wall Street Wolf," "most profitable," and "most mysterious" quantitative firm—Jane Street—is a heavy user of OCaml.

Jane Street's endorsement of OCaml is undeniable, which piqued my curiosity. I dug deeper to find out why they use this language.

Jane Street has a talk video on their blog, now ten years old.

I found a transcription app online, converted the video to text, and read it.

Why Jane Street Chose OCaml

  • Paragraph 1 (~27:03–27:20) — Recruitment: Easier to hire good people from an empty set

    • Hiring from an "empty set of OCaml programmers" is easier than from a huge set of Java programmers.
    • Because even if the set is empty, the people in it are excellent (strictly speaking, measure zero).
    • Technical niche itself becomes a talent filter—people willing to learn OCaml are inherently more curious and better.
  • Paragraph 2 (~27:31–28:22) — Business nature: Trading is scary

    • Putting a program into the market, touching your wallet—that's terrifying.
    • If you don't find it scary, you haven't thought about it enough.
    • That's why you need every tool that increases code correctness.
  • Paragraph 3 (~28:27–30:35) — Testing is insufficient: Fat tails + there's an adversary

    • Reason A: Financial markets have fat tails—extreme events occur far more often than normal distribution predicts. Random sampling can't cover them.
    • Reason B: There's an adversary—you're fighting a smart opponent, not against nature. You need "guarantees for all possible cases," not just "tested for what you think will happen."
  • Paragraph 4 (~30:35–31:28 + ~37:26–38:05) — Type system eliminates entire classes of bugs

    • Many people say "yeah, type systems should help a bit," but after actually using one, they say "no, it's really different."
    • Before, you spent tons of time debugging; now, a whole class of trivial bugs simply doesn't exist.
    • Types are not a nanny watching over your hands—they should be part of your program design.
  • Paragraph 5 (~44:18–45:58) — Expressiveness: Same logic, 3x shorter than Java

    • Example with a Boolean expression engine: OCaml ~15 lines, Java ~50 lines.
    • A 3:1 compression ratio between Java and ML is not uncommon, largely due to type system details—variant types and pattern matching make code shorter and clearer.
  • Paragraph 6 (~46:22–50:14) — Dynamic scope: One tool for everything

    • You often hear "choose the right tool for the job"—this implies your usual tools are too crappy.
    • OCaml is in a sweet spot: as concise as a dynamic language, as efficient as a compiled language, plus a strong type system.
    • The company has only ~70 developers—everything from scripts, config files to multi-billion-dollar trading systems is written in OCaml.
    • One tool means people can move around, code can be shared, ideas can be exchanged.
  • Paragraph 7 (~50:30–55:04) — Teachability: OCaml isn't as hard as you think

    • Refuting the idea that "OCaml is too smart to learn."
    • Traders in a one-month boot camp: about half can work independently.
    • Harvard's introductory CS course uses OCaml; MIT students with no prior experience can do small projects after four weeks of winter internship.
  • Paragraph 8 (~55:10–57:56) — Recruitment 2.0: Python paradox reversed

    • Early days: one email to the OCaml mailing list → 15 replies → 3 hires, all excellent.
    • Now: attracts people who wouldn't typically consider finance—like Stephen Weeks, author of the world's fastest ML compiler. "He came here purely because of the technology choice."
    • Paul Graham's "Python paradox" from over a decade ago: a niche language attracts better programmers (back then, Python was niche; now everyone knows it).

Finally, the speaker honestly acknowledges the trade-offs (~58:01–60:31):

  • Toolchain is not perfect, lacks Visual Studio-level support.
  • Library ecosystem is sparse; if you do web development, you need a lot of reinventing the wheel.
  • Jane Street has to invest in maintaining and driving the community.

"You use a niche technology that nobody else uses, and you're successful—now you kind of have to maintain it yourself. But overall, I'm very happy with this trade."

Summary:

  1. Correctness: Type system + pattern matching + immutability help developers eliminate entire classes of bugs. In a business with fat tails and an adversary, testing alone is insufficient.
  2. Efficiency: High expressiveness (3x shorter than Java), wide coverage (from scripts to trading systems), allowing a 70-person team to handle multi-billion-dollar systems.
  3. Talent: Unpopular language acts both as a filter (users are inherently excellent) and a magnet (attracts top talent who wouldn't otherwise consider finance).

Does MoonBit Also Have These Characteristics?

#OCaml Feature in TalkDoes MoonBit Have It?Notes
1Static typing + type inferenceHas local type inference
2Algebraic data types (enum)Full support
3Pattern matching + exhaustiveness checkFull support
4Option type / no nullYes
5Immutability by defaultlet is immutable by default; let mut for mutability
6Pipeline operator / chained data processingHas Iter type, performance up to 25x that of JS
7Higher-order functions (first-class functions)Yes
8Expressiveness (3x shorter than Java)Syntax similar to OCaml/Rust, high conciseness
9"One tool for everything" (scripts → trading systems)⚠️ Different positioningMoonBit focuses on WebAssembly / cloud-native / edge computing, not full-scope coverage
10Mature ecosystem and libraries❌ Not matureMoonBit was born in 2022, still in beta
11Real-world industrial validation (Jane Street 10+ years)❌ Still earlyNo large-scale production case comparable to Jane Street yet

MoonBit's Target Scenarios

MoonBit aims to be a complete software development platform. But that doesn't answer what use cases this language is suitable for: frontend, backend, infrastructure? Based on information gathered so far, it seems all of these scenarios can be covered, but it leans more towards infrastructure. Additionally, in the 8th CCF Open Source Innovation Competition - "MoonBit Open Source Ecosystem Project Contribution Contest" Problem Explanation ②, it mentions that "basic software, the closer to the bottom layer, the more it needs to move from empirical correctness to machine-checked correctness." MoonBit's formal verification feature helps write trustworthy software.

MoonBit's Commercialization

In Dialogue with MoonBit's Zhang Hongbo: Reinventing Programming Languages for AI | Leiphone, it says:

AI Tech Review: What are your thoughts on MoonBit's commercialization?

Zhang Hongbo: When we first started MoonBit, there was no such way to monetize through AI Coding. Back then, I thought our ceiling was like Matlab or Mathematica—some people use it, but it wouldn't be huge. After AI Coding emerged, I became more optimistic because the market is big enough. Previously, developer tools were productivity tools serving programmers. But with AI generating code, we can go further and directly sell software or services. In the future, our commercialization won't be about selling IDEs. Users won't need to know the product is based on MoonBit—it's just a technology below the surface.

In the future, we want to become an end-to-end software delivery platform, something like the once-popular startup Devin—a set of technologies that can quickly turn ideas into software. They didn't succeed, but I think MoonBit Pilot can, because we have greater control over the entire toolchain. An existing language might be designed in a way unfriendly to AI. If you don't lead the language, it's hard to change those already finalized designs.

MoonBit Pilot will definitely be a huge market. The cost of building software may drop to one-tenth or even one-hundredth of what it is now in the next three to five years. Many software projects will need to be rewritten. Even if a piece of software is working, if AI can painlessly migrate it while improving efficiency 10 to 100 times, would you do it? You definitely would, and many long-tail needs will be unleashed.

Summary:

  • Sell software development services: users propose requirements, the company uses Agent Coding to implement them.
  • Sell MoonBit Pilot services, similar to the current token economy.

AI Tech Review: Who will be the main audience for MoonBit Pilot?

Zhang Hongbo: Currently, we focus on ToC, with about 100,000 users, mainly two types. One is domestic informatics competition participants—they are very interested in this. The other is international developers using WebAssembly for commercial projects. Our strategy is ToC first, then ToB. We want MoonBit to gain a good reputation among developers first, then force management to adopt it. So we try to let more developers use our language.

The market that programmers alone can provide is limited. One model is having AI agents assist programmers in writing code. Due to real-time interaction, productivity gains might be only 30-40%. In the future, we want to have a dozen or even hundreds of agents writing code for you, with humans acting as overseers. That's more asynchronous AI programming—people don't need to sit in front of the computer watching code in real-time, just wait for results. That's the most effective way to boost productivity.

Summary:

  • Classic approach: capture engineers' mindshare, then force companies to adopt new tech stacks.

What Should I Do?

Creating a single instrumentation library feels too niche. Is there a way that all developers can benefit from?

Build a library, tool, or solution for automated instrumentation? Maybe based on software analysis, formal verification, etc., automatically determining the optimal instrumentation points and completing the instrumentation?

Wouldn't that be more powerful than OTel's automated instrumentation? This achieves "manual instrumentation" through a tool.