- Joined
- Nov 12, 2021
I read this piece on ESR's blog, and this quote jumped out at me.
Has there been any attempt to categorize programming languages based on the results that their language features have on various metrics, and if so where can I read about it?
What effect do various decisions about programming language design have on overall productivity, broken down into various metrics? And what are those metrics?
edit
I see that I need to say everything as explicitly as possible for the autists (we have the best autists, we love them don't we folks) in the crowd. Let's try this again.
How do specific implementations of language features affect various programmer metrics? What are the drawbacks of these implementations?
Take for example strings and common operations (splitting, combining, finding, comparing, sorting)
Another is project scale. Every language also has an expected rate of induced defects per thousand lines of code due to programmers tripping over leaks and flaws in its abstractions. This rate runs higher in machine-centric languages, much lower in programmer-centric ones with GC. As project scale goes up, therefore, languages with GC become more and more important as a strategy against unacceptable defect rates.
Has there been any attempt to categorize programming languages based on the results that their language features have on various metrics, and if so where can I read about it?
What effect do various decisions about programming language design have on overall productivity, broken down into various metrics? And what are those metrics?
edit
I see that I need to say everything as explicitly as possible for the autists (we have the best autists, we love them don't we folks) in the crowd. Let's try this again.
How do specific implementations of language features affect various programmer metrics? What are the drawbacks of these implementations?
Take for example strings and common operations (splitting, combining, finding, comparing, sorting)
- What is the most intuitive way to handle strings? For an experienced programmer coming from C? For someone new to programming?
- What is the least intuitive?
- What are the pros and cons (of all sorts) of various programming languages implementations of strings and string handling?
- File I/O
- Networking
- Parallelism
- Concurrency
- IDEs (implied to be the ones with official support or most commonly used and recommended)
- Ease of debugging and debuggers (again, implied to be those with official support or most commonly used/recommended) in general
- GUIs and CLIs
- Control structures
- Syntactic sugar (compare Java to, well, anything)
- Type systems
- How well it maps to actual hardware.
- Standard libraries
- Database integration support
- Memory management
- Ease of understanding, coherence, and internal logic of the language structures (does the language lend itself to common mistakes because the same symbol is used for multiple operations, and how many hidden gotcha moments does it spring on you?)
- Ease of cross-compiling, or writing and debugging code for platforms other than the one you're on.
- Ease of porting the language itself to other platforms.
Last edited: