JavaScript++ arrive en version beta

Par:
fredericmazue

mer, 08/06/2016 - 15:15

JavaScript++, ou encore JS++, est comme son nom le suggère, un sur-ensemble de JavaScript - encore un diront certains - qui, d'une certaine façon, veut être à JavaScript ce que C++ est à C.

JavaScript++ est décrit comme un JavaScript avec des classes et des types. (Oui C est déjà typé lui :-)

JS++ est un langage compilé. Le compilateur JS++ convertit le code JavaScript++ en JavaScript. Lors de la phase de compilation, le compilateur vérifie la correction du code, et émet des erreurs le cas échéant. Les développeurs de JS++ pointent cela comme un important avantage sur JavaScript, ce dernier n'émettant les erreurs qu'à l'exécution. JavaScript++ est donc présenté comme un langage permettant du code robuste et des applications fiables. Le type des variables est déclaré dans le code, et ce type est garanti correct aussi bien au moment de la compilation qu'à l'exécution, qu'il soit un int, un unsigned short, une instance de la classe Employee, etc.

JavaScript++ peut utiliser d'autres librairies JavaScript. Par exemple, les développeurs qui ont l'habitude de travailler avec la très populaire et efficace librairie jQuery apprécieront de pouvoir l'importer et l'utiliser comme ceci :

externaljQuery, $;
string url = $("#logo").attr("src");

Le code JS++, une fois compilé bien sûr, peut aussi être exécuté au sein de Node.js.

Le projet JavaScript++ a été initié en 2011, mais la première bêta publique a été publiée fin mai dernier seulement.

Pour donner un aperçu assez succinct de JavaScript++ et de ses possibilités, voici un exemple de code pris sur le site officiel.

// Modules and Comprehensive Standard Library
import System;
import Externals.DOM;

// Import all your favorite JavaScript libraries in just one line
external jQuery, $, Backbone, require;
// Nearly no learning curve
// You can keep writing regular JavaScript if you want
var x = 0, y = Math.floor(1.1);

// The only type system in the industry that is optional and "sound".
// In other words, if you choose to declare the type for a variable, it
// is guaranteed to always be correct - at compile time and runtime.

int counter = 0;    // This will always remain an 'int' - even at runtime
unsigned int x = 0; // This will always remain an 'unsigned int' - even at runtime
Employee e = new Employee();  // This will always remain an 'Employee' - even at runtime

byte[] rgbColors = [ 0xFF, 0xFA, 0xFF ];
string hello = String.format("Hello, {name}!", name);
bool test = "oops"; // The compiler catches this error for you

// Namespaces, classes, interfaces, and more included
module MyApplication
{
    class Employee
    {
        private string firstName = "John";
        private string lastName = "Smith";

        public void talk(string message)
        {
            // 100% compatible with regular JavaScript out of the box
            // Keep using all your favorite JavaScript libraries
            jQuery("#msgbox").text(message);
            $("#msgbox").show();
        }
    }
}

Le compilateur JavaScript++, la documentation du langage, et d'autres ressources sont accessibles depuis le site officiel www.onux.com/jspp

Le compilateur est pour l'instant disponible pour Windows, et Linux 32 et 64 bits. Une version Mac OS X est prévue.

Commentaires

javascript peut tourner cote serveur avec node.js par exemple....mais es tutilsié principalement cote navigateur.... tente e faire tourner du c, du c++ ou du java facielemnt dans un navigatuer et on en reparlera