đŸ’Ÿ Archived View for gem.ortie.org â€ș gemlog â€ș 2023-05-08.gmi captured on 2024-05-10 at 10:46:58. Gemini links have been rewritten to link to archived content

View Raw

More Information

âŹ…ïž Previous capture (2023-07-22)

-=-=-=-=-=-=-

đŸ’» Decker

Dans les petits projets informatiques qui viennent rapidement s'imposer comme ayant un réel potentiel utile, artistique et intellectuel, nous avons déjà évoqué UXN.

Dans un style encore plus retro, mais aussi plus abordable, Decker semble présenter une sorte de raffinement et d'aboutissement qui ne peuvent pas laisser indifférent. Inspiré du logiciel HyperCard de la préhistoire d'Apple, il est bien plus que cela : c'est un terrain de jeu, un systÚme de présentation, un outil de programmation interactif et visuel.

Decker

 Présentation

Une certaine quantitĂ© d'Ă©lĂ©ments peuvent ĂȘtre dĂ©veloppĂ©s visuellement, tandis qu'un language de script original, inspirĂ© de Lua et Q, permet de rajouter de l'interactivitĂ©.

À rebours de la tendance actuelle qui empile les technologies jusqu'Ă  rendre les outils indigestes (comme par exemple tout ce qui tourne toujours de javascript), l'auteur de Decker a prĂ©fĂ©rĂ© ne pas rĂ©utiliser Lua, notamment parce que ce dernier, malgrĂ© ses avantages et sa compacticitĂ©, reste environ 3 fois plus gros que tout le code de Decker + Lil. De plus, certaines caractĂ©ristiques de Lil sont uniques et non prĂ©sentes dans Lua (notamment un langage de requĂȘtes proche de SQL).

L'apparence de Decker est originale pour notre époque, et atemporelle : inspiré de System-6 sur MacOS, il détonne mais reste cohérent avec sa volonté de décroissance de l'informatique actuelle, et en cela s'inscrit dans un schéma de permacomputing qui aura ses adeptes.

copie d'Ă©cran

 Exemple de code Decker

Exemple de code Ă  rajouter sur un canevas pour afficher une image vectorielle :

Créer un nouveau "Deck". Cliquer sur "Tool>Widgets". Cliquer sur "Widgets>New Canvas". L'agrandir sur toute la page. Cliquer sur "Widgets>Script". Effacer le modÚle, et remplacer par le code plus bas. Cliquer sur "File>Close script", puis "Tool>Interact". Cliquer sur le cadre du canvas, et cela fera apparaßtre l'image interactive.

tip1.x:10
tip1.y:20
tip2: pointer.pos-(20,30)
tip3: pointer.pos-(20,30)-(99,12)

on click pos do
 #?canvas1.clear[]
end

on wolf do
canvas1.clear[]
canvas1.line[(313,267) (380,200)]
canvas1.line[(380,200) (343,136)]
canvas1.line[(343,136) tip3]
canvas1.line[tip3 (270,90)]
canvas1.line[(270,90) tip2]
canvas1.line[tip2 (223,89)]
canvas1.line[(223,89) (301,105)]
canvas1.line[(301,105) (223,89)]
canvas1.line[(223,89) (200,93)]
canvas1.line[(200,93) (193,99)]
canvas1.line[(193,99) (249,106)]
canvas1.line[(249,106) (301,105)]
canvas1.line[(193,99) (187,113)]
canvas1.line[(187,113) (228,122)]
canvas1.line[(187,113) (138,117)]
canvas1.line[(138,117) (228,122)]
canvas1.line[(138,117) (128,147)]
canvas1.line[(128,147) (210,198)]
canvas1.line[(128,147) (175,188)]
canvas1.line[(175,188) (138,192)]
canvas1.line[(175,188) (210,198)]
canvas1.line[(138,192) (210,198)]
canvas1.line[(138,192) (133,199)]
canvas1.line[(133,199) (145,216)]
canvas1.line[(145,216) (215,220)]
canvas1.line[(215,220) (237,249)]
canvas1.line[(237,249) (313,267)]
canvas1.line[(215,220) (267,225)]
canvas1.line[(267,225) (313,267)]

canvas1.pattern:5
canvas1.fill[(300,200)-canvas1.pos]
end

on drag pos do
tip1.x:10
tip1.y:20
tip2: pointer.pos-(20,30)
tip3: pointer.pos-(20,30)-(99,12)
wolf[]
 

end

on release pos do

end

Enfin, une puissante ligne de commande intégrée dans Decker, en mode REPL, permettra d'offrir débogage et amusement aux plus audacieux.

Exemple de code Lil

Lil a plusieurs paradigmes de programmation : impĂ©rative et fonctionnelle notamment, le guide d'utilisation les dĂ©taille, mais on peut Ă©galement l'utiliser comme langage de requĂȘtes, façon SQL, et cela devient assez puissant pour gĂ©nĂ©rer des tableaux. Par exemple :

animaux.nom: "Chien", "Chat", "Loup", "Tigre", "Lion", "Canari", "Migale", "Coccinelle"
animaux.type: "Canin", "Felin", "Canin", "Felin", "Felin", "Oiseau", "Araignee", "Insecte"
animaux.pattes: 4, 4, 4, 4, 4, 2, 8, 6
animaux: table animaux

Pour afficher le tableau il suffit de taper :

select from animaux
+--------------+------------+--------+
| nom          | type       | pattes |
+--------------+------------+--------+
| "Chien"      | "Canin"    | 4      |
| "Chat"       | "Felin"    | 4      |
| "Loup"       | "Canin"    | 4      |
| "Tigre"      | "Felin"    | 4      |
| "Lion"       | "Felin"    | 4      |
| "Canari"     | "Oiseau"   | 2      |
| "Migale"     | "Araignee" | 8      |
| "Coccinelle" | "Insecte"  | 6      |
+--------------+------------+--------+

Pour afficher un tableau filtré :

select nom pattes orderby pattes asc from animaux
+--------------+--------+
| nom          | pattes |
+--------------+--------+
| "Canari"     | 2      |
| "Chien"      | 4      |
| "Chat"       | 4      |
| "Loup"       | 4      |
| "Tigre"      | 4      |
| "Lion"       | 4      |
| "Coccinelle" | 6      |
| "Migale"     | 8      |
+--------------+--------+

Pour afficher un résultat sur une ligne :

extract nom pattes orderby pattes asc from animaux
("Canari","Chien","Chat","Loup","Tigre","Lion","Coccinelle","Migale")
extract count nom from animaux
8
extract nom[4] orderby pattes asc from animaux
"Tigre"

 Conclusion

Au-dela de son aspect expĂ©rimental, Decker est un beau projet dĂ©veloppĂ© par un passionnĂ© (John Earnest), qui l'a livrĂ© avec des manuels d'utilisation extrĂȘmement clairs et prĂ©cis.

Il existe comme application indépendante pour la plupart des OS (Linux, MacOS, Windows), ainsi qu'en mode web, dans le navigateur.

Manuel de référence de Decker

Manuel de référence de Lil

#blog

#informatique

↩ Index Gemlog

🏠 Index Accueil