Skip to content

Why Java

Dave edited this page Oct 4, 2018 · 53 revisions

The programming language is an "implementation decision"? No!

Well, technically yes, because there are many languages that compiled to JVM bytecodes, and our requirement is that programs run on the JVM. A Bleeding Edge trendy language such as Scala compiles to the JVM and Scala objects and Java objects can be used interchangeably.

So there is an implementation decision to choice among those languages, but it is not a choice among "any langanguare that is compilable to the JVM" .. it is programs that are compiled to the JVM.

The practical reality is that Java is the chosen language for Apps For Work, and it is not an implementation decision.

The reason for this is that the problem is to get programs to talk to programs, because it is programs that produce data, it is programs consume data, and it is programs that add-value to data.

The value that program adds might be coming of out of the head of human, but it is a program that stores that value into data.

The consumer of the data might be a human looking at a visual representation of what the data means, but it is a program that deciphers the data into a that visual representation.

Humans do not look at, write, or change 1s and 0s. Programs do.

It is not a datafile, available for a program to parse into data that it can work with, because that creates two problems and solves none. Making it "available" and "parsing". Making it available introduces humans to the process. I don't want to have to "make available" the data to a program. It's the program's job to get it. And if a program has chosen to serialize the data, and, in doing so, imposes on another program the need to deserialize it (parse it), I - as the human using this system - don't care. That's the programs' job.

So Java is the language for Apps For Work and the Part Interface is how the language is used communicate the data, and Schemas are how programs understand the data to the extent that their understanding isn't hardwired.

Java is the best choice because

  1. Java is portable. Billions of systems can run the JVM. Any that does not can be made to do so easily, or if not they need to be euthanized.

  2. Java is a powerful "traffic cop", meaning that it connects to anything. It communicates natively over TCP/IP, and through the JNI to other programming environments. (See, for example, the OPM Software Structure](OPM-Software-Structure). This means that where the "real" data and/or algorithm is not in Java, a java language adapter can be written so that is "appears to" in the JVM, hiding the complexity for all other programs.

  3. Java is now so firmly established in the programming industry that it isn't going away. Java, along with Javascript and SQL, are most common programming languages, meaning that skills are available (though not necessarily cheap).

Reading this book

is easier to read if you go to http://apps4work.info/book

Authors and editor please note: This is a draft for a book in a form that can be automatically manipulated. Stuff that looks like this is typically commentary to you and not the reader!

  • The purpose of this book is described here

  • The linear sequence of the book is defined here. You can change the sequence by moving lines within that file.

  • Also: Cross reference of pages | Orphans and broken links

  • Don't waste your time fixing up automatic content - it will be fixed automatically - so your changes will be lost.

Clone this wiki locally