/cish

Go + Generics + Sum Types

Primary LanguageCMIT LicenseMIT

Cish

About

A minimal, performant, strongly-typed, and multi-paradigmn programming language focused on being practical and pragmatic, yet powerful enough to create readable, performant and concise code for any problem.

Features

  • Super Performant
    • Cish can be both interpreted and compiled.
  • A strong, impeccable type system.
    • Cish has actual strong typing, unlike c. Casts are made explicitly and it's not possible to have a binary operator have two different types for its operands.
      • Type safe, runtime type-casting is supported when necessary.
    • Powerful and expressive type arguments, not only for structs but for functions as well.
      • Type arguments aren't constrained to be reference/allocation types like Java - they can also be primitives.
      • Type parameters also support type requirements, somewhat like interfaces.
    • Supports sum-types
      • Clean error handling, unlike go. Requires succesful results to be unwrapped, providing a concise layer of error handling.
  • Support for first class functions.
    • First class functions are inbuilt in the syntax and overall design as well - there isn't a million ways you can define a function.
  • Structured programming, with some OOP features like inheritance.
    • The linking process is done automatically - there's no need for C-like forward declarations.
    • While casting is done automatically from derived types to their super type, downcasting is not allowed.
  • Interoperability with other C and C#.

Important Links