I have heard of several things, quoted from Wikipedia:
-
A JVM is distributed along with a set of standard class libraries that implement the Java application programming interface (API). Appropriate APIs bundled together form the Java Runtime Environment (JRE).
-
Adobe Integrated Runtime, also known as Adobe AIR, is a cross-platform runtime environment developed by Adobe Systems for building Rich Internet Applications (RIA) using Adobe Flash, Adobe Flex, HTML, and Ajax, that can be run as desktop applications.
-
The .NET Framework (pronounced dot net) is a software framework for Microsoft Windows operating systems. It includes a large library, and it supports several programming languages which allows language interoperability (each language can use code written in other languages). The .NET library is available to all the programming languages that .NET supports.
As described above, if I understand correctly, the first two seem to be related to "runtime environment", but there is no related Wikipedia to explain what "runtime environment" is.
The third is said to be a "Software framework", which has a Wikipedia article as:
a software framework is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code, thus providing specific functionality. Frameworks are a special case of software libraries in that they are reusable abstractions of code wrapped in a well-defined Application programming interface (API), yet they contain some key distinguishing features that separate them from normal libraries.
So my questions are:
- Are "Runtime Environment" and "Software framework" the same thing? If not, how do they differ, and do they belong to some common category?
- Are they all programming libraries/APIs that can be used by programmers to develop their own software?
- The three examples are often required when installing some software. Do they belong to the concept of virtual machine? If not, what category do they belong to? How is that category different from virtual machine?
Thanks and regards!
PS: I don't know if this post is more suitable for superuser or for stackoverflow, as the three examples are often required when installing some software, and they are also seem to be providing API for software developers.