~~SLIDESHOW~~
Simply “Saying Java is simpler than C++ is like saying K2 is shorter than Everest” Larry O’Brien.
The Java Platform consists of the Java Virtual Machine which is a run-time system that has been ported to a number of platforms. The JVM interfaces with the platform operating systems services providing access to native file system, the network and the screen for graphical user interfaces. It executes byte-codes which are compiled class files.
Built on top of the JVM is a very large and comprehensive set of library files (the Java Runtime Environment) that are available on all platforms that Java runs on. These provide the Java APIs.
Included in the platform are deployment facilities which enable Java applications to be delivered as applets, applications or on-demand via Java Web Start and above these are the development tools which make up the Java Development Kit (compilers, RMI compilers, etc) and on top, sits the Java programming language; which is actually a very small part of the platform.
In the last few years, Java the language has been joined by many other possibilities. Some of these are other languages such as Python and Ruby that have been ported to the Java platform (as Jython and JRuby). Others are new languages such as Clojure a language for programming multi-threaded applications; Scala a multi-paradigm programming language for the JVM; Rhino a JavaScript implementation targeted particular at server-side applications, and JavaFX, a new language for client-side applications.
Many of these languages are so-called dynamic languages. Others are compiled like Java is. However, all execute as JVM bytecode and all have full access to the Java Platform APIs, which also means that they are portable and support the write-once run-anywhere feature that is Java's principle value proposition.
Of particular interest to us is the dynamic language Groovy, which is compatible with Java (with a couple of exceptions, a Java Program is a Groovy Program) It differs in that it has a more relaxed syntax, it is dynamically typed, it has key APIs (lists, maps, ranges and regular expressions) as literal values and it supports closures.
These make Groovy a higher-level language but also a more productive language. And important for us, an easier language to learn than Java.
The GDK, exploits many of its higher-level features to enhance many key Java APIs, such as Strings, collections, threads, IO and exceptions, and make them even easier to use. It also introduces new features such as builders that make the manipulation of tree-like structures such as XML files, SQL queries and Swing user interfaces easier to construct and manipulate.
Groovy is a very easy language to pick up if you are already a Java programmer … but it's also easier to learn if you're an unexperienced programmer.
Source: Groovy frequently asked questions.
Java is a very large ecosystem. As well as the Java Platform Standard Edition there is a reduced capability version called Java Mobile Edition (Java ME) which is used in appliances (Personal Video Recorders, BlueRay players, PDAs, mobile phones); the Enterprise Edition which adds many features required for enterprise computing and a rich ecosystem of third party (often open source) APIs. All these APIs are programmable in Java and any of the other languages that can produce Java byte codes for the JVM. This makes Java a very capable and productive platform, which is usable within the very smallest embedded device right up to large enterprise computing applications.
Calendar on the Blackboard site.