Programming Language Selector
Score & rank programming languages given user specified values and the target programming domain.
See the FAQ for more.
Parameters
Adjust the below parameters based on preference & needs. The results are normalized 0-1 and sorted accordingly.
Domains
Technical Values
No options selected.Omitting a dimension drops all score contributions along that dimension.
Social Values
No options selected.Omitting a dimension drops all score contributions along that dimension.
Result
Missing inputs for: technicalValues, domains
FAQ
My language of interest is missing. Why?
Feel free to add it. This project is new. Give it time to catch up.
See thecontributing.md
.What is this tool for?
This tool
score
s programming languages based on their characteristics. It tries to enhance the decision making process when selecting a programming language. The decision making process is enhanced by using quantitative data and qualitative data (re-encoded as quantative data) by taking a complex assessment and projecting it down into a single dimension--a scalarscore
. The higher the score, the more fit the language for your use case.Can I trust this? Are the values correct?
No one can or should agree with every value in the underlying assessment data or model.There are quattuordecillions of combinations of inputs that the assessment data could hold. If you agree with everything as it is in its current state, you are not critiquing or looking hard enough. Values in default assessment data and model are both objective and subjective, but mainly the latter. Experienced developers understand that software is art. The assessed values liberally reflect subjectively artful evaluations with experience and practice driven guidance. All persons have biases, but we commit to the best and of our abilities to minimize biases in the assessed values. This tool is meant to assist, not to condemn or promote any given tool. Absolute judgement and dogmatism are unwelcome. If you are using this tool to prove a point, you are using it wrong. Can you trust it? Sure. Should this tool alone form your judgements during decision making? No, it should not.
Why is the model designed the way it is?
The model is known (at current time) to be primitive/low-sophistication. Nonetheless, I surmise it does a better job at evaluating PL fitness than the average-developerâ„¢'s gut feeling, given the breadth of weighted dimensions in the model. Want to improve it? Please send a GitHub issue with a very concise explanation of your proposal. I am biased towards the default model having a high signal:complexity ratio. If a better model could be done at high complexity, we can work on supporting remote model loading.
I think the input parameters could be better. Can we change them?
Yes. Please send a GitHub issue with a very concise explanation of your proposal. The model should be as simple as possible at the known loss of model fidelity.
Can we use a different model entirely?
Absolutely. The functionality is not yet baked in, but this should absolutely accept models as input, versus purely the default model.
score = f(model, langData, userValues)
I disagree with the model. Can we tune the values?
Sure! Send a PR. We reserve the right to reject suggestions.
When I do X, this says A is better than B. That is definitely not correct. Why?
There very well could be mis-modeling. Let us work to correct it. Please open an issue and make a suggestion.
Who makes all the rules here?
I do! This is a single person project. I am willing to expand ownership to a counsel of informed experts. You must demonstrate experience, sympathy, empathy, and the pursuit of nirvana. I will check a sample of your comment history in public GitHub. You must, above all else, be demonstrably kind in your programming public life on GitHub.
I keep getting an obscure language recommended. Why?
I regret to inform that the language to which you are referring is infact not obscure.