6

I want to know in what programming language(s) is written a particular piece of software (for instance the Skype client or the Tomcat server).

While this information can usually be found by inspecting binaries with specialized pattern matching, it requires a lot of time and experience. For instance, distinguishing compiled binaries generated from C and C++ is very difficult when you don't have the source code, but not impossible.

Is there a database where this information is gathered?

It could be a collaborative database, possibly using bots to find and inspect binaries. It should contain open source software as well as proprietary software.

As an example, Github provides this information for projects hosted on their servers, for instance OpenOffice:

OpenOffice programming languages

  • I've heard that the github identification is faulty -- it (used to?) rely on file extensions for identification, and there were some config files that had the same extensions as less common languages. You also have a lot of projects that may use multiple languages (does each language then get a fractional share? do you weight it based on a ratio of the files? lines of code?) How do you handle where the main program is written in C, but the installer scripts are Perl or shell? How about a program where the wrapper is csh, which calls C, which generates Perl? – Joe Aug 26 '14 at 15:41
  • 1
    Oh ... and if you check wikipedia for lists of different types of software, there will often be a matrix of features, but also includes language, license, OS, etc. eg, en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems – Joe Aug 26 '14 at 15:42
  • "do you weight it based on a ratio of the files? lines of code?": Any is fine. "csh, which calls C, which generates Perl?": Static analysis of binaries would answer csh+C in this case, I guess. – Nicolas Raoul Aug 27 '14 at 3:17
  • Wikipedia has the info for most open source project, but lacks it for most proprietary software, because investigating and adding the info would be Original Research, which is forbidden on Wikipedia. If the database I described existed, Wikipedia editors could reference it to add the info. – Nicolas Raoul Aug 27 '14 at 3:19
2

Wikidata has a property called programming language that should provide the data you are looking for.

Examples: Skype, Tomcat

You can also have a look at a list of available items that contain the property "programming language".

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.