C is a classic language choice for research computing, and it can be used to produce very efficient applications. It has a steep learning curve compared to some other languages, particularly when it comes to pointers and memory management; few languages provide C’s level of flexibility in this area, and its “close to the hardware” approach may seem intimidating at first. If this is the case, we have tutorials to help gradually introduce you to the language.
You don’t need to write your entire application in C to benefit from it, because C is used to extend other languages with new functionality that is faster than natively written code (e.g. you can extend Python with code written in C). You can also integrate GPU programming with your C applications.
What about C++?
C++ is a separate language, but it is a superset of C. In other words,
Availability and Setup on Our Systems
You can compile C and C++ source code using several compilers installed on our system. If you are using the SCC cluster, we also have several libraries written in C that are useful to scientific computing.