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