EN FR
Homepage Inria website


Section: New Software and Platforms

Hop

Keywords: Domotique - Web 2.0 - Iot - Functional language - Programming

Scientific Description

Hop.js is a platform for web, cloud, and IoT applications. Its development environment is composed of:

  • a programming language named HopScript, which is based on ECMAScript 262, //aka// JavaScript;

  • an optimized web server;

  • on-the-fly compilers for generating HTML, CSS, and client-side JavaScript;

  • an ahead-of-time compiler for compiling JavaScript to native code;

  • numerous APIs for networking, multimedia, robotics, IoT, etc.

The HopScript language extends JavaScript to consistently define the server and client part of web applications and IoT applications. HopScript supports syntactic forms that help creating HTML elements. It supports services that enable function calls over HTTP. Being at higher level than traditional Ajax programming, Hop.js services avoid the burden and pitfalls of URL management and explicit data marshalling. They combine the benefits of a high level RPC mechanism and low level HTTP compatibility.

Although Hop.js can be used to develop traditional web servers, it is particularly adapted to the development of web applications embedded into devices, where the server and client part of the application are intimately interoperating with each other. The programing model of Hop.js fosters the joint specification of server and client code, and allows the rapid development of web user interfaces, on the client, controlling the execution of the distributed application. By defining a single data model, providing functions that can run indifferently on both sides, and almost forgetting about client-server protocols, Hop.js seems well suited for agile development of web applications for this class of applications.