A LANGUAGE FOR PRODUCTIVITY

This file is a living document of notes and ideas for a productivity-focused programming language. I do not mean to imply languages of the modern age are designed with productivity as an afterthought. In fact, it's quite the opposite. Languages like Python, JavaScript, C++, and Rust were all designed to be more "expressive" and claim to improve productivity.

However, these languages have a common pitfall: productivity is relative to the amount of philosophical buy-in.

A programmer only becomes more productive in these languages as they do things the "right way" (as defined by the language or expected domain). The moment they do things outside of the philosophy they have to fight the language or change their solution to fit back in the box. If they're lucky, the language designers will evolve the language to fit the domain at the cost of complexity.

See:

Below is a rough, unordered list of tenets I would follow when designing a new programming language. People should disagree, but I believe a language with these ideas at the forefront would create a better environment to create better software.

THE COMPILER SHOULD BE EASY TO IMPLEMENT

THE LANGUAGE SHOULD STAY FLAT

LANGUAGE DESIGN IS NOT A SCIENCE

CUSTOM MEMORY MANAGEMENT

Most language designers pick a memory model and throw away the others, limiting the number of applicable domains.

KEYWORDS OVER DIRECTIVES

USER-LEVEL CODE OVER INTRINSICS

RESTRICTIVE SYNTAX

PACKAGES & EXPLICIT DEPENDENCIES

THE BUILD SYSTEM SHOULD BE THE LANGUAGE

VOID POINTERS SHOULD BE BETTER

NO MORE IMPLICIT CONVERSION

TYPES SHOULD DESCRIBE THE DATA

TYPE INFORMATION & METADATA

DATA SHOULD BE MUTATED

ERRORS SHOULD JUST BE VALUES

EASY INTEROP WITH C