Thanks to visit codestin.com
Credit goes to github.com

Skip to content

O²L Programming Language v0.0.1 - "Genesis"

Latest

Choose a tag to compare

@zombocoder zombocoder released this 21 Aug 15:06
· 14 commits to main since this release

The first public release of O²L (Object-to-Language) - A revolutionary object-oriented programming language that reimagines software development.

🚀 What is O²L?

O²L is a modern programming language built with C++23 that eliminates primitives and null values while embracing pure object-oriented design.
Every value in O²L is an object with methods and behaviors, creating a unified and consistent programming model.

✨ Key Features

Core Language

  • Everything is an Object - Numbers, booleans, strings all have methods (48 text methods alone!)
  • Null Safety - No null pointer exceptions, ever. Optional values handled explicitly
  • Dual Mutability - Immutable object properties, mutable method variables
  • Advanced Control Flow - if/else if/else, while loops, try/catch/finally blocks
  • Strong Type System - Records, enums, protocols, generics with collections

Comprehensive Standard Library (200+ Methods)

  • 🌐 HTTP Client/Server - 30+ methods for web development
  • 🔄 JSON Processing - 30+ methods with auto-detection parsing
  • 🌐 URL Manipulation - 26 methods for URL handling
  • 🔍 Regular Expressions - 12 methods for pattern matching
  • 📐 Math Library - 40+ mathematical functions including trig, stats
  • 📅 DateTime Library - 65+ functions for date/time operations
  • 📁 Filesystem Operations - Complete file/directory management
  • ✨ Text Processing - 48 string methods for manipulation and validation

Advanced Integration

  • 🔗 Foreign Function Interface (FFI) - Seamless C library integration
  • 💾 SQLite Integration - Built-in database support
  • 🛠️ Development Tools - Package manager, formatter, language server

🎯 Philosophy

O²L follows four core principles:

  1. Everything is an Object - Unified programming model
  2. Immutability by Design - Eliminate race conditions and side effects
  3. Null Safety - No undefined behavior
  4. Behavior-Driven - Think in terms of collaborating objects

🛠️ Getting Started

# Download and extract the archive for your platform
tar -xzf o2l-[platform]-v0.0.1.tar.gz

# Install (adds to ~/.local/bin)
./o2l-[platform]/install.sh

# Create your first project
mkdir hello-o2l && cd hello-o2l
o2l-pkg init

# Run the generated example
o2l run src/main.obq

📦 What's Included

  • o2l - Main interpreter and runtime
  • o2l-pkg - Package manager for project scaffolding
  • o2l-fmt - Code formatter for consistent style
  • o2l-lsp-server - Language Server Protocol implementation
  • Complete Examples - 100+ example programs
  • Documentation - Language reference and guides

🏗️ Example Code

import system.io
import json
import http.client

Object APIClient {
    property baseUrl: Text

    constructor(url: Text) {
        this.baseUrl = url
    }

    @external method fetchUser(id: Int): Optional<User> {
        response: HTTPResponse = client.get(this.baseUrl + "/users/" + id.toString())

        if (response.isSuccess()) {
            userData: JSONObject = json.parse(response.body())
            return Optional.of(User.fromJSON(userData))
        }

        return Optional.empty()
    }
}

Record User {
    id: Int
    name: Text
    email: Text
}

📊 Technical Specifications

  • Implementation: C++23 with modern standards
  • Platforms: macOS 11.0+, Ubuntu 20.04+ (x86_64)
  • Test Coverage: 445+ passing tests
  • Performance: Optimized interpreter with efficient FFI
  • Memory Safety: Automatic memory management with immutability

🔮 Future Roadmap

  • Generics and type parameters
  • Async/await concurrency model
  • JIT compilation for performance
  • Package registry and ecosystem
  • IDE integrations and tooling

📚 Resources

  • Language Reference: Complete syntax and feature documentation
  • Standard Library: Comprehensive API documentation
  • Examples: Real-world usage patterns
  • Wiki: In-depth guides and tutorials

O²L v0.0.1 represents a new paradigm in programming languages - combining the safety of functional languages with the expressiveness of modern
object systems. Welcome to the future of object-oriented programming!

Built with ❤️ and C++23

This description emphasizes the revolutionary aspects of O²L while providing practical information for developers to get started. It positions
v0.0.1 as a significant milestone while acknowledging it's the beginning of the journey.