You’re reading the free preview.Unlock every conversation for €2.99
FreeFree previewChapter 2

Chapter 2 · Free preview
Understanding Code
What you will understand
- Explain how variables are stored in memory
- Describe the difference between classes and objects
- Name and apply the four pillars of OOP
- Categorise programming languages (compiled vs. interpreted, typed vs. dynamic)
- Use a package manager to manage dependencies
Written by EduVerse for this preview; the slides below are the book’s own words.
Slides from the chapter
Each slide is a passage from the book with the figure or listing it talks about. Swipe, use the arrow keys or the buttons.
Slide 1 of 4
The Languages Ecosystem: Choosing Your Tools
2.2 · pp. 48–49
Conversation from The Software Realm, Decoded
Chapter 2 · 2.2 The Languages Ecosystem: Choosing Your Tools · pp. 48–49

Peter
I get the climate thing. But I’ve heard C++ is the best and fastest language ever. If it’s the best, why don’t we just use it for everything? Wouldn’t the whole system be faster?
The Senior developer smiles with a soft laugh and draws a massive Boeing 747 next to a small bicycle on the whiteboard.

Senior developer
C++ is an airplane. It is incredibly powerful and, in the right hands, it’s the fastest way to get from A to B. But let me ask you: if you just need to go two blocks down the street to buy a loaf of bread, do you take a Boeing 747?

Peter
Of course not. It would take three hours just to get it out of the hangar and clear it for takeoff.

Senior developer
Exactly. That is the trade-off. C++ gives you ’manual’ control over every single byte of memory. That makes it fast, but it also makes it dangerous and exhausting to write. One tiny mistake in C++ can crash the entire ’plane.’ In a modern web app, we prioritize Developer Velocity, how fast we can safely build features. High-level languages like Python, JavaScript, and Java have ’automatic transmissions’, they manage memory for you. They’re slower in raw execution, but you can be out of the driveway in ten seconds. Low-level languages like C, C++, and Rust are jet engines. You use them when you’re building the ’runway’ itself, the Linux Kernel, a high-end game engine, or a high-frequency trading platform where every microsecond costs a million dollars.
A professional engineer doesn’t use an airplane to go to the grocery store, and they don’t try to cross the ocean in a small rowing boat. We use Java and TypeScript because they are the ’reliable SUVs’ of the enterprise world. They are fast enough, but more importantly, they are safe and easy to maintain.

Peter’s realization
So ’best’ doesn’t mean fastest execution. It means the best balance of speed, safety, and the right tools for the job.

Senior developer
Exactly. Now, let’s see how these different vehicles, the SUVs and the Jet engines, actually work together.
Package Managers: The Librarians of Code
2.3 · p. 59
Conversation from The Software Realm, Decoded
Chapter 2 · 2.3 Package Managers: The Librarians of Code · p. 59

Peter
So I listed 5, but got 237 because of transitive dependencies?

Senior developer
Exactly. And that’s why package managers are essential, imagine manually tracking 237 dependencies and ensuring their versions all work together. This automation saves you hundreds of hours and prevents version conflicts that would take days to debug.
What the book shows with it
Figure from The Software Realm, Decoded
Chapter 2 · 2.3.2 Quick Reference by Language · p. 60
Explore this table
Pick one to highlight it and read what the book says about it.
Other cells in the table (30)
Description
Table: columns 'Language', 'Package Manager', 'Config File' and 'Lock File'. JavaScript and TypeScript use npm / yarn with package.json and package-lock.json; Java (Maven) uses pom.xml for both (exact versions); Java (Gradle) uses build.gradle and gradle.lock; Python (pip) uses requirements.txt, lock file optional; Python (Poetry) uses pyproject.toml and poetry.lock; Ruby uses Bundler with Gemfile and Gemfile.lock.
Description written by EduVerse; the figure itself is from the book.
Quick Reference by Language
2.3.2 · p. 60
Figure from The Software Realm, Decoded
Chapter 2 · 2.3.2 Quick Reference by Language · p. 60
Common commands across package managers:
Explore this table
Pick one to highlight it and read what the book says about it.
Other cells in the table (16)
Description
Table: common commands for 'npm (JavaScript)' and 'Maven (Java)'. Install all dependencies: npm install vs mvn install; add new package: npm install react vs Edit pom.xml; run tests: npm test vs mvn test; build project: npm run build vs mvn package.
Description written by EduVerse; the figure itself is from the book.
Slide 1 of 4
Try it yourself
A simulation built by EduVerse around this chapter. It runs in your browser; nothing is sent anywhere.
The full chapter
This preview shows 5 of the chapter’s 34 passages. The full chapter has:
- 4 sections
- 19 conversations
- 2 figures and tables
- 12 What They Say boxes
- 7 knowledge-check questions
Sections in this chapter
- 2.1What You're Actually Building
- 2.2The Languages Ecosystem: Choosing Your Tools
- 2.3Package Managers: The Librarians of Code
- 2.4Peter's Takeaways