A programming language with clarity, explicit failures, and inherent correctness.
Project details
Quill is a new programming language designed for clarity and reliability. With a focus on clear intent and explicit error handling, it makes coding accessible for beginners and powerful for developers. Built with Rust, Quill offers a human-readable syntax, perfect for backend engineering, financial software, and AI applications, while ensuring correctness is written into the code.
Quill is an innovative programming language designed with clarity and expressiveness at its core. This cutting-edge language ensures that the intent behind code is explicitly conveyed, failures are transparently communicated, and correctness is inherently integrated into the code structure. Quill is particularly suited for applications in backend engineering, financial systems, automation, reliable business processes, as well as artificial intelligence and machine learning.
Quill’s syntax is intentionally designed to be easy to read, using natural language keywords like when, found, missing, fails, and check. This allows beginners to grasp coding logic quickly while maintaining precision for more advanced users.
Quill ensures accuracy in financial calculations. For instance, currency operations maintain fidelity—100 USD + 50 USD results in 150 USD, while attempting to mix currencies triggers an error. Quill allows for precise monetary operations, including conversions and calculations that reflect typical banking methods.
Quill excels in managing data with commands to aggregate, filter, and manipulate records easily. For example:
sum fee of roster
get place of desk.bookings
students where score >= 50
These commands facilitate straightforward data extraction and computation, ensuring transparency in data usage.
Errors are actively addressed in Quill. The language features a maybe construct to indicate potential absence of data, thus requiring programmers to handle all conditions effectively. Error messages are designed to be illuminating, providing insights into what went wrong, why it occurred, and how to rectify the issue.
Functions in Quill clearly specify their requirements and guarantees through require and ensure statements. This strong typing and contract enforcement minimizes runtime surprises, enhancing program reliability. Here's a brief example:
fn withdraw(balance: USD, amount: USD) -> USD
require amount > 0 USD
ensure result >= 0 USD
fails InsufficientFunds
when
amount > balance -> fail InsufficientFunds
return balance - amount
The language includes tools for testing and documentation that seamlessly integrate examples as executable tests within comments, ensuring that the documentation remains accurate and up-to-date with the codebase.
As of now, Quill is in a pre-alpha stage of development, with foundational features operational. The design and functionalities are still evolving, and contributions from developers interested in shaping the language are welcomed.
Quill aims to further expand its capabilities, enhancing safety aspects, building a robust ecosystem, and incorporating advanced features such as concurrency and static contract verification.
Developers interested in trying Quill can explore the Quill Programming Language book for comprehensive learning resources, which cater to both new and experienced programmers. Sample projects and templates are readily available to facilitate an easy start with Quill's powerful features.
Comments
0Start the conversation
Share the first comment.