As we’ve discussed previously James Gosling, Patrick Naughton and Mike Sheridan began a noble endeavor in the summer of 1991. The three cohorts set off on an epic journey to create a new programming language, Java. However there is more to the story than we discussed originally. The history of Java is missing a key chapter. That chapter is the development of Java’s Graphic User interface. Over the years since Java’s inception the Graphic User Interface has gone through many changes. The Abstract Windows Toolkit started off as a simple toolkit which was released by Sun Microsystems, and soon after was made more robust with additional libraries.
Originally released with Java in 1995; this toolkit allowed developers to utilize the subroutines built into the operating system. This approach allowed Java developers to create applications that appeared like native applications. An application run on a Windows Operating System would appear different than an application run on a Mac Operating System. For some developers this was a great feature others however preferred their application to look the same across all platforms.
By December of 1996 a new library was introduced; Swing as it was dubbed allowed Java developers the ability to modify the appearance of every component of the Graphic User Interface without major modification of the application code. Originally Swing was a separate library that developers had to download, since then it has been implemented into the Java Standard Edition. At its creation Swing didn’t always play nicely with the original Abstract Windows Toolkit and all though it is referred to as an extension of the Abstract Windows Toolkit it was widely discouraged from intermingling code from the Abstract Windows Toolkit coupling it with the new improved Swing library.
Swing wasn’t perfect, but it was a step in the right direction, the reason the Abstract Windows Toolkit and the Swing library didn’t play well together was mainly due to z-order irreconcilabilities. The z-order in programming is a layering effect telling the application’s Graphic User Interface what 2D object is in the foreground, midground, background and all the layers in between. Subsequently this problem was resolved with the release of Java 6 update 10 in October of 2008.
Interestingly enough Sun Microsystems had also been overhauling their Abstract Windows Toolkit during this same time period. JavaFX was released only a few months after resolving the z-order problems of JavaFX’s predecessor. A changing of the guard, tides, or whatever colloquialism you prefer, was on the horizon. By 2009 Sun Microsystems was acquired by the Oracle Corporation and soon after James Gosling resigned from Oracle on April 2, 2010. With these changes in the organization Oracle continued to push for the evolution of Java, one such push was continuing to evolve JavaFX.
With the Oracle corporation’s acquisition of Java a new renaissance had begun. Renaissance French for rebirth, is exactly what Oracle endeavored, Java has been continually pushed and has evolved into the premier programming language that has withstood the test of time. Since its noble beginning in 1991 to this very day Java has grown in popularity utilized around the world. JavaFX expanded the original vision of Sun Microsystems taking it from a language to create applications utilized for platforms to the demands of a now flourishing web community. We continue to see Oracles push for growth with Java spreading to mobile platforms. Android, one of the largest mobile phone platforms, was dependent on Java with the majority of its apps created with Java up until only recently switching to Kotlin.
Resources
History of Java programming language (n.d.) Retrieved from: https://www.freejavaguide.com/history.html#:~:text=Java%20is%20an%20object%2Doriented,Microsystems%20in%20the%20early%201990s.&text=Java%20is%20only%20distantly%20related,James%20Gosling%20in%20June%201991.
Andrew Binstock (2015, May 20) Java’s 20 Years of Innovation. Retrieved from:
https://www.forbes.com/sites/oracle/2015/05/20/Javas-20-years-of-innovation/#3a9ceaef11d7
James Gosling, Henry McGilton (1996, May) The Java Language Environment: Contents. Retrieved from: https://www.oracle.com/Java/technologies/language-environment.html
JavaFX (21 August 2020) retrieved from: https://en.wikipedia.org/wiki/JavaFX
Swing (Java) (21 August 2020) retrieved from: https://en.wikipedia.org/wiki/Swing_(Java)
Abstract Windows Toolkit (21 August 2020) retrieved from: https://en.wikipedia.org/wiki/Abstract_Window_Toolkit