Skip to content
English
Level 3: The Software World
Lesson 8 · +10 XP

Languages, frameworks, and packages

Open a real codebase and the first thing you’ll notice is that you’re surrounded by names you’ve never heard of. React. Tailwind. Express. Django. Pandas. Lodash. Next.js. It can feel like a secret society.

It’s three things, dressed in a thousand outfits.

A language is how you write code. A framework is a big pre-written chunk of code that gives a project its overall shape. A package (or library) is a smaller pre-written chunk of code you grab to do one specific thing.

Once you can sort any name into one of those three buckets, the wall of jargon dissolves.

Languages

A programming language is the grammar your instructions are written in. There are a lot of them. You’ll keep seeing these:

  • JavaScript / TypeScript — the language of the web. Both run in browsers and on servers. TypeScript is JavaScript with extra checking. Most frontend code is one of these.
  • Python — the language of data, scripting, AI, and “I just need this to work.” Very readable.
  • Go, Rust, Java, C#, Ruby, PHP, Swift, Kotlin — all common, all suited for different jobs.

A codebase is usually written primarily in one language, with maybe a sprinkle of others. When Claude tells you “this is a TypeScript project,” that’s the primary language — most files you open will be TypeScript.

Frameworks

A framework is someone else’s enormous head start.

Building a website from raw JavaScript means writing thousands of lines of plumbing — routing, page rendering, form handling — before you even get to your actual idea. So instead, people use a framework: a big bundle of pre-written code that handles the boring stuff and leaves you to fill in the parts that are specific to your project.

Big names you’ll see:

  • React, Vue, Svelte — frontend frameworks (technically libraries, but everyone calls them frameworks).
  • Next.js, Astro, Remix — fuller frontend frameworks built on top of those.
  • Express, Fastify, NestJS — backend frameworks for JavaScript.
  • Django, Flask, FastAPI — backend frameworks for Python.
  • Rails — backend framework for Ruby.

When Claude says “this is a Next.js app,” it means: the project’s shape — how routes work, how pages render, how data flows — comes from Next.js. You write the parts that make the project itself; Next.js handles the rest.

Packages

A package (used interchangeably with library) is a smaller pre-written chunk of code you grab for one specific job.

Need to make a chart? Grab a charting package. Need to format dates? Grab a date package. Need to talk to Stripe? Grab Stripe’s package. There are millions of packages out there, free, ready to install.

Every language has its own package storehouse:

  • JavaScript / TypeScript — packages live on npm. Installed with npm install. Listed in package.json.
  • Python — packages live on PyPI. Installed with pip install. Listed in requirements.txt or pyproject.toml.
  • Rustcargo, listed in Cargo.toml. Rubygem, listed in Gemfile. Same pattern, different names.

That package.json file in last lesson’s tree is a list of which packages this project uses.

The thing that trips people up

You will look at a real codebase and discover that most of the code in it isn’t yours.

Open the node_modules folder of any JavaScript project and you’ll find tens of thousands of files. None of them were written by your team. They were installed by npm install, and they’re the packages and frameworks the project depends on.

The job of a modern developer is rarely “write everything from scratch.” It’s “glue together the right pre-existing code, and write the parts unique to your idea.”

That’s not laziness. It’s how every serious project works. The team that built Instagram didn’t write code to display rounded rectangles, or to send HTTP requests, or to parse JSON. They installed packages that did those things and got on with the actual product.

When Claude points you at a node_modules folder and says “don’t edit these,” now you know why.

What’s next

We’ve covered what software is, how it’s split, how it talks, where it remembers, and what it’s built from. One thing left in this level: where does the code run? Your laptop, or somewhere else? The difference matters more than you’d think.