Goblins: Distributed, Transactional Programming with Racket and Guile
The Spritely Institute unveils Goblins, a novel distributed object programming environment designed for transactional integrity and network-agnostic asynchronous operations. It aims to simplify the complexities of distributed systems by focusing on encapsulated objects and an intuitive security model, abstracting away underlying network protocols. This deep dive into a robust, language-agnostic framework (currently supporting Racket and Guile) resonates with HN's audience interested in fundamental computer science challenges and secure distributed computing.
The Lowdown
Goblins is the core distributed object programming environment developed by the Spritely Institute, offering a sophisticated approach to building resilient and secure networked applications. It prioritizes abstracting the complexities of distributed computing, allowing developers to focus on object interactions rather than network architecture. The system is designed for high reliability and security from the ground up.
- Distributed Object Paradigm: Goblins provides an environment where encapsulated objects can live anywhere on a network, and interactions are handled asynchronously.
- Security & Transactions: It features an intuitive security model and offers automatic local transactions for operations that are synchronous within a local context.
- Network Abstraction: The network layer abstracts away details, enabling programmers to focus on object logic without worrying about underlying protocols.
- Debugging & Persistence: The environment includes powerful distributed debugging tools and supports process persistence and upgrades, all while maintaining its fundamental security principles.
- Language Support: Currently, Goblins is available for both Guile and Racket, demonstrating its capability to interact with objects written in different programming languages.
In essence, Goblins seeks to provide a robust and secure foundation for distributed programming, simplifying the development of complex networked applications through its object-oriented design and focus on capability-based security.