In this episode of System Crafters Live, host David Wilson returns to streaming, sharing personal updates and discussing recent developments in the Spritely ecosystem. He highlights a significant update on the integration of the Goblins actor model with the GNU Shepherd init system, which paves the way for secure, distributed service orchestration. The main segment of the stream is a first-look exploration of GNU Artanis, a web development framework for Scheme inspired by frameworks like Ruby on Rails and Sinatra. Wilson attempts to create a new project, generate controllers and models, and understand its core concepts through the official manual. The process reveals challenges, particularly in establishing a REPL-driven workflow and navigating the documentation, which is critiqued for being difficult for newcomers to follow. The stream concludes with a broader discussion on Artanis's design choices, speculating on what an ideal, more "schemy" web framework might look like, favoring a composable, functional, library-based approach over a monolithic one.
GNU Artanis and the State of Scheme Web Development
0:08:05 Spritely Goblins & Shepherd Update: The stream begins with news from the Spritely Institute about porting the GNU Shepherd init system to Spritely Goblins. This major effort aims to enable powerful, distributed service orchestration across multiple machines using Guix, moving beyond single-machine management.
0:25:06 Introducing GNU Artanis: David introduces the main topic: GNU Artanis, a web framework for the Scheme programming language. It is described as being heavily inspired by Sinatra (Artanis is Sinatra spelled backward) and aims to provide a comprehensive, Rails-like experience for web development.
0:43:29 REPL Development Challenges: An attempt to follow the manual and use Artanis in an interactive Guile REPL fails. The framework requires a global configuration file that is not easily accessible within a temporary Guix shell environment, making the REPL-based workflow impractical without manual setup. This is seen as a significant drawback for a Lisp-based tool.
1:01:08 Exploring the MVC Pattern: David uses the art draw command-line tool to scaffold a new "article" controller and model. This process automatically generates the necessary files for the Model-View-Controller (MVC) structure, including controller logic and default string-based HTML view templates.
1:12:27 Critiquing the Documentation: A recurring theme is the difficulty of following the official manual. The host and chat participants find that it mixes tutorial, reference, and conceptual explanations, making it hard to find a clear, step-by-step path to building a functional application.
1:24:11 A "Schemy" Framework?: The discussion critiques Artanis's design for not fully leveraging the strengths of Scheme. Features like authentication and session handling are implemented as keywords within route definitions rather than as a more composable middleware system.
1:38:18 Conclusion on Scheme Web Dev: The stream concludes that while Artanis offers a familiar paradigm for developers from other ecosystems, the Scheme community would likely prefer a more lightweight, composable, and functional set of libraries for web development, similar to Clojure's Ring framework.