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.