Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Book comparing major programming languages at a technical level?
9 points by da39a3ee on Feb 1, 2022 | hide | past | favorite | 5 comments
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?




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.


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...


> - 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.


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

That’s not really true — take Python. The CPython interpreter has been compiled as native machine instructions. But the user’s Python code is turned into byte code and executed by the CPython interpreter; the user’s Python code is never converted to machine instructions.

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

That’s true, thanks.


No

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




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: