Scriptool project, a successor for Openjdk 7

First of all, an important juridical fact: "fair use"

Java 7 interfaces are "clean", that is to say they do not use an implementation in their definition. This ensures that using Java 7 APIs respects the fair use rule.

 

Source dependencies for developing a project 

A first rule that I learned with Java and contemporary languages ​​is that using bytecode libraries for the dependencies of a source project is a mistake.

In the long run, you risk ending up with a library for which you do not have the sources and therefore which you will not be able to compile into another version of executable standards.

This means that when a source project depends on another library developed in Scriptool, this library must be imported in source form to compile the project.

Therefore, if the library is not available in source form then you will not be able to use it.

If you want to publish a reusable library you will have to publish its source code.

 

Scripting language like Python 

The language Scriptool should allow you to write a program and run it immediately without needing to set up a project or having to compile it before you can run it.

You open a text file; you write the program in your text editor. You save the file and if it contains no errors, the file runs simply by typing the file name into a terminal.

This is called scripting.


Clean APIs (Application Programming Interface)

Scripting is a good thing for being able to quickly write and then run a small program. But when you develop a program that contains several thousand instructions or more than a hundred classes, you have to get organized when setting up a project.

The language Scriptool integrates the project into the script itself as a binary archive which is unpackable to develop and compile the project.

The project must contain a build system which must result in the installation of the executable project for subsequent uses of the script.

So, a script is made up of three parts:

1) the scripting class as presented in the previous paragraph;

2) a json file containing fields for choosing the language version Scriptool and other useful data;

3) a decompressable binary archive file containing the entire project tree.

This third part deserves explanations: not only, during its installation, this project must place the compiled libraries so that they can be invoked from the scripting class of point 1, but it must also publish a set of interfaces which will be the only parts of the project library visible from the programs which use this script.

So to use a library developed in Scriptool, the list of qualified interface names (the names of their packages and their names) will be entered in the json file defined in point 2.

In this way we will achieve an encapsulation of the project's classes so that none of these classes should appear outside of this project.

To summarize, an API Scriptool, will consist only of the script class in source code and all the interfaces (as defined by Java 7) that this class can directly or indirectly make available to its callers.

Publication under GPL v2

Openjdk 7 is published under a free license which jointly includes an Oracle license and a GPLv2 license of this code.

For portions of the code inherited from Openjdk 7, we must respect GPLv2. The project will therefore be under GPLv2 (just like the Linux kernel).

There are, scattered throughout the Java code of Openjdk 7, certain portions which are (for example provided by IBM) under exclusive license for Openjdk 7 and authorized by their supplier only for Openjdk 7. We will therefore have to provide an implementation of these classes without using code whose license does not allow free evolution.

In this way, Scriptool will be able to maintain backward compatibility with Openjdk 7.

Originality of Scriptool

Scriptool is not a Java idiom. Scriptool is a programming language in its own right which has its own rules and specificities which make it an original language.

For that, Scriptool is based on a specific coding alphabet. This alphabet has only 64 characters. There are 32 characters for letters and 32 characters for symbols in the programming language.

This source code encoding is available in 3 versions:

Marscii-16,

Marscii-32 and

Marscii-64.

Where does the name Marscii come from?

The original idea for Marscii came from a science fiction movie called “The Martian”. In this movie, the hero (Matt Damon) finds himself abandoned alone on the planet Mars and having to survive on his own. To communicate with Earth, he has a reduced bandwidth (the width of the communication channel). He then had the idea of ​​using Ascii code to get around this problem.

It is obvious that in the space domain, bandwidth is a critical issue for all communication.

Seeing this, I immediately had the idea of Marscii-16: use 16 symbols to transmit text messages in English. I called this language Xalphabet, for hexa-alphabet.

The symbols of Marscii-16 are the ten decimal digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) and the six letters a, b, c, d, e and f.

Strict rules indicate how to convert text written only with the 26 letters of the English alphabet to create text without spaces or punctuation.

So the choice of code “Marscii” seemed easy to me by interpolating Mars and Ascii.

Now our Marscii-64 is ready to be used to write in English or to write programs Scriptool.

 

 

 

Webmiel

Christophe Roux

Développeur Logiciel

Copyright ©. Tous droits réservés.

Nous avons besoin de votre consentement pour charger les traductions

Nous utilisons un service tiers pour traduire le contenu du site web qui peut collecter des données sur votre activité. Veuillez consulter les détails dans la politique de confidentialité et accepter le service pour voir les traductions.