Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider separating "programming languages" into logical high level groups #10

Open
brphelps opened this issue Sep 28, 2023 · 3 comments

Comments

@brphelps
Copy link

Generally I think it's harder for me to wrap my head around the graph we currently have because it's mixing things that are used for different purposes.

For example, Makefile / Shell / Dockerfile / Batchfile / Powershell all seem to be a pretty different logical grouping than Java / C / C# / typescript / ruby etc. It's hard to really make sense of what seeing the plots side by side means . Have you considered showing labels or groups or something that would allow the viewer of the graph to separate on an axis that shows more interesting views? Like "Imperative programming languages"? "shell" languages? Build scripts?

Mostly I'm interested in being able to see things visualized in for categories that are "apples to apples".

@mlinksva
Copy link
Collaborator

mlinksva commented Sep 28, 2023

It's something others could experiment with using the raw data, would love to see that.

We could consider adding to the site especially if there's an external set of classifications we could rely on. Linguist (which GitHub uses to detect languages) does have a "group" field for some languages, eg many shell languages are in group shell. Wikidata is another potential source, though perhaps too many classifications, eg look at the "instance of" and "programming paradigm" properties for C# https://www.wikidata.org/wiki/Q2370

I welcome other ideas.

@brphelps
Copy link
Author

I think having a dropdown that correlated to any grouping mechanism that seemed useful (what you're mentioning for linguist for example) would be pretty useful!

@mlinksva
Copy link
Collaborator

Will have to verify this, but looking at https://github.com/github-linguist/linguist/blob/7ca3799b8b5f1acde1dd7a8dfb7ae849d3dfb4cd/lib/linguist/languages.yml#L30-L31 it appears the linguist languages in a group are already coalesced:

# group                 - Name of the parent language. Languages in a group are counted
#                         in the statistics as the parent language.

Will probably have to look for other ways of classifying. Love the idea though, not only to see only apples-to-apples, but also to (by rolling up) apples-vs-oranges trends, such as "system" vs "application" vs "scripting" languages.

Or even (currently of interest to policymakers, always a relevant audience for this project) memory-safe vs not languages. 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants