codethesaurus / codethesaur.us

A polyglot developer reference tool to compare programming language concepts side-by-side! Great for learning new languages or using for reference.
https://codethesaur.us
GNU Affero General Public License v3.0
282 stars 162 forks source link

Abstract out the matching algorithm architecture to allow other types of comparisons #685

Open geekygirlsarah opened 11 months ago

geekygirlsarah commented 11 months ago

Description

While comparing programming languages was the original purpose of Code Thesaurus, the goal was to enable other types of searches for things. This could include things like:

Right now the main matching algorithm is hard-coded for languages. It is also heavily tied into the reference and compare page views. This work would need to refactor the algorithms out of the views and into their own class, and also refactor the variables to be more generic for any types of comparisons. The end result would be something that's easy to add a new comparison type to the home page and with new views and thesaurus files, we have an easy way to scale this concept to multiple comparison types.

Requirements

Additional Notes

I haven't thought too much on this yet but will probably start looking into it during October 2023 (Hacktoberfest). I welcome anyone that wants to join in on this!

seabeePraveen commented 11 months ago

hello @geekygirlsarah i have gone through the above mentioned detail but im not able to figure out whats the issue is. could u please explain the issue?

geekygirlsarah commented 11 months ago

@seabeePraveen sorry, I meant to write back and lost the tab I opened in a sea of other tabs!

The algorithm right now is heavily tied to the specific language compare and language reference view code. They are also written very specific to language lookups. Those algorithms need to be refactored out into their own class or something so that other types of lookups could happen (by their own views and thesaurus files) but also so the algorithm is written more generically in how it compares things.

I updated the issue's wording a bit too.