Assignment 4: Java Applets

What is a JAVA Applet?

 A Java applet is a small application delivered to users in the form of bytecode. Though this program is usually written in Java it can also be written in another language like Jython, JRuby, or Eiffel that compiles to Java bytecode. An applet is embedded inside a web page. When the user launch it the program executes within a Java Virtual Machine (JVM) in a process separate from the web browser itself, yet it can appear in a frame of the web page, in a new application window, or in Sun‘s AppletViewer, a stand-alone tool for testing applets. Since Java’s bytecode is cross-platform (or platform independent), Java applets can be executed by browsers (or other clients) for many platforms, including Microsoft Windows, FreeBSD, Unix, OS X and Linux.

History and evolution

Java applets were created by programmers at Sun Microsystems in 1995. They were James Gosig, Patrick Naughton and Mike Sheridan who called themselves the Green Team. Java Applets were originally meant to be part of products from the cable company, but developers of Java Applets could not convince the cable industry to use their invention. The most popular web browsers in the 1990s were Netscape and Mosaic. Both browsers displayed still images and text. Java applets allowed the programmer to write applications for the web. For the first time, using Java Applets, images could move. Animation allowed webpages to come alive.  Applets immediately took the web world by storm because they added the ability to display dynamic web content within browsers in what was essentially a static HTML world.

Sun filed a lawsuit in 1997 after Microsoft created a modified Java Virtual Machine of their own, which shipped with Internet Explorer. Sun sued Microsoft for breach of trademark, as the point of Java was that there should be no proprietary extensions and that code should work everywhere. Microsoft agreed to pay Sun $20 million, and Sun agreed to grant Microsoft limited license to use Java without modifications only and for a limited time.

Microsoft continued to ship its own unmodified Java virtual machine. Over years it has become extremely outdated yet still default for Internet Explorer. In 2002 Sun filed an antitrust lawsuit, claiming that Microsoft’s attempts at illegal monopolization have harmed the Java platform. Sun demanded Microsoft distribute Sun’s current, binary implementation of Java technology as part of Windows, distribute it as a recommended update for older Microsoft desktop operating systems and stop the distribution of Microsoft’s Virtual Machine (as its licensing time, agreed in the prior lawsuit, had expired).  Microsoft paid $700 million for pending antitrust issues, another $900 million for patent issues and a $350 million royalty fee to use Sun’s software in the future

 Google has developed their own Android platform that uses Java features and concepts, yet is incompatible with standard libraries. This may be a violation of conditions under which Sun granted OpenJDK patents to use open source Java for all. In 2010, Oracle sued Google for using Java “in a wrong way”, claiming that “Google’s Android competes with Oracle America’s Java” and that “Google has been aware of Sun’s patent portfolio since Google hired certain former Sun Java engineers”. In May 2012 the jury in this case found that Google did not infringe on Oracle’s patents, and the trial judge ruled that the structure of the Java APIs used by Google was not copyrightable

It appeared that using Java applets was the best way to add dynamic content to web pages at the beginning.  When Dynamic HTML finally started taking shape, things changed severely. The Document Object Model (DOM) exposes elements within a web page as programmable components with their own set of properties and methods. Even though the implementation of dynamic HTML within the Internet Explorer and Netscape Navigator browsers is vastly different, the underlying theme of programmatically changing content using scripting code within the displayed page itself was a BIG hit. Applets suddenly started to look old and primitive. The W3C’s endorsement of Dynamic HTML finally set the tone for the new breed of sophisticated, dynamic web pages.

Real life usage

Apart from being used primarily for playing online games, Java Applets are still used in many different ways. For example Java applets are used in remote control devices. The applets direct the movement of the electronic devices. In smart homes java applets are used to program light switches, preprogram the TV, and the house alarm. Java applets are also used in smart phones like the Iphone and Blackberry. They can be used from a cell phone to keep track of daily appointments, read current stock trend or make a reservation at your favorite restaurant.

Example:

NASA World Wind (open source) is a second generation applet that makes heavy use of OpenGL and on-demand data downloading to provide a detailed 3D map of the world.

 NASA World Wind (open source) is a second generation applet[6] that makes heavy use of OpenGL and on-demand data downloading to provide a detailed 3D map of the world.


Browser compatibility

 Internet Explorer

Internet Explorer is the most widely used web browser in the world and offers complete support for Java applets. Internet Explorer is currently available for the Windows operating system.The newer versions utilize Sun Microsystems Java Virtual Machine (VM). While Microsoft had developed it’s own VM, it no longer offers its customers that option.

Apple Safari

Apple Safari offers full support for Java applets. Safari uses Sun’s Java Virtual Machine and has supported Java since first release. Safari is available on Windows and Mac operating systems.

Firefox

Mozilla’s Firefox browser is a very popular web browser and Java is fully supported via the Java Plug-in for Firefox. To properly run Java applets you must also install Java 6 Update 15 from Sun Microsystems. Firefox runs on all major desktop platforms.

Opera

Opera is another browser that is fully capableof running Java applets. It directly accesses the Java virtual machine, as opposed to accessing it through a plug-in. Opera is available for all major desktop operating systems.

Chrome

Google’s Chrome browserwas designed to offer a full Java experienceand  accesses Java via a plug in. Chrome is available for Windows, Mac and Linux

Mobile Browsers

Several mobile browsers support Java applets. The mobile edition of Java is called Java Platform, Micro Edition (Java ME). Java ME browsers don’t normally offer the full Java experience, and usability will differ from device to device. The mobile virtual machine is known as the K Virtual Machine, and in most cases most be installed on the phone by the manufacturer. Notable exceptions are Apple’s IOS devices and Google’s Android devices. IOS devices do not run applets. Android offers limited applet support.

 

Advantages and Disadvantages

 Advantages:

  • Java applets have increased interactivity for users.
  • Java is designed to be cross-platform compatible, meaning the same program can be used on multiple operating systems.
  • Safety (Before downloading and running on your computer, Java applets must have the user’s approval. This protects your computer by not allowing unwanted applets to download. Java also has built-in security that protects applets from doing anything harmful to your computer. )
  • Unlike most web programming languages, Java allows  dynamic server and client communication.)
  • Java makes it easy to integrate the use of a database in an applet.

Disadvantages:

  •  It requires the Java plug-in.
  • Some browsers, notably mobile browsers running Apple iOS or Android do not run Java applets at all.
  • Java automatic installation or update may fail if a proxy server is used to access the web.
  • As with any client-side scripting, security restrictions may make it difficult or even impossible for an untrusted applet to achieve the desired goals.
  • Some applets require a specific JRE. If an applet requires a newer JRE than available on the system, or a specific JRE, the user running it the first time will need to wait for the large JRE download to complete.

Sources & references;

  1. http://www.javathings.com/java-applets-and-their-advantages/
  2. http://www.ehow.com/list_6183415_advantages-java-applets.html
  3. http://www.codeproject.com/Articles/571/Java-to-JavaScript-Communication
  4. http://en.wikipedia.org/wiki/Java_applet#1997_Sun_vs_Microsoft
  5. http://docs.oracle.com/javase/tutorial/deployment/applet/
  6. http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Java_applet.html
  7. http://voices.yahoo.com/java-applets-history-current-today-6033802.html?cat=15
  8. http://www2.gsu.edu/~matpxp/SwIG/talks/java_applets.pdf
  9. http://jhippjava.blogspot.com/2011/08/historical-history-of-java-applets.html
  10. http://solitarygeek.com/java/five-different-uses-of-java-applets
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s