Java refer to a computer programming language or software platform for computers. Java is an object-oriented programming language whose version 1.0 was published by Sun Microsystems in 1995. You will now see that Java is owned by the Oracle, and this is because it bought Sun Microsystems in 2009.
The origin of the name Java is not clear, although it is attributed to a type of coffee that was available to a coffee shop near the workplace of the team that developed it, perhaps it kept them awake for long nights of work. The original name was Oak Java, but it had to be changed because the name was already registered by another company.
A distinguishing feature of Java programming language is that the generated code can be run on various operating systems without recompiling the source code to something executable for each. To date, Java is one of the most popular programming languages in the world.
Java platform is a software environment that allows the development of programs using Java language and allows the execution of programs written in Java.
Earlier I mentioned that programs written in Java can be compiled once and run on various operating systems. This is achieved, thanks to the Java platform, which is placed in the middle of the program to facilitate the execution of the program. In other words, you cannot run programs written in Java without having Java platform installed on your computer.
Java platform can be downloaded for free and today runs on hundreds of millions of personal computers worldwide and on billions of devices such as mobile devices, television sets, specialized devices and game consoles.
When you download Java platform, you get several components i.e. the Runtime Environment (JRE), which consists of Java Virtual Machine (JVM), core classes of Java platform and libraries support. JRE is the part related to the execution of Java software and is only required to run Java in a web browser, allowing to run applets (application components that run within the context of another program) written in this language programming.
Java Platform, Micro Edition (Java ME) provides an environment for device applications such as mobile phones, DTV, Blu-Ray players, digital media devices, M2M modules and printers, to name a few.
Perhaps you have found references to Java SE. This is a name used since 2006 and it means Standard Edition, which is aimed at use in personal computers and servers. On the other hand, there is Java EE (Enterprise Edition), which is a corporate oriented applications with high resource requirements.
Java ME technology was originally created to mitigate the limitations associated with building applications for small devices.
An applet is a program written in Java programming language and is part of the components of a website. Applets have been used to provide functionality to Internet pages that cannot be satisfied using only HTML. The idea is that applets are small enough to provide a specific and clearly defined functionality.
The use of applets in Java programing became very convenient because the code is independent of the operating system that is running the browser, whether it is a Windows PC, a Mac or a computer with one of the variants of Linux. An applet code is executed by the browser itself, using what is called the JVM (Java Virtual Machine).
Java language started in 1995 and became popular during the years that followed. Even applets were written to achieve functionality that was implemented later with CSS and DHTML.
One of the biggest criticisms that have both applets and Java language is related to the security and vulnerabilities that have been exploited in code. This has resulted in modern browsers that block older versions of Java and even the most modern versions of Edge and Chrome no longer bring applets enabled by default and are there are increasingly browsers with this trend. With the proliferation of HTML5, the use of applets has declined and, despite the efforts of Oracle, it is a technology that tends to disappear.
Examples of functionality for applets that are used are as follows;
- Specialized functions such as applets to calculate the value of the angle inscribed in a circle and circumcenter of a triangle.
- Show image sequences and add visual effects.
- Show images with sounds and add sound effects.
- Allow the presentation of interactive graphs, reacting to actions that are taken with the mouse on the graph.
- Animations of texts and special effects on them.
- Create diagrams and graphs such as the classic pie slice chart.
- Simple games
Applets can be written in any programming language that supports generating Java cod such as Jython , JRuby , Pascal and Scala, among others.
Since the beginning of the decade of 2010, it became known that hackers continually are exploiting vulnerabilities in Java code, making a career circular fix vulnerabilities and find them until the conclusion in the community was problem by disabling Java and making a conscious process by users running Java code, a small drawback against the terrifying alternative of having Java code running around on webpages you visit. As I mentioned earlier, multiple browsers are opting to completely block the execution of applets and it seems to be a trend soon adopted by all browser that claim to have medium safety standards at least.
Unsigned applets do not have a certificate that identifies from a reliable source. They are also called if they do not have a name and information of its creator. This type of anonymity is considered as a very high security risk.
Self-signed applets have a certificate granted by the authors themselves or, in other words, do not have a certificate issued by a recognized authority. These types of applications are also very high risk.
The latest versions of Java display warnings when trying to run an applet from one of the two types mentioned above and even multiple platforms no longer accept execution. The third type of applet is signed with a certificate issued by a recognized authority and its creator information is available. In general, the risk is that the applications could have access to personal information during its execution.