Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Functional Programming
  3. Quack

Quack

GPL-3.0PHP

A multi-paradigm programming language with gradual and duck typing that compiles to PHP, Python, and JavaScript.

GitHubGitHub
326 stars37 forks0 contributors

What is Quack?

Quack is a multi-paradigm programming language that uses gradual and duck typing to provide optional type safety while targeting PHP, Python, and JavaScript. It solves the problem of writing consistent, legible code that can run across different platforms without being locked into a single backend language. The language emphasizes flexibility through its support for functional, imperative, and tacit programming paradigms.

Target Audience

Developers and teams who need to write code that compiles to multiple backend languages (PHP, Python, JavaScript) while maintaining type safety and code clarity. It's particularly useful for those building cross-platform applications or libraries.

Value Proposition

Developers choose Quack for its unique combination of gradual typing, duck typing, and multi-paradigm support, which allows for expressive and safe code across different platforms. Its extensibility and metaprogramming features enable creating custom operators and DSLs, offering more control than traditional transpiled languages.

Overview

:baby_chick: A multi-paradigm programming language with gradual and duck typing that targets PHP and JS

Use Cases

Best For

  • Writing code that needs to run on both PHP and JavaScript backends
  • Projects requiring optional type safety with duck typing
  • Building domain-specific languages (DSLs) with custom operators
  • Developing cross-platform libraries with consistent APIs
  • Teams transitioning from dynamically typed to gradually typed codebases
  • Experimentation with functional and imperative programming in a single language

Not Ideal For

  • Production systems requiring mature, battle-tested compiler toolchains and extensive debugging support
  • Windows-based development environments due to the current lack of REPL compatibility
  • Projects that depend heavily on a rich ecosystem of third-party libraries and frameworks without built-in conversion tools
  • Teams needing immediate, out-of-the-box IDE integrations and comprehensive tooling for rapid development

Pros & Cons

Pros

Flexible Type System

Combines gradual and duck typing with strong inference, allowing optional type annotations while maintaining safety, as emphasized in the README's focus on developer flexibility.

Multi-Paradigm Design

Supports functional, imperative, and tacit programming with immutability, enabling developers to mix paradigms for expressive code, as shown in the factorial example using different styles.

Extensible Metaprogramming

Allows creating custom operators, overriding operators, and building DSLs via compiler extensions, making it highly adaptable for domain-specific needs, per the README's metaprogrammable features.

Cross-Platform Compilation

Targets PHP, Python, and JavaScript backends, facilitating code reuse across platforms, with tools like TypeScript .d.ts conversion to ease integration.

Cons

Early Development Stage

The README explicitly states Quack is in early stage, with unstable features like the Python backend and many promised improvements, making it risky for critical projects.

Limited Platform Support

REPL is only compatible with POSIX systems, and Windows support is not yet implemented, hindering adoption in diverse development environments.

Manual and Complex Setup

Installation requires cloning the repository and manual steps without a packaged installer, as admitted in the 'Get Quack' section with promises for better methods later.

Sparse Tooling Ecosystem

Only Vim syntax support is mentioned, lacking integrations for popular IDEs like VS Code or IntelliJ, which could slow down development and onboarding.

Frequently Asked Questions

Quick Stats

Stars326
Forks37
Contributors0
Open Issues6
Last commit6 years ago
CreatedSince 2015

Tags

#programming-language#functional-programming#metaprogramming#javascript-compiler#dsl#repl#type-inference#multi-paradigm#programming-paradigms#python-compiler#php-compiler#language#gradual-typing

Built With

P
PHP

Included in

Functional Programming6.0k
Auto-fetched 8 hours ago

Related Projects

ClojureScriptClojureScript

Clojure to JS compiler

Stars9,393
Forks784
Last commit29 days ago
GHCJSGHCJS

Haskell to JavaScript compiler, based on GHC

Stars2,617
Forks185
Last commit3 years ago
ElixirScriptElixirScript

Converts Elixir to JavaScript

Stars1,565
Forks68
Last commit7 years ago
RamdaScriptRamdaScript

:ram: Lisp that compiles to JavaScript in the Ramda way

Stars131
Forks5
Last commit8 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub