As of early 2026, the deep learning framework landscape has settled into a clear pattern:
- PyTorch dominates industry and most academic research. It has the largest community, most tutorials, and broadest library ecosystem. If you're building a product, PyTorch is the safe default.
- JAX dominates research at Google, DeepMind, and parts of the ML research community that value functional programming and composable transformations. It's the go-to for TPU-heavy workloads, scientific ML, and research that requires custom differentiation.
- TensorFlow continues in a production/serving role, but new projects rarely start with TF for model development.
When to Choose JAX
# JAX shines when you need:
# 1. Composable transformations (grad of grad, vmap of grad)
# 2. TPU support (JAX is first-class on TPUs)
# 3. Functional programming style
# 4. Scientific computing + ML hybrid workloads
# 5. Custom differentiation rules
# 6. Research that pushes framework boundaries
# PyTorch is better when you need:
# 1. Largest community and ecosystem
# 2. Dynamic computation graphs with easy debugging
# 3. Rapid prototyping with less boilerplate
# 4. Production deployment tooling (TorchServe, etc.)
# 5. Most SOTA model implementations available first
JAX Version Timeline
# Key JAX milestones:
# JAX 0.5.0 (Feb 2025) — Partitionable PRNG by default
# JAX 0.6.0 (Apr 2025) — CUDA 12.8+ required, API cleanup
# JAX 0.7.0 (Jul 2025) — Migrated from GSPMD to Shardy,
# direct linearization, jax.P alias,
# minimum Python 3.11
# JAX 0.8.x (Dec 2025) — Continued stabilization
# JAX 0.9.x (Jan 2026) — Latest release as of early 2026
Google's Strategy
Google uses JAX for research (Gemini, AlphaFold, etc.) and TensorFlow/JAX for production (via StableHLO export). The long-term vision is that JAX + XLA forms the research-to-production pipeline, with StableHLO as the portable intermediate representation.
Where to Go Next
# Resources for continuing your JAX journey:
# Official documentation
# - jax.readthedocs.io (core JAX)
# - flax.readthedocs.io (Flax NNX)
# - optax.readthedocs.io (Optax)
# - docs.kidger.site/equinox (Equinox)
# - docs.kidger.site/diffrax (Diffrax)
# - num.pyro.ai (NumPyro)
# Learning projects to try:
# 1. Train a small Transformer on a text dataset
# 2. Implement a variational autoencoder (VAE)
# 3. Solve a differential equation with Diffrax
# 4. Build a Bayesian neural network with NumPyro
# 5. Write a differentiable physics simulation
# 6. Fine-tune a model with LoRA using Flax NNX
# Community
# - github.com/jax-ml/jax (source + issues)
# - JAX Discussions on GitHub
# - r/MachineLearning on Reddit
# - JAX Discord / Slack communities
💡 Why This Matters
The best framework is the one that lets you solve your problem. JAX's unique strengths — composable transformations, first-class TPU support, and functional elegance — make it irreplaceable for certain workloads. But it's not always the right choice. The skills you've learned in this course — automatic differentiation, functional thinking, pytree manipulation, vectorization — will make you a better programmer regardless of which framework you ultimately use. Many of these concepts are now appearing in PyTorch 2.0+ as well (torch.func, torch.vmap, torch.compile).
You've completed JAX Quest. You now understand the core ideas that power one of the most important tools in modern ML research and scientific computing. The functional programming mindset — thinking about data transformations rather than mutable state — is a skill that will serve you well far beyond JAX. Go build something amazing. 🎯