µcBlockly : ce qu’est (et n’est pas) le noyau
Dans l’article précédent — Pourquoi un noyau : naissance de µcBlockly — https://libreduc.cc/blog/astuce/2026/09/29/pourquoi-un-noyau-naissance-ucblockly/ — on a vu pourquoi séparer le moteur des applications. Ici, on fixe le vocabulaire : ce qu’est µcBlockly, et surtout ce qu’il n’est pas — pour éviter de confondre le noyau avec BlocklyDuino, la démo, ou « un autre Blockly pour Arduino ».
Démos vidéo (chaîne PeerTube Sciences & Technologies) : https://tube-sciences-technologies.apps.education.fr/c/ucblockly/videos
Trois niveaux, une seule pile
- Blockly — workspace, toolbox, sérialisation, plugins @blockly/*. Rien de spécifique Arduino ici.
- µcBlockly — ce qui est commun et réutilisable : typage, générateurs C++ (Arduino) et Python, contrôle des structures / connexions, instances, API d’intégration.
- Produits — l’expérience métier : barre d’outils, choix de carte « produit », Monaco, compilation web, scénarios de classe.
Si vous ne retenez qu’une phrase : BlocklyDuino n’est pas le noyau ; il s’appuie dessus. Idem pour la Factory et pour la démo du dépôt.
Ce qu’est le noyau
Le noyau, c’est la surface publique documentée dans KERNEL (wiki / dépôt) :
- injecter un workspace Blockly « Arduino-ready » dans une page ;
- générer du C++ Arduino à partir des blocs ;
- enregistrer blocs, types et plugins de façon idempotente ;
- sauver / recharger un workspace, changer de langue, redimensionner, disposer proprement.
Point d’entrée principal :
import { createUcBlockly } from 'µcBlockly/core';
const uc = createUcBlockly(document.getElementById('editor'), {
language: 'fr',
// toolbox, thème, enforceurs, plugins, onCodeChange…
});
console.log(uc.getCode());createUcBlockly(container, options) renvoie une instance (workspace, getCode(), saveWorkspace() / loadWorkspace(), resize(), dispose()…). Pour un host plus avancé : UcBlocklyWorkspaceManager, sans coller le shell de la démo.
Couche hôte (µcBlockly/host) : aides d’interface réutilisables (thèmes, accessibilité, éditeur de code…). Utile pour construire une appli, sans forcer la coque pédagogique complète.
Ce que le noyau n’est pas
- Pas BlocklyDuino — BDuino v3 est l’application pour la classe (cartes AVR, UI, compile / Web Serial).
- Pas la Factory — créateur de blocs / packs d’extension, outil à part.
- Pas la démo du dépôt — pratique pour tester, pas un contrat d’API.
- Pas un fork « tout-en-un » — pas de Monaco / topbar métier dans
src/core. - Pas Blockly 12 — la v3 est sur Blockly 13 ; les projets en 12 restent sur µcBlockly 2.x.
Si une fonctionnalité n’a de sens que pour une appli, elle appartient au produit, pas au noyau.
Licence, code, doc, vidéos
- Licence — AGPL-3.0-or-later
- Code — https://github.com/A-S-T-U-C-E/ucBlockly
- Doc — wiki LibrEduc (µcBlockly / KERNEL) +
docs/KERNEL.md,INTEGRATION_DEPOT.md - Forum — https://forum.libreduc.cc/
- Démos vidéo — https://tube-sciences-technologies.apps.education.fr/c/ucblockly/videos
Blockly (Google / Apache-2.0) reste clairement attribué ; µcBlockly et les produits dérivés sont sous AGPL.
Pour qui ?
- Enseignant·e / formateur·rice — vous utiliserez surtout un produit (BlocklyDuino, etc.).
- Développeur·euse — commencez par
createUcBlockly+ KERNEL. - Contributeur·rice — patch noyau dans µcBlockly ; patch produit dans le dépôt du produit.
Bientôt la suite…
