Language Evaluation Checklist
To Compare the Experience of Adopting Different Programming Languages
General Intent/Goals (Description)
Competitors (Description)
Issues & Constraints (Description)
Ease of Use
Complexity (Description)
Learning Curve Gentle | Medium | Heavy
Install Process Single Install | Multiple Installs & Configurations
External Library Install Process Single Command | Download & Configure
Learning Tools Official Tutorial
Active Beginner Community
Multiple Books Targeted to Beginners
Old-style Newsgroup
Multiple (Confusing) Newsgroups
StackOverflow Group
Popularity
(Influences ease of learning/hiring)
Github
Redmonk
Tiobe
IEEE
PYPL
Community & Culture
Focus Culture of Kindness | Academic | Uncurated
Code of Conduct Proactive | Retroactive | Implied | None
Conference Central
Satellites
Attitude Toward Beginners Friendly |
Begrudgingly Tolerant |
"If You Can't Stand the Heat..." |
Hostile
Maturity Indicators StackOverflow Tag
Ability to Fix Language Mistakes None | Under Duress | Proactive
Tools
Style Guide and level of enforcement None | Exists but Optional | Enforced with Tool
Build None | De-Facto | Installed
Satisfaction: [ High | Low ]
Lint None | De-Facto | Installed
Test Framework None | De-Facto | Installed
Add-On Libraries
Distribution System Ad-Hoc | Centralized | Hosted Repository
Installation Process Single Command |
Multiple Steps |
Download, Unpack & Configure
Installation tool None | Multiple | Standard | Installed
Semantic Versioning
(For libraries as well as language itself)
Standardized
Governance
IP ownership Company | Foundation | Individual
License Closed-Source | GPL* | Open-Source
Funding Single Source | Foundation | Informal
Process to suggest new features Open | Closed | Partly Open
Design Comes Primarily From Stakeholders | Experts | Users | Experts + Users
Pull Request Validation System Exists
Contributor's License Agreement (CLA) Required
Release Rate, Open/Closed Bugs
(indication of activeness)
Good | Low
*The GPL is sometimes used as a way to force companies to buy licenses.
Note: Technical evaluation of language capabilities is not covered in this checklist, but in the Language Technical Comparison checklist.
Language Evaluation Checklist by Bruce Eckel is licensed under a Creative Commons Attribution 4.0 International License.
Project hosted at https://github.com/BruceEckel/Language-Evaluation-Checklist.
Suggestions welcome via issue report or pull request.