HACKER Q&A
📣 da39a3ee

Book comparing major programming languages at a technical level?


I'm looking for a book / lengthy article comparing major mainstream programming languages. I'm looking for something that assumes some knowledge of computer science, covering more technical / implementation topics such as

- Languages that are compiled to machine instructions, vs compiled to VM bytecode, vs interpreted?

- What do these things mean?

- How do these choices affect the languages and the facilities that they offer to programmers?

- Languages with and without type systems

- Generics

- Different approaches to concurrency

I'm not looking for treatment of standard "programming" topics such as procedural vs OO vs functional.

I'm imagining it might explain the above with reference to:

- C / C++

- Java / C#

- Python / Ruby

- Javascript

It might be fun if it covered many more languages than that, but first things first I would like an introduction to the major features of the programming language landscape focusing on the most popular languages in use today.

Does a book like that exist?


  👤 Bostonian Accepted Answer ✓
There are courses on programming languages in general for CS majors, and textbooks for those courses can be found by searching "programming languages" on Amazon, for example

Concepts of Programming Languages (11th Edition) by Robert W. Sebesta

Programming Language Pragmatics by Scott, Michael L.


👤 chwolfe
You might enjoy something along the lines of Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages. https://www.amazon.com/Seven-Languages-Weeks-Programming-Pro...

👤 tacostakohashi
> - Languages that are compiled to machine instructions, vs compiled to VM bytecode, vs interpreted?

> - What do these things mean?

Languages are not compiled or interpreted, rather they may have compiler implementations, interpreter implementations, or both!

If the code is ever going to be executed, it needs to be converted to machine instructions at some point.

Consider Java - JVMs started out being like interpreters, but ended up more like compilers once JIT implementations became available, all without changing the language or the bytecode. Additionally, many non-java languages target those same JVMs.


👤 mardiyah
No

few sites may be, majority is just works on benchmarking comparison https://benchmarksgame-team.pages.debian.net/benchmarksgame/