TypeScript Surpasses Python to Become the Most Used Language on GitHub in 2025
Hello HaWkers, August 2025 marked a historic moment in programming. For the first time in a decade, JavaScript (and its typed extension) not only remained relevant, but TypeScript surpassed Python to become the language with the most active contributors on GitHub.
This is a milestone that reflects deep transformations in how we develop software. Let's understand what led to this change.
What the Data Shows
GitHub's Octoverse report revealed that in August 2025, TypeScript surpassed Python by approximately 42 thousand active contributors. This ends a sequence where Python had taken the lead in 2024, interrupting 10 years of JavaScript dominance.
Ranking Numbers
Top languages by contributors (August 2025):
| Position | Language | Contributors | Change |
|---|---|---|---|
| 1 | TypeScript | ~2.8M | +15% |
| 2 | Python | ~2.75M | +8% |
| 3 | JavaScript | ~2.1M | -5% |
| 4 | Java | ~1.5M | +2% |
| 5 | C# | ~1.1M | +7% |
| 6 | Go | ~950K | +12% |
| 7 | Rust | ~750K | +25% |
Historical Context
Ranking evolution (2015-2025):
- 2015-2023: JavaScript absolute leader
- 2024: Python takes the lead (AI/ML boom)
- 2025: TypeScript surpasses both
The rise of TypeScript represents the maturity of the JavaScript ecosystem. Developers want types, and they're finally getting them elegantly.
Why TypeScript Grew So Much
AI's Influence on Development
Ironically, the same AI wave that boosted Python now favors TypeScript. AI tools like GitHub Copilot, Claude and ChatGPT work better with typed code.
Why AI prefers TypeScript:
- Types are context: LLMs better understand code with explicit types
- Superior autocomplete: AI generates more precise code with type hints
- Less ambiguity: Types reduce interpretation errors
- Implicit documentation: Types serve as living documentation
Enterprise Adoption
Large companies have massively migrated to TypeScript in recent years.
Companies that adopted TypeScript:
- Microsoft: Language creator, uses in all products
- Google: Angular is completely TypeScript
- Meta: Migrating React ecosystem
- Airbnb: 100% TypeScript in new projects
- Stripe: API and SDK in TypeScript
- Slack: Desktop application in TypeScript
Dominated Frontend Ecosystem
Every relevant frontend framework is now TypeScript-first.
Frameworks and TypeScript:
| Framework | TypeScript Status |
|---|---|
| Next.js | TypeScript-first |
| Nuxt 3 | TypeScript-first |
| Angular | TypeScript required |
| SvelteKit | TypeScript-first |
| Remix | TypeScript-first |
| Astro | TypeScript-first |
What This Means For Python
Python Is Not Losing
It's important to contextualize: Python is not in decline. The 8% year-over-year growth is healthy. What happened was that TypeScript grew faster.
Where Python continues to dominate:
- Data Science: Pandas, NumPy, scikit-learn
- Machine Learning: TensorFlow, PyTorch
- Automation: Scripts, DevOps
- Backend APIs: Django, FastAPI
- Academic research: Jupyter Notebooks
Different Niches
Market division:
- TypeScript: Web frontend, Node.js backend, desktop apps
- Python: AI/ML, data, automation, scripting
The languages don't compete directly in most cases. A developer can (and probably should) know both.
Impact For JavaScript Developers
Gradual Migration
If you still write pure JavaScript, the time to learn TypeScript is now. The good news: the transition is smooth.
Migration strategy:
- Start with
any: Gradually convert .js files to .ts - Enable strict: Increase rigor as you learn
- Use inference: Let TypeScript infer types when possible
- Add types gradually: No need to type everything at once
Transition Example
// Original JavaScript
function calculateDiscount(price, percentage) {
return price - (price * percentage / 100);
}
// Basic TypeScript (inference)
function calculateDiscount(price: number, percentage: number) {
return price - (price * percentage / 100);
}
// TypeScript with explicit return
function calculateDiscount(price: number, percentage: number): number {
return price - (price * percentage / 100);
}
// TypeScript with validation
function calculateDiscount(price: number, percentage: number): number {
if (price < 0) throw new Error('Price must be positive');
if (percentage < 0 || percentage > 100) {
throw new Error('Percentage must be between 0 and 100');
}
return price - (price * percentage / 100);
}
Features That Made TypeScript Popular
Advanced Type System
TypeScript offers type features that few typed languages have.
// Union Types - value can be multiple types
type Status = 'pending' | 'approved' | 'rejected';
// Conditional types
type NonNullable<T> = T extends null | undefined ? never : T;
// Template Literal Types
type Route = `/api/${string}`;
// Mapped Types
type Readonly<T> = {
readonly [P in keyof T]: T[P];
};
// Native Utility Types
type UserPreview = Pick<User, 'id' | 'name'>;
type UserUpdate = Partial<User>;
type UserRequired = Required<User>;Smart Inference
// TypeScript infers types automatically
const numbers = [1, 2, 3]; // number[]
const first = numbers[0]; // number
// Inference in functions
const users = [
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 25 },
];
// TypeScript knows 'user' has name and age
const names = users.map(user => user.name); // string[]
// Automatic narrowing
function printId(id: string | number) {
if (typeof id === 'string') {
// TypeScript knows 'id' is string here
console.log(id.toUpperCase());
} else {
// TypeScript knows 'id' is number here
console.log(id.toFixed(2));
}
}Powerful Generics
// Generic function
function getFirst<T>(array: T[]): T | undefined {
return array[0];
}
const firstNumber = getFirst([1, 2, 3]); // number | undefined
const firstString = getFirst(['a', 'b']); // string | undefined
// Constraint in generics
interface HasId {
id: number;
}
function findById<T extends HasId>(items: T[], id: number): T | undefined {
return items.find(item => item.id === id);
}
// Generics in classes
class Repository<T extends HasId> {
private items: T[] = [];
add(item: T): void {
this.items.push(item);
}
find(id: number): T | undefined {
return this.items.find(item => item.id === id);
}
all(): T[] {
return [...this.items];
}
}
The Role of Vibe Coding
GitHub highlighted a trend called "vibe coding" that boosted TypeScript.
What Is Vibe Coding
Definition:
Vibe coding is a workflow where developers start with an idea and quickly create a functional prototype, often in a single session, using AI for autocomplete and ready-to-use cloud tools.
Why TypeScript benefits:
- AI generates better code: Types help AI understand intent
- Errors detected early: Less manual debugging
- Safe refactoring: IDE can rename/move with confidence
- Automatic documentation: Types explain the code
Tools That Boosted
Popular vibe coding stack:
- Editor: VS Code / Cursor
- AI: GitHub Copilot / Claude
- Framework: Next.js / Nuxt
- Deploy: Vercel / Netlify
- Database: Supabase / PlanetScale
- Language: TypeScript
The Future of TypeScript
Expected Trends
What comes next:
- TypeScript 6.0: Performance improvements and new features
- Standard decorators: Finally stable
- Type-only imports: Bundle optimization
- AI integration: Types as prompt engineering
Node.js and Deno
TypeScript-first runtimes:
- Deno: Native TypeScript without compilation
- Bun: Ultra-fast transpilation
- Node.js: Experimental native TS support
// Deno - native TypeScript
// file: server.ts (runs directly, without tsc)
import { serve } from "https://deno.land/std@0.200.0/http/server.ts";
serve((req: Request) => {
return new Response("Hello TypeScript!");
}, { port: 8000 });
Conclusion
TypeScript's rise to the top of GitHub is no accident. It's the result of a decade of JavaScript ecosystem evolution, combined with the need for safer code and AI tools that work better with types.
For JavaScript developers, the message is clear: TypeScript is no longer optional, it's the standard way to write professional JavaScript in 2025. The good news is that the transition is gradual and the investment is worth it.
If you want to understand more about JavaScript ecosystem trends, I recommend checking out the article about State of JavaScript 2025 where we analyze data from the community's annual survey.
Let's go! 🦅
📚 Want to Deepen Your JavaScript Knowledge?
This article covered the rise of TypeScript, but there's much more to explore in the modern development world.
Developers who invest in solid, structured knowledge tend to have more opportunities in the market.
Complete Study Material
If you want to master JavaScript from basics to advanced, I've prepared a complete guide:
Investment options:
- 1x of $4.90 on card
- or $4.90 at sight
👉 Learn About JavaScript Guide
💡 Material updated with industry best practices

