Skip to content

The Jac Programming Language Book#

Welcome to the comprehensive guide for Jac, the revolutionary programming language that introduces Object-Spatial Programming (OSP) and seamless AI integration. This book will take you from basic syntax to building sophisticated, AI-powered applications that automatically scale from local development to cloud deployment.

About This Book

This book teaches Jac through practical examples and real-world applications. Each chapter builds on the previous one, culminating in complete applications that demonstrate Jac's unique capabilities.


What Makes Jac Special?#

Jac represents a fundamental shift in programming paradigms, combining familiar concepts with revolutionary new approaches:

  • Object-Spatial Programming: Move computation to data rather than data to computation
  • Scale-Agnostic Architecture: Same code runs locally and scales infinitely in the cloud
  • AI-First Design: Built-in AI capabilities without complex integration
  • Zero-Configuration Deployment: Automatic API generation and persistence

Book Structure#

This book is organized into four progressive parts that build your expertise systematically:

Part I: Jac Fundamentals#

Master the language basics and unique features

Chapter 1: Introduction to Jac#

  • What is Jac and why it matters
  • Installation and development environment setup
  • Your first Jac program
  • Scale-agnostic programming philosophy

Code Focus

Hello World with explanation of Jac's unique features

Chapter 2: Syntax and Development Environment#

  • Setting up VS Code with Jac extension
  • Basic syntax differences from Python
  • Project structure and best practices
  • Development workflow with jac run and jac serve

Code Focus

Development environment setup and basic project structure

Chapter 3: Variables, Types, and Control Flow#

  • Enhanced type system with mandatory typing
  • Variables, data structures, and type annotations
  • Control flow: if/else, loops, and pattern matching
  • Error handling and exception management

Code Focus

Student record system demonstrating type safety and control flow

Chapter 4: Functions, AI Functions, and Decorators#

  • Function definitions with mandatory type annotations
  • Built-in AI function capabilities with by llm()
  • Decorators for enhanced functionality
  • Lambda functions and functional programming patterns
  • Async functions and concurrent programming

Code Focus

Math functions library with AI integration and decorators

Chapter 5: Advanced AI Operations#

  • MTLLM (Meaning Type LLM) overview
  • Model configuration and selection
  • Semantic strings for enhanced AI context
  • Multimodal support for images, audio, and text
  • Error handling and fallback strategies

Code Focus

Image captioning tool with multiple AI models

Chapter 6: Imports System and File Operations#

  • Import statements and module organization
  • Implementation separation with .impl.jac files
  • Python library integration
  • File operations and configuration management
  • Package structure for scalable applications

Code Focus

Multi-module configuration management system


Part II: Enhanced Object-Oriented Programming#

Build on familiar OOP concepts with modern enhancements

Chapter 7: Enhanced OOP - Objects and Classes#

  • From Python class to Jac obj
  • Automatic constructors with has declarations
  • Access control with :pub, :priv, :protect
  • Inheritance and composition patterns
  • Implementation separation and clean architecture

Code Focus

Pet shop management system with automatic constructors and access control


Part III: Object-Spatial Programming (OSP)#

Master the revolutionary paradigm that makes Jac unique

Chapter 8: OSP Introduction and Paradigm Shift#

  • From "data to computation" to "computation to data"
  • Spatial programming foundations
  • Graph thinking vs object thinking
  • Mental model transformation
  • Benefits of the OSP paradigm

Code Focus

Family tree comparison showing traditional vs spatial approaches

Chapter 9: Nodes and Edges#

  • Node creation and properties
  • Edge types and first-class relationships
  • Graph creation syntax and connection operators
  • Graph navigation and filtering
  • Persistence through root connection

Code Focus

Classroom management system with students, teachers, and connections

Chapter 10: Walkers and Abilities#

  • Walker creation and mobile computation
  • Ability definitions and event-driven triggers
  • Entry and exit behaviors
  • Walker spawn, visit, and traversal control
  • Flow control and disengage patterns

Code Focus

Message delivery system traversing classroom networks

Chapter 11: Advanced Object Spatial Operations#

  • Advanced filtering and multi-criteria queries
  • Visit patterns and traversal control
  • Breadth-first vs depth-first strategies
  • Priority-based visiting and custom ordering
  • Performance optimization for large graphs

Code Focus

Social network analysis with friend-of-friend discovery


Part IV: Scale-Agnostic Cloud Applications#

Build applications that scale from single-user to distributed systems

Chapter 12: Walkers as API Endpoints#

  • Automatic API generation from walkers
  • Request/response handling and parameter validation
  • REST patterns using walker semantics
  • Multi-user applications with shared data
  • Type-safe API contracts

Code Focus

Shared notebook system with automatic REST API generation

Chapter 13: Persistence and the Root Node#

  • Automatic persistence with jac serve
  • Root node as persistence gateway
  • State consistency across requests and restarts
  • Database-backed applications without setup
  • Persistent graph structures

Code Focus

Counter application demonstrating automatic state persistence

Chapter 14: Multi-User Architecture and Permissions#

  • User isolation and data privacy patterns
  • Permission-based access control systems
  • Role-based and attribute-based security
  • Shared data management strategies
  • Security best practices for cloud applications

Code Focus

Multi-user notebook with comprehensive permission system

Chapter 15: Advanced Jac Cloud Features#

  • Environment variables and configuration management
  • Logging and monitoring capabilities
  • Webhook integration for external services
  • Background tasks and automated maintenance
  • Performance optimization strategies

Code Focus

Chat room system with configuration, logging, and webhooks


Part V: Advanced Topics and Best Practices#

Master sophisticated features and production deployment

Chapter 16: Type System Deep Dive#

  • Advanced generics and type parameterization
  • Type constraints and bounded generics
  • Graph-aware type checking for OSP
  • Runtime type validation and guards
  • Building type-safe, reusable components

Code Focus

Generic data processing system with type constraints

Chapter 17: Testing and Debugging#

  • Built-in testing framework and patterns
  • Testing walkers, nodes, and graph structures
  • Debugging spatial applications effectively
  • Performance testing and optimization
  • Test-driven development with OSP

Code Focus

Comprehensive test suite for spatial applications

Chapter 18: Deployment Strategies#

  • Local vs cloud deployment comparison
  • Docker containerization for Jac applications
  • Kubernetes orchestration and scaling
  • CI/CD pipelines for automated deployment
  • Production monitoring and maintenance

Code Focus

Complete deployment pipeline from development to production

Chapter 19: Performance Optimization#

  • Graph structure optimization strategies
  • Algorithm optimization for spatial operations
  • Caching patterns and memory management
  • Distributed performance considerations
  • Profiling and benchmarking techniques

Code Focus

Performance optimization of large-scale graph applications

Chapter 20: Python to Jac Migration#

  • Migration strategies and planning
  • Converting Python classes to Jac objects
  • Transforming traditional data structures to spatial graphs
  • Hybrid applications during transition
  • Team adoption and training strategies

Code Focus

Step-by-step migration of a Python application to Jac


Learning Paths#

Choose Your Learning Journey

Quick Start (Chapters 1-4, 7-11): Get productive with Jac quickly for OSP development

Full Foundation (Chapters 1-16): Complete journey through core concepts and scale-agnostic features

AI-Focused (Chapters 1-5, 12-16): Emphasize AI-enhanced programming with cloud deployment

Enterprise Ready (Complete Book): Full mastery including advanced topics and production deployment

What You'll Build#

Throughout this book, you'll create increasingly sophisticated applications:

  • Part I: Mathematical functions with AI integration
  • Part II: Pet shop management with enhanced OOP
  • Part III: Classroom and social network systems using OSP
  • Part IV: Multi-user applications with automatic scaling
  • Part V: Production-ready systems with comprehensive testing

Prerequisites#

  • Basic programming experience (Python knowledge helpful but not required)
  • Familiarity with object-oriented programming concepts
  • Understanding of web applications (for cloud chapters)
  • Interest in AI integration and spatial programming

Getting Help#

  • Documentation: Comprehensive guides and API references
  • Community: Join our Discord for discussions and support
  • Issues: Report bugs and request features on GitHub

Book Features#

What You'll Learn

Core Concepts:

  • Object-Spatial Programming: Revolutionary paradigm for connected data
  • Scale-Agnostic Architecture: Code that works everywhere without changes
  • AI Integration: Built-in AI capabilities without complex setup
  • Type Safety: Advanced type system for robust applications

Practical Skills:

  • Graph Modeling: Natural representation of real-world relationships
  • Mobile Computation: Walkers that process data where it lives
  • API Development: Automatic REST API generation from application logic
  • Cloud Deployment: Zero-configuration scaling and persistence

Professional Development:

  • Best Practices: Industry-standard patterns and techniques
  • Testing Strategies: Comprehensive testing for spatial applications
  • Performance Optimization: Scaling to handle large datasets
  • Production Deployment: Real-world deployment and maintenance

Advanced Features:

  • Multi-User Systems: Secure, scalable user management
  • External Integration: Webhooks, APIs, and service connections
  • Monitoring: Logging, metrics, and operational excellence
  • Migration Strategies: Moving from traditional to spatial programming

Ready to revolutionize how you think about programming? Let's begin with Chapter 1: Introduction to Jac!