
Ask HN: Is there a detailed structured database of programming languages? - qwerty456127
Every programming language can be qualified by a vast number of attributes and metrics. E.g. typing discipline, support for every particular programming concept, syntax type, support for particular platforms, execution style,  how old it is, how actively is it developed, how prone it is to breaking changes, various popularity metrics, average salary, attitude of employers towards remote jobs, availability of good libraries and frameworks for particular tasks and of intelligent IDEs etc.<p>Are there any projects trying to systematize this data in a single database you can query? There probably isn&#x27;t a perfect one that would already have or target to collect all the relevant data but perhaps there is one that can tell about a particular subset of the parameters?
======
smt88
Almost all of those things are very subjective, including even typing
discipline. C# has a strong static type system, right? Well, it has dynamic
features and is hardly strong compared to, say, Haskell.

Wikipedia has all the hard facts, though not in an easy-to-query format.

~~~
qwerty456127
> C# has a strong static type system, right? Well, it has dynamic features and
> is hardly strong compared to, say, Haskell.

Well, we can say that C# is a statically-typed language with reflection, some
degree of support for dynamic typing and very limited degree of support for
type inference (variable declaration only). I've chosen to omit detalising
this in the question but I in fact meant typing discipline can be described
with a number of fields/tags rather than one field. Needless to say this kind
of description of a language can not be 100% perfect and deterministic so some
degree of subjectivity and imprecision is implied as acceptable.

> Wikipedia has all the hard facts, though not in an easy-to-query format

Exactly.

For example I'd like to find out if there is a statically typed language with
type inference that supports partial function application, type classes,
pattern matching and allows you to include imperative code inside your
functions (the only answer I know is Scala yet its type classes implementation
is not an integral part of the language).

