Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defining Boa #3

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions active-rfcs/0000-boa.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Name

- Start Date: 22-05-203 20:33 CEST
- RFC PR: [#0](https://github.com/boa-lang/boa-rfcs/pull/3) (Update with link to PR after creating it)
- Implementation PR: (leave this empty)
<!-- When when linking to the implementation PR, it should be done in the format of boa-lang/<repo>#<PR number> -->

## Summary

This RFC is supposed to specify what boa is meant to be.
This will be a summary of what of our talks still remains in my head and in the beginning will mostly be my Personal opinion but should be adapted during the rfc process to be the opinion of the boa Team what boa is supposed to be.

I am very open to large changes in the wording. Also please excuse my Spelling, English isn't my native language.

## Motivation

This Step is very important to get the entire Team to the same point about what boa is supposed to be and have it written down somewhere.

## Detailed design

As far I am concerned and have gathered from the Conversation in the boa discord this is what boa is and isn't supposed to be:
- Its own language, not just a Python compiler, this also means that it can have its own features not found in python.
- Statically Typed (Type Checking Performed at compile Time)
- Strongly Typed (No weird type conversion & coarsion)
- Syntactically and Semantically fairly close to Python
- Easy to learn for Python developers
- Compiled
- Eventually Self Hosted (not a Primary objective)
- Minimal set of builtin functions, most stuff done through stdlib
- Please request me to add anything else to this list

## Drawbacks

Defining a language outline this "early" in development might hinder us later in our plans.

## Alternatives

1. Not Specify this at all and Just see where development takes us.
2. Not make this an RFC but another Dokument kept somewhere else.
3. Just discuss this on dc and not make any official documents

## Prior art

- [Short Description of the language done by Nailuj29 on discord](https://discord.com/channels/870735675622834237/870736575649185812/870737758568722452)

## Unresolved questions

- How close do we stay to python?