Samsung lance JerryScript
Un moteur JavaScript allégé et destiné aux objets connectés de faibles ressources

Le , par Olivier Famien

0PARTAGES

1  0 
JavaScript est un des langages de programmation largement utilisé. Sa facilité d’apprentissage en a fait un langage grand public accessible même à des personnes sans connaissances préalables en programmation.

Il est aujourd’hui utilisé pour le web, sur les serveurs, pour transmettre des données structurées…
En plus de tout ce qu’on lui connait, Samsung vient de sortir un nouveau moteur JavaScript baptisé JerryScript. « JerryScript est le moteur JavaScript léger destiné à fonctionner sur un appareil très limité comme les microcontrôleurs et autres appareils de particularités similaires ».

Pour vous donner un ordre d’idée, les caractéristiques des équipements censés accueillir le moteur sont de l’ordre de moins de 64 kb de mémoire RAM pour faire tourner le moteur et moins de 200 kb d’espace ROM pour accueillir le code.

Il prend en charge la compilation sur l’appareil, l’exécution et fournit un accès aux périphériques à partir de JavaScript.

Il soutient même déjà le Framework IoT.js créé toujours par le Sud-coréen Samsung. Le but de ce Framework est d’éliminer les barrières des applications et services propriétaires de chaque objet. En effet, chaque constructeur mettant en œuvre son logiciel équipant son objet. IoT.js pourra remplacer ces derniers afin de créer une plateforme unique et une compatibilité entre objets.

JerryScript comporte également un ensemble d’API afin d’initialiser le moteur, exécuter du code de portée globale, terminer l’exécution du moteur JavaScript, libérer le mémoire et les valeurs JavaScript... À noter que les valeurs JavaScript reçues du moteur sont inaccessibles après le nettoyage.

Ci-dessous, vous pouvez apprécier de manière simplifiée, comment les informations sont traitées en interne.


Le parser effectue une traduction des entrées de l’application en bytecode avec le format spécifié. Le bytecode préparé est exécuté par le moteur du Runtime qui se charge d’effectuer l’interprétation.

Nous rappelons que ce projet touchant aux objets de faibles ressources n’est pas le premier en la matière. Dans le même domaine, nous avons le langage de Script Lua très apprécié des développeurs du fait de la petite taille du compilateur et sa compatibilité au langage C.

Télécharger le code source sur GitHub

Source : GitHub.io

Et vous ?

Que pensez-vous de ce projet ?

Pensez-vous qu’il aura du succès ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de ABCIWEB
Expert éminent https://www.developpez.com
Le 28/07/2015 à 5:00
Citation Envoyé par Olivier Famien Voir le message

JavaScript est un des langages de programmation largement utilisé. Sa facilité d’apprentissage en a fait un langage grand public accessible même à des personnes sans connaissances préalables en programmation.
Tu confonds pas avec php là ? Cette entame générique pour php me paraît peut appropriée pour javascript. Difficile de dire que c'est un langage convivial et dès qu'on avance un peu la programmation asynchrone demande du temps pour être maîtrisée. Quelqu'un qui ne connaît rien en programmation et qui commence par javascript va avoir une progression très lente sauf à se limiter à 3/4 lignes de code
Avatar de Markand
Membre averti https://www.developpez.com
Le 28/07/2015 à 8:34
Alala, encore une fois la roue a été réinventée...

http://duktape.org/
Avatar de Sodium
Membre extrêmement actif https://www.developpez.com
Le 28/07/2015 à 9:16
Tu confonds pas avec php là ? Cette entame générique pour php me paraît peut appropriée pour javascript. Difficile de dire que c'est un langage convivial et dès qu'on avance un peu la programmation asynchrone demande du temps pour être maîtrisée. Quelqu'un qui ne connaît rien en programmation et qui commence par javascript va avoir une progression très lente sauf à se limiter à 3/4 lignes de code
D'un côté oui, PHP est certainement plus accessible que javascript. D'un autre côté, il nécessite comme tous les langages serveur un serveur. Le premier élément de convivialité d'un langage, c'est de pouvoir écrire son premier Hello world avec le minimum de travail d'installation et de compréhension du système qui le fait tourner.
Avatar de Zefling
Membre expert https://www.developpez.com
Le 28/07/2015 à 9:47
Faire et tester du JS c'est ultra simple, surtout avec des outils comme jsfiddle.

Ceux qui me mettent des -1, il faut m'expliquer en quoi le JS c'est compliquer à mettre en place. Perso, c'est l'un des premier langage auquel j'ai touché, il y a bien longtemps, parce qu'il n'y avait besoin que d'un navigateur : pas de compilation, pas de projet à mettre en place, pas de dépendances, etc.
Avatar de TheLastShot
Membre extrêmement actif https://www.developpez.com
Le 28/07/2015 à 15:39
Citation Envoyé par Markand Voir le message
Alala, encore une fois la roue a été réinventée...

http://duktape.org/
Typiquement le genre de commentaire qui m'énerve...
Juste pour rester sur la même image, il me semble que la roue, depuis son invention a subit nombre de changement (roues en pierre, roues en bois, roues à rayons, ajout des pneus, et j'en passe) donc dire "ça sert à rien de réinventer la roue" pour moi ce n'est bon QUE pour ceux qui ont des trop la flemme (ou tout autre raison absurde) pour essayer de voir si on ne peut pas faire mieux (d'ailleurs la roue, contrairement à ce que cet expression tend à faire croire, c'est pas le summum de la technologie... Essayez de monter un escalier avec des roues, vous allez vous amuser).
Maintenant pour reprendre dans le domaine de la technologie... Pourquoi réinventer la roue ? On était si bien avec nos ordinateurs de 2 tonnes. Pourquoi réinventer la roue, on pouvait très bien se contenter des connexion 56k. Pourquoi réinventer la roue, on peut très bien coder en assembleur, pas besoin de C, de Python, de Java, etc.

Vous avez compris l'idée ou je dois continuer ?
Donc par pitié, arrêtez avec votre satané roue...
Avatar de Sodium
Membre extrêmement actif https://www.developpez.com
Le 28/07/2015 à 16:05
Citation Envoyé par Zefling Voir le message
Ceux qui me mettent des -1, il faut m'expliquer en quoi le JS c'est compliquer à mettre en place. Perso, c'est l'un des premier langage auquel j'ai touché, il y a bien longtemps, parce qu'il n'y avait besoin que d'un navigateur : pas de compilation, pas de projet à mettre en place, pas de dépendances, etc.
En vrac comme ça :

- La déclaration de variables et leur portée assez étrange : Généralement une variable est accessible uniquement dans son contexte, en javascript elle est accessible partout mais peut-éventuellement être redéclarée dans une fonction où elle aura une portée limitée, une subtilité dont le débutant se passera aisément
- La gestion d'évènements et l'exécution permanente : Pour un débutant, mieux vaut un langage qui interprète une fois les instructions et renvoie un résultat.
- Les messages d'erreurs beaucoup moins claire qu'en PHP par exemple
- Le modèle objet très particulier : Pas besoin de plus d'explications, même en ayant de la bouteille le fonctionnement objet de javascript n'est pas évident à comprendre
- Le mot-clé "this" qui a une signification totalement différente en fonction du contexte
- La généralisation de plugins et frameworks qui font que du javascript standard n'est pas du javascript standard, on trouve finalement assez peu de ressources sur javascript sans jQuery ou autre

Javascript est un langage que je conseillerais pour tester rapidement la programmation mais pas pour apprendre réellement à programme, il a énormément de particularités qui le rendent au final très complexe quand on creuse un peu dedans.
Avatar de Zefling
Membre expert https://www.developpez.com
Le 28/07/2015 à 17:32
Citation Envoyé par Sodium Voir le message
- Le modèle objet très particulier : Pas besoin de plus d'explications, même en ayant de la bouteille le fonctionnement objet de javascript n'est pas évident à comprendre
Je me suis arrêté, là... JS = programmation par prototype. Rien à voir avec la POO, comme s'il n'y avait que la POO qui pouvait exister.

La première fois que j'avais de la prog, je savais même pas que j'en faisais, c'était sur calculatrice : sans fonctions, sans while, juste avec des if, for et goto et bizarrement je m'en sortais très bien. J'ai l'impression quand même l'impression qu'il y en a qui ont des œillères POO qui leur rend l'apprentissage de tout ce qui n'y ressemble pas compliqué.
Avatar de Sodium
Membre extrêmement actif https://www.developpez.com
Le 28/07/2015 à 18:58
Je me suis arrêté, là... JS = programmation par prototype. Rien à voir avec la POO, comme s'il n'y avait que la POO qui pouvait exister.
Euh, ce n'est pas parce qu'on ne parle pas de classes qu'on ne fait pas de programmation objet. Tout est objet dans Javascript, même les fonctions, beaucoup plus qu'en PHP.

La première fois que j'avais de la prog, je savais même pas que j'en faisais, c'était sur calculatrice : sans fonctions, sans while, juste avec des if, for et goto et bizarrement je m'en sortais très bien.
Moi aussi, et je suis loin d'en être nostalgique.
Avatar de ABCIWEB
Expert éminent https://www.developpez.com
Le 28/07/2015 à 20:58
Citation Envoyé par Zefling Voir le message
Je me suis arrêté, là... JS = programmation par prototype. Rien à voir avec la POO...
Bah si un peu quand même. Prototype est d'ailleurs la seule façon d'avoir des méthodes et fonctions propres à l'objet. Après la comparaison avec une classe php s'arrête là mais pour la portée des méthodes et des fonctions c'est assez similaire.

Citation Envoyé par Zefling Voir le message
La première fois que j'avais de la prog, je savais même pas que j'en faisais, c'était sur calculatrice : sans fonctions, sans while, juste avec des if, for et goto et bizarrement je m'en sortais très bien.
Oui mais là c'est de la programmation synchrone. Les évènements s'enchainent dans l'ordre où tu les as écrits et la ligne de code suivante ne s'exécute que lorsque la ligne précédente est terminée. C'est autres chose en javascript quand on crée des fonctionnalités un peu évoluées, les évènements s'exécutent en parallèle et l'on doit mettre des écouteurs pour savoir où on en est si les fonctions doivent agir en fonction de l'état général du programme.

Citation Envoyé par Zefling Voir le message
J'ai l'impression quand même l'impression qu'il y en a qui ont des œillères POO qui leur rend l'apprentissage de tout ce qui n'y ressemble pas compliqué.
Il y a pas nécessairement besoin d'avoir des œillères. Cela s'est arrangé avec les dernières versions de javascript mais avant c'était la croix et la bannière pour simplement sélectionner une classe dans le html. Je parle pas des fonctionnalités minimalistes qui sont proposées pour traiter les tableaux (âge de pierre), sans oublier les précédentes remarques de Sodium, ni la différence de syntaxe entre les navigateurs...

Bon j'ai fait avec mais il me semblait juste un peu rapide de dire que javascript est d'un apprentissage facile, sauf à l'utiliser à minima.

Pour le reste est-ce qu'un nouveau moteur javascript utra léger est utile pour le web ? Je vois pas vraiment le rapport entre développement web et "appareil très limité comme les microcontrôleurs et autres appareils de particularités similaires" et comme le moteur actuel est déjà efficace sur des smartphones entrée de gamme je suis assez dubitatif.
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web