Thursday 4 August 2016

About the Kind Language

The Kind Programming Language is an object-oriented / functional multi-paradigm language currently in development.  Its aims are:
  • to be a general purpose language specifically optimized for larger applications;
  • to provide a minimal set of core capabilities that include sufficiently powerful mechanisms to allow useful and novel end-user-facing functions to be developed as libraries rather than requiring language extensions;
  • to allow efficient code to be developed without placing undue burdens on the programmers who do not need that efficiency; and
  • to provide a useful compromise that (hopefully) will satisfy both camps in the debate between static and dynamic languages.
To achieve these, specific features of the design that are planned include:
  • facilities for declarative programming techniques, including declarative exception handling, transaction management, and resource ownership handling;
  • advanced object-oriented features including multimethods, declarative delegation, fully realised meta-object protocol, and mixins;
  • transparent parametric polymorphism with automatically-inferred constraints, allowing a programming style that will rarely require type annotations;
  • metaprogramming integrated into the language to allow for compile-time metaprograms to be written using a (usefully large) subset of the same language as the run-time program;
  • metaprogramming system to allow for metaprograms to manipulate the parse tree of the program; and
  • type-system with optional declarative resource ownership annotations to allow automatic exact reclamation of used resources when they are no longer required, but also allowing for ownership to be left to the system to manage (e.g. via a garbage collector) when the programmer does not feel the need to use type annotations.
The Kind Programming Language is (as of August 2016) under active development and is not yet suitable for use (the current implementation allows the definition of functions with simple arithmetic, but does not yet have a working object system).  But keep reading for updates, examples, and discussions about features, implementation details, Kind's inspirations taken from other languages, and so on.

No comments:

Post a Comment