# The C programming language One step above [assembly code](computers-programming-assembly.md). Has been the go-to for making *very* fast code for quite a long time. It was originally created to work with [Unix](computers-os-unix.md). It can be a bit painful to work with, especially with things like pointers, and that's why other C-based languages have tried to fill in the gaps. There are a wide variety of C-based languages: - C++ was originally called C with Classes. It has many [features](computers-programming.md) that C does *not* have built-in. It has historically been one of the most popular [game development](computers-software-gamedev.md) languages for a very long time. C syntax is *not* a good idea to write in C++. - Objective-C is Apple's attempt at improving on C, so it's often the fastest way to program for iOS. All valid C code is valid Objective-C code. - Java and JavaScript were both inspired by C, but have their own spinoffs that make them entirely different. However, C by itself is the perfect language for working with very hardware-leaning applications, such as the [Raspberry Pi/Arduino](computers-embedded.md) or [robotics](computers-robotics.md).