Plange may not accomplish a developers goals for them, but it strives to stay out of the way while maintaining its usefulness. In other words: do not obstruct any use case, and anticipate many of them. As the developer explores the languages capabilities, they discover new potential domains rather than boundaries. A small number of specific goals stem from this notion, and provide an outline for the project.
Plange must provide all the same functionality at run time as it does at compile time. This facilitates self-modifying code, symbolic computation, and makes it possible to endow an end-user with the capabilities of the developer. See the main page.
Useful semantic features are included from each generation of programming languages.
Constraints on systems, in the form of expressions in predicate logic, differentials, and other problem domains are solved symbolically, or numeric methods are used at runtime. The user may initiate and abort symbolic evaluation within the IDE, especially for techniques that may have unbounded running time.
Simple problems should have simple solutions. The "Hello World" program must be one line of source code. As such, functions for printing, manipulating files, and other basic operations are automatically in scope of each translation unit. See the standard library. Further, the barrier to entry must be low. Install once, configure by a gui, no package management.
The highest-level languages create an abstraction of the physical hardware that's dramatically different from the reality. This approach is very powerful. But as with all things, it is not the optimal solution for all problems. For high level abstractions, developers often (and sometimes unwittingly) exchange the ability to reach the "bare metal." Instead, a well-rounded language maintains the accessibility of the system hardware as a semantic feature of the language. The most obvious approach is to provide first-class inline assembler support. See: asm
The "standard" libraries are modular and transparently retrieved from the plange.tech server when using the "import" keyword. The developer can also indicate which libraries should be compiled into the executable, making embedded systems and non-networked applications possible. Third-party libraries are accessed by providing a URL to the import keyword. Documentation will (in part) be generated from docstrings within the source code. Plange.tech will have a user forum, and premium support should be available.
Documentation is exhaustive, generated whenever possible, and available wherever possible. This website serves as the primary source for structured and unstructured information used in the building of the tool chain.
Error message, diagnostics, etc. should be helpful. e.g. Think of clang's template error messages versus gcc's.