Hop.js can be used to develop traditional web servers but it is particularly adapted to develop web applications embedded into devices, where the server and client parts of the application are intimately interoperating with each other. Its programing model fosters the joint specification of server and client codes. By defining a single data model, providing functions that can run indifferently on both sides, and almost forgetting about client-server protocols, Hop.js is well suited for agile development of web applications for this class of applications. By promoting HTML as a primitive datatype, it allows the rapid development of web user interfaces. As an example, Hop.js has already been successfully used as the core framework to develop embedded and cloud applications for connected robots and IoT devices.
The tutorial will consist in an introduction to multitier programming with Hop.js. The tutorial will start with an introduction to the programming language and will be followed by the programming of three almost realistic web examples.
- first, we will program simple basic web pages with simple user interactions.
- second, we will program a 165-line long multi-langual, multi-source RSS reader.
- third, we will program a distributed two-player video-game.
The description of these three assignments can be found at:
To program these excercices, the audience will be asked to install the Hop.js development environment. Linux, OSx, and Windows (*) users can install it from the source code available at
or they can use a docker image. The installation procedure is described at: