Why Cyclone

C is not going away

Although newer languages (Java, C#, Perl, PHP, Python, Ruby, …) are eclipsing C in usage and vitality, C is not going away. In fact, C programs will comprise the core of our computing environment for the foreseeable future. 95% of the code running on your desktop today (2006) is written in C, or its relative, C++ (e.g., the OS, your mail client and web browser).

There are a number of reasons for this, but they all boil down to this: C gives programmers control over resources. The programmer controls memory layout, which affects performance (an array of structs in C is contiguous in memory, but an array of objects in Java may not be contiguous). The programmer controls when memory gets allocated and deallocated, and can reuse already allocated memory. And so on.

C programs can therefore be extremely efficient (at the price of programming effort). In contrast, the newer languages all offer programmer convenience at the expense of control. Put another way, from a bird’s eye view, all of the new languages are about the same, while C is an entirely different creature.

Core infrastructure that is already written in C or that requires maximal efficiency (the OS) will continue to rely on C for some time.

C is unsafe

The problem with this is that it is very easy to write C code that is vulnerable to attack. Conversely, it is very hard to write C code that is not vulnerable to buffer overflows and similar bugs.

Furthermore, the programs that are written in C are those most in need of hardening: the operating system and network servers.

Therefore, Cyclone

Cyclone thus tries to fill an empty niche: the safe language with C’s level of control and efficiency.