-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
That's a very interesting question. It used to be that you could write a piece of code for your project or for your research group and use it for a handful of projects, then go and write a new one for the next set of projects. These days, however, codes are generally written in collaborations, and you design a code and use it for years, modifying it or enhancing it as your projects require. So, ease of use and maintainability should be important. However, scientists are pretty awful software developers. If you want to die inside, go take a look at the Einstein Toolkit, which is a major software platform currently used in my field. The Enzo cosmology code (not used in my field, but another widely used code I'm familiar with) will also likely give you nightmares.
There are various ways you can do metaprogramming in C. Ryan Fleury's Data Desk is one example of how you can do inspection and introspection: https://github.com/ryanfleury/data_desk. Writing a C program that acts as a pre-compiler for your other C code is another example; you can make your own system for generics that way for example.