Hi there,

What better way to celebrate Canada Day than to talk about Java, the legacy of a Canadian computer scientist, James Gosling.

Java is a general-purpose computer-programming language that is:
• concurrent,
• class-based,
• object-oriented, and
• specifically designed to have as few implementation dependencies as possible.

It is intended to let application developers “write once, run anywhere” (WORA), meaning that compiled

Java code can run on all platforms that support Java without the need for recompilation.

Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. […]

Java was originally developed by James Gosling at Sun Microsystems[…]. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

Source: Wikipedia


Java :: Features

Java features

Java features


Several articles describe quite in depth Java’s many features.

I found an article that talked about Java’s features on JavaTPoint. Here is a recap of the features discussed in the article:



“Java is very easy to learn and its syntax is simple, clean and easy to understand.” — JavaTPoint



“Java is object-oriented programming language. Everything in Java is an object.” — JavaTPoint


Platform Independent

“Java code can run on all platforms that support Java without the need for recompilation” —

Java is a “write once, run anywhere” type of language.



“Java is best known for its security. With Java, we can develop virus-free systems. Java is secured because:

• No explicit pointer
• Java Programs run inside virtual machine sandbox” — JavaTPoint



“Robust simply means strong. Java is robust because:

• It uses strong memory management.
• There are lack of pointers that avoids security problems.
• There is automatic garbage collection in java which runs on the Java Virtual Machine to get rid of objects which are not being used by a Java application anymore.
• There is exception handling and type checking mechanism in java.” — JavaTPoint



“Java is architecture neutral because there is no implementation dependent features e.g. size of primitive types is fixed.

In C programming, int data type occupies 2 bytes of memory for 32-bit architecture and 4 bytes of memory for 64-bit architecture. But in java, it occupies 4 bytes of memory for both 32 and 64 bit architectures.” — JavaTPoint



“Java is portable because it facilitates you to carry the java bytecode to any platform. It doesn’t require any type of implementation.” — JavaTPoint



“Java is faster than other traditional interpreted programming languages because Java bytecode is “close” to native code. It is still a little bit slower than a compiled language (e.g. C++). Java is an interpreted language that is why it is slower than compiled languages e.g. C, C++ etc.” — JavaTPoint



“Java is distributed because it facilitates users to create distributed applications in java. RMI and EJB are used for creating distributed applications. This feature of Java makes us able to access files by calling the methods from any machine on the internet.” — JavaTPoint



“A thread is like a separate program, executing concurrently. We can write Java programs that deal with many tasks at once by defining multiple threads. The main advantage of multi-threading is that it doesn’t occupy memory for each thread. It shares a common memory area.” — JavaTPoint



Java is a dynamic language. It supports dynamic loading of classes. It means classes are loaded on demand. It also supports functions from its native languages i.e. C and C++.

Java supports dynamic compilation and automatic memory management (garbage collection).” — JavaTPoint


Java :: Users Headcount

So, the question is: “how many people use Java around the world?”

I have not found an updated estimate for 2018 or even for 2017. From what I read, that number oscillated around 9 million developers in 2010.

Here are some articles to consider:


Java :: Many Uses

Because of its many features, Java is the keystone of many online games, video applications, chat applications, banking applications, trading applications, e-Commerce applications (such as a shopping cart), etc.

Here are some concrete examples:

NASA :: WorldWind

NASA Worldwind Java

NASA Worldwind Java

NASA WorldWind Java enables you to build a cross-platform geospatial desktop application in Java” — NASA WorldWind.


WorldWind Java GitHub repository


Trading Application :: MUREX

This trading application, written in Java, provides a fully integrated front-to-back for Banks connectivity.

"Bank of China has chosen Murex's MX.3 platform to provide a fully integrated front-to-back solution for treasury and trading." -- WatersTechnology


Java :: Set-up

  1. Download Java
  2. Install Eclipse


Java :: “Hello World!”

Write your first program in Java:

  1. Open Eclipse
  2. Click “Workbench” on the top-right corner of the screen
  3. Click on the arrow of the new icon (a menu will unfold)
  4. Click on Java Project
  5. Name your Java project and click “Finish”
  6. Click on “Create”
Java new project

Java new project