They say that fire brought man out of the dark ages, and the internal combustion engine brought us chugging into the industrial revolution.

Java turned 20 in May 2015. The formative years of what is potentially one the most important eras in the history of man kind. The technological revolution drives the economy, our social lives, and is actively shaping how we live.

What started as a side project for Java founder James Gosling, while he was at Sun Microsystems, has started something of its own revolution; The coding revolution.

Here are 4 ways Java changed programming forever:

  1. Rendered C nearly irrelevant

    Until Java hit the mainstream, C was the prevailing coding language in the industry. Well established in the community with the likes of COBOL and C++, commercial software developers at the time didn’t have the options that we have have today.

    In 1995, when Java first hit the main stage, the programming language C was running into very real obstacles.

    1. It required too many instructions to perform even simple tasks.
    2. It wasn’t easily translatable between platforms. Meaning, a program written for mainframes had difficulty being ported over to PC applications.

    Both of these things are what today continues to separate Java from other languages.

  2. Gave way to constant updates

    The same way some of our favorite Internet applications and video games are updated weekly or bi-weekly today, Java was one of the first pieces of software technology to start receiving consistent updates. Mainly because of the attention it garnered, and how quickly it captured the community’s imagination, Java quickly took on a life of its own and demanded the attention of its creators.

  3. Concurrent programming and computing

    With the meteoric rise of technology, and its increasing importance to contemporary society, of course human beings are looking for ways to code more, in less time. Java, and to a lesser degree C#, are two of the most commonly used computer languages to implement and fully utilize concurrent computing and programming.