ML needs a new programming language – Interview with Chris Lattner

Mojo’s Goals and ML Focus

  • Mojo is positioned as a high‑performance, Python‑like language aimed at writing state‑of‑the‑art kernels, effectively competing with C++/CUDA rather than PyTorch/JAX themselves.
  • Some see the “for ML/AI” branding as hype driven by fundraising and VC expectations; others note it grew directly from compiler work for TPUs and has targeted ML from the start.

Language Design & Lessons from Swift

  • Several comments criticize Swift’s slow compilation and pathologically bad type‑checker behavior; this is used as a cautionary tale for Mojo.
  • Mojo’s author states they explicitly avoided Swift’s bidirectional constraint solving due to compile‑time and diagnostic unpredictability, opting for contextual resolution more like C++.
  • Mojo aims for fast compilation, no exponential type‑checking, advanced type features (generics, dependent, linear types), and better error messages.

Mojo vs. Julia, Python, Triton, CUDA

  • Some argue Julia already provides JIT to GPU, kernel abstractions, and “one language” for high‑ and low‑level work, plus decent Python interop; others counter that Julia’s semantics and performance are too fickle for foundational code and that AOT binaries in Julia are still immature.
  • Triton and other Python DSLs already let users write kernels in (subset) Python; critics ask what Mojo offers beyond these. Supporters answer: deeper MLIR integration, finer control, predictable performance, and packaging/executable story.
  • A recurring point: for many ML users, Python remains a glue layer over C++/CUDA kernels; only a minority needs to write custom kernels.

Licensing, Governance, and Trust

  • Mojo’s “community” license distinguishes CPUs/NVIDIA vs. other accelerators and requires negotiation for some hardware, which many see as a complete non‑starter.
  • Numerous commenters say they will not adopt a closed, company‑controlled language for core infrastructure, fearing future license changes or CLA‑enabled rugpulls.
  • Planned open‑sourcing around 2026 is viewed skeptically; some expect any license change only after wide adoption.

Adoption, Completeness, and Messaging

  • Observers note minimal visible adoption so far and see this as evidence Mojo isn’t yet addressing mainstream pain points; others reply it’s still beta, missing key features (e.g., classes), and not ready for general‑purpose use.
  • Early claims about being a “Python superset” are seen as either naive ambition or marketing; the roadmap now frames Python compatibility as a long‑term, “maybe” goal, which some find confusing or manipulative.