Skip to content
This repository has been archived by the owner on Jan 29, 2024. It is now read-only.

Hegel Design Goals

Artem Kobzar edited this page May 30, 2020 · 1 revision

Introduction

Hegel is a static type checker which should release really eloquent and easy to use soundness type system for JavaScript language. In the document, we want to explain the project design goals and non-goals and core decisions that were made by contributors and author of the project. These goals pervasively drive design and implementation.

Goals

  1. Require a minimum type annotation due to powerful type inference.
  2. Apply a sound type system, which prevents any runtime type errors.
  3. Give the ability to inspect the code behavior due to error type inference.
  4. Align with current and future ECMAScript standards.
  5. Produce a tool that is easy to learn and to use.
  6. Be a cross-platform development tool.
  7. Develop the tool which is driven by the community opinion and requirements.

Non-Goals

  1. Produce one more compiler for one more statically typed language. Hegel is only a static type analysis tool.
  2. Provide additional runtime functionality or libraries. Instead, Hegel analyzes existed codebase to prevent a runtime type error.
Clone this wiki locally