Alan Z. Uster - Fotolia

How do I understand runtime environments?

Whether it's C, Java or Adobe, it's important to understand the differences among runtime environments. Expert Stephen J. Bigelow outlines the various choices.

There are many specific examples of runtime environments used in conventional application programming. Here are just a few examples to consider.

The venerable C language uses a runtime environment -- the C compiler inserts runtime instructions into the executable image (the compiled .exe file). The runtime instructions create runtime environments that can manage the processor, handle local variables and so on throughout the program's execution. However, since runtime environments are typically incorporated as an integral part of the C executable (nothing separate needs to be installed or configured), the role of the runtime environment is easily overlooked or forgotten.


There are also more direct iterations of runtime environments, such as for Java applications. Java Runtime Environment (JRE) is an established set of tools for creating Java applications. JRE includes Java virtual machines, program classes and associated program libraries. JRE also provides a common platform for running Java applets or applications on any computer with JRE installed. By comparison, Microsoft's .NET Framework uses common language runtime for running .NET applications.

On WinRT

Microsoft employs a runtime environment, such as Windows Runtime (WinRT), to provide a common software architecture for application development in C++/CX, C#, Visual Basic, .NET and JavaScript. The idea behind these runtime environments is that, regardless of the development language, the resulting applications can all support x86 and ARM processors while running securely within a sandboxed execution area and handle interoperable APIs. WinRT provides the common interface to the underlying hardware.

There are also more interpreted runtime environments. A prime example is Adobe Flash Player, which uses a runtime plug-in to handle flash code -- allowing the same code to run on myriad different devices, whether through browsers or native OSes. Even stand-alone execution application models invoked by APIs, such as Portable OS Interface threads (POSIX threads or pthreads) will typically include some form of runtime environment in order to implement the application's execution.

Next Steps

Get your hands around .NET

The ultimate guide to everything .NET

WinRT and Windows 10 tips

Dig Deeper on Software development lifecycle

Cloud Computing
App Architecture