Introduction to Programming Languages
Posted4 months agoActive3 months ago
hjaem.infoTechstory
calmmixed
Debate
40/100
Programming LanguagesFunctional ProgrammingLanguage Design
Key topics
Programming Languages
Functional Programming
Language Design
A new online book introduces programming language concepts using Scala, sparking discussion about its focus and coverage of different programming paradigms.
Snapshot generated from the HN discussion
Discussion Activity
Moderate engagementFirst comment
4d
Peak period
6
90-96h
Avg / period
5
Key moments
- 01Story posted
Sep 20, 2025 at 4:22 AM EDT
4 months ago
Step 01 - 02First comment
Sep 24, 2025 at 12:29 AM EDT
4d after posting
Step 02 - 03Peak activity
6 comments in 90-96h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 24, 2025 at 8:48 AM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45311498Type: storyLast synced: 11/20/2025, 2:35:11 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
The book is a theoretical and practical guide to understanding the principles of programming languages. Unlike books that teach a single language for application development, this one focuses on the semantics, syntax, and core concepts that are common across languages. It uses Scala as the main teaching language to build interpreters and type checkers, but its goal is not to teach Scala itself; rather, Scala is a tool to explore universal programming language principles.
The book covers key programming language features such as immutability, functions, pattern matching, recursion, mutation, garbage collection, lazy evaluation, continuations, type systems, algebraic data types, and polymorphism. It introduces these by first presenting them in simplified “toy” languages and then showing how to implement interpreters and type checkers for them. This approach ensures readers understand not just how to use language features, but why they work and what rules govern them across programming languages.
Its importance compared to other programming books lies in its generalization. Most beginner programming books teach one specific language (e.g., Python, Java, C++) and focus on syntax and usage. This book instead equips readers with the foundational concepts of programming languages so that they can more easily learn any new language in the future. By separating syntax (surface-level appearance) from semantics (underlying meaning), it teaches readers to recognize the deep commonalities among languages, making it a valuable resource for students, researchers, and advanced programmers aiming to go beyond coding into programming language theory and design.
It bugs me how languages like JS are clean but any custom domain-specific language made in them is ugly.
I've written a lot of Scala in the last 15 years or so, and I really like the language. It has features that most programmers are not familiar with, which can scare off some. My opinion is that if you understand the features it is a very elegant and simple language, particularly Scala 3.
I find the above the best introduction to a programming language.