Skip to content

Latest commit

 

History

History
15 lines (10 loc) · 3.07 KB

CONTRIBUTING.md

File metadata and controls

15 lines (10 loc) · 3.07 KB

Genesus Contributorship Guidelines

Dear contributors,
We are glad to see your interest in contributing to the Genesis Project and help us advance the AI capabilities. We believe the new language can open new possibilities that the analogues would not even imagine to be possible.

When you create a programming language, you naturally want to make it the best possible tool for its purpose, and it's only the matter of time when you begin to look at other languages as implementations of certain ideas that you evaluate. Should our language prefer strict arrays or implement lists natively? Does dynamic typisation offer any advantages over static? What should be the naming conventions commonly used in it? You begin to ask a mountain-worth questions and enter the state of always answering them.

That's why we are aiming to synthesise other programming languages to understand their strong and weak sides to find out the image of the best language. We are open for discussion as for what the standard should be, and you can always challenge the currently established picture if you prove any significant improvement to the language.

As the result, we encourage you to assume good faith and be open-minded towards what programming of the future might become. Look at other languages, especially esoteric ones, especially those that solve problems in a different way and look at what they are strong at, think about how their approaches can be mixed with other solutions and find something marvellous. Use GitHub Discussions to have a conversation about anything grand that you may want ti implement.

We are using the C++ programming language in order to create the compiler. As a matter of fact, writing a compiler is a completely trivial problem that could be done in any language, be it Rust, TypeScript or Python. The purpose of the compiler is to translate one programming language into another one, to output machine code executable, therefore the choice of language only matters if you desire the compiler itself to perform well. Since we have a lot of textual processing and we would want to make compilation fast, C was the original choice, especially influenced by the vision of Linus Torvalds, however as the ideas grew, it became apparent object orientation can help a lot. Therefore, we encourage you to not use esoteric features the language provides but instead opt for the most basic and frequent ones that any developer is familiar with. We recommend you to program in a close manner to C and only use C++ exclusives as helpers to simplify certain job, such as . We encourage you to use C++ as "C with Classes" and never use anything beyond that unless it makes an essential difference.

At the end of the day, open-source community can make a brilliant change and craft the software that powers the whole world, and when you participated in one of these global scale projects, it's worth be proud of yourself. I believe the new language will be able to craft a ruly thinking machine that will aid our progress of the civilisation.
Looking forward to see you,
-- Vladyslav Korol