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

3.0: Overview and Umbrella #141

Open
iccir opened this issue Sep 17, 2018 · 1 comment
Open

3.0: Overview and Umbrella #141

iccir opened this issue Sep 17, 2018 · 1 comment
Milestone

Comments

@iccir
Copy link
Member

iccir commented Sep 17, 2018

One of the themes of NilScript 3 is "oj grows up, changes its name, and becomes its own language."

While making conversion of Objective-C code to NilScript is still a major use case, mirroring the Objective-C syntax exactly has become less of a priority over time compared to oj 0.x.

Do to the evolution of the language, some things no longer make sense: Why do ivars use C-style syntax when @type uses TypeScript style? Why do we have @interface syntax in the @implementation block? Should we allow non-operational attributes like retain on @propertys? Why do we have two different syntaxes for @cast? There are also a lot of language features that were used in 0.x and 1.x, and haven't been used since. These can likely be dropped.

Another theme is compatibility with future versions of ECMAScript. What do we do once Decorators use the @ syntax?

@iccir iccir added this to the 3.0 milestone Sep 17, 2018
@iccir
Copy link
Member Author

iccir commented Sep 23, 2018

Additional assumptions we are making with 3.0:

  1. Users will use the Compiler#uses and Compiler#compile API. This will allow the compiler to see the entire source base and make optimizations as needed.
  2. Users will use a linter on the generated JavaScript. This allows us to remove code which duplicates common linter features (See 3.0: Remove warn-empty-array-element and warn-debugger #154).
  3. Users will use the typechecker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant