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