The right language for the right job: what popular GitHub projects reveal
Popular projects reveal the kinds of problems a programming language is commonly used to solve. I did this exercise to help identify the right language and tool for a given purpose, rather than becoming fixated on one particular language.
The GitHub search for popular repositories is a convenient bookmark for quickly revisiting the results and exploring them yourself.
Snapshot
The following is a snapshot of what I found when I carried out the exercise in December 2019. Star counts and popular projects will naturally change over time.
JavaScript
Common uses: web frontend, web backend, and utilities.
| Categories | Stars |
|---|---|
| Tutorials | |
| freeCodeCamp | 294k |
| airbnb js style guide | 75.7k |
| Single Page Application | |
| Vue.js | 113k |
| React.js | 111k |
| Redux.js | 43.7k |
| React-router | 32.3k |
| Angular.js | 59k |
| Data Visualisation | |
| d3 | 78.5k |
| Chart.js | 39.2k |
| Asset | |
| Font-Awesome | 57.4k |
| html5-boilerplate | 41.3k |
| material-ui | 40.1k |
| bootstrap | 127k |
| animate.css | 54k |
| material-design-icons | 35.9k |
| normalize.css | 32.3k |
| material-design-lite | 30.6k |
| bulma | 29.7k |
| foundation-sites | 27.6k |
| Light-weight web framework | |
| Express.js | 39.6k |
| Koa | 22.5k |
| Hapi | 9.8k |
| Fastify | 7.7k |
| Heavy-weight web framework | |
| Meteor | 40.1k |
| Sails.js | 19.4k |
| Nest.js | 7.7k |
| RESTful framework | |
| Loopback | 11.5k |
| Feathers | 9.5k |
| Restify | 8.5k |
| CMF | |
| Keysone.js | 13.1k |
| Strapi | 6.7k |
| WebSockets | |
| socket.io | 43.1k |
| Libraries | |
| jQuery | 49.9k |
| Utilities | |
| Webpack | 43.8k |
| Gulp | 30.2k |
| Babel | 29.5k |
| Prettier | 27.2k |
| Serverless | |
| serverless | 25k |
Python
Common uses: utilities, data science, and web backends.
| Categories | Stars |
|---|---|
| Utilities | |
| youtube-dl | 41.3k |
| httpie | 37.2k |
| thefuck | 37k |
| certbot | 23.1k |
| you-get | 20.1k |
| Web Crawling | |
| requests | 34.5k |
| scrapy | 29k |
| pyspider | 11.9k |
| Machine Learning | |
| keras | 33.2k |
| scikit-learn | 30.4k |
| face_recognition | 16.6k |
| pandas | 15.9k |
| numpy | 8k |
| scipy | 4.9k |
| Web Frameworks | |
| Flask | 38.3k |
| Django | 35.9k |
| Django-Restful | 16.4k |
| uWSGI | 2.2k |
| gunicorn | 5.1k |
| Non-blocking Web Frameworks | |
| Tornado | 16.4k |
| Libraries | |
| gevent | 4.3k |
| Werkzeug WSGI toolkit | 4.2k |
| Eventlet | 0.7k |
Java
Common uses: web backends, Android, and distributed computing.
| Categories | Stars |
|---|---|
| Tutorials | |
| java-design-patterns | 36.8k |
| interviews | 30.9k |
| Web Frameworks | |
| spring-boot | 32.3k |
| spring-framework | 27.2k |
| grails-core | 2.1k |
| Non-blocking Web Frameworks | |
| netty | 19.7k |
| Libraries | |
| RxJava | 29.3k |
| guava | 28.5k |
| okhttp | 27.9k |
| retrofit | 26.3k |
| dubbo | 26.2k |
| zxing | 18.9k |
| fastjson | 15.9k |
| gson | 14.6k |
| Utilities | |
| jadx | 17.7k |
| bazel | 11k |
| gradle | 10.1k |
| Android | |
| glide | 20.5k |
| AndroidUtilCode | 19.6k |
| butterknife | 18.6k |
| EventBus | 16.1k |
| fresco | 12.4k |
| Testing / Automation | |
| selenium | 13.5k |
| jenkins | 11.7k |
| Distributed Computing | |
| elasticsearch | 32.1k |
| Hystrix | 15.9k |
| kafka | 12.7k |
| flink | 10.1k |
C / C++
Common uses: systems programming, machine learning, desktop applications, databases, and utilities.
| Categories | Stars |
|---|---|
| OS | |
| Linux | 62.7k |
| Machine Learning | |
| tensorflow | 109k |
| opencv | 27.4k |
| xgboost | 13.4k |
| Desktop | |
| electron | 64.2k |
| nw.js | 34.3k |
| Cache | |
| redis | 31.2k |
| memcached | 8.1k |
| Database | |
| rethinkdb | 21.8k |
| leveldb | 14.8k |
| mongoldb | 14.5k |
| Coin | |
| bitcoin | 34.5k |
| Media | |
| FFmpeg | 12.1k |
| Utilities | |
| git | 23.9k |
| vim | 13.9k |
| tux | 11.2k |
| curl | 9.4k |
| openssl | 8.1k |
| Libraries | |
| libuv | 10.3k |