jokade / angulate2

Scala.js bindings for Angular
MIT License
87 stars 15 forks source link

Design goals #25

Closed jokade closed 7 years ago

jokade commented 8 years ago

I'd like to start a discussion on some basic design goals / rules for this binding, e.g.

gregghz commented 8 years ago

Here are my thoughts:

gregghz commented 8 years ago

Somewhat related: have you considered creating a gitter for this project? I suspect it wouldn't be wildly popular, but I'd be around and we'd be able to have more organic conversations about more specific things when needed. https://gitter.im/scala-js/scala-js is already pretty popular and many other scala projects have gitters used for design discussion, planning, release notifications, and general help/troubleshooting.

AugustNagro commented 8 years ago

I've been learning the new macros as a pet project, and decided to make some angular 2 bindings.

There are benefits and drawbacks to using scalameta/paradise in place of scalamacros/paradise. The new system is very experimental, but allows a huge reduction in boilerplate. The core logic for the annotations is in a single file, and much easier to read/understand.

I also made some changes to the scalajs-reflect library, which lets us remove the annotations file. This change is independent of the macros library, so it could be copied to this project.

I added you guys as contributors, in case you were interested :)

jokade commented 7 years ago

@AugustNagro I finally had time to look at your code - great work 👍 your project should probably supersede this project eventually. However, I've finally started to port angulate2 to the new SJS module support, and I think I will finish this port before dropping the additional annotations.js (or deprecating this repo completly :)

AugustNagro commented 7 years ago

Thanks. I doubt scalameta will stabilize for some time.

Bundling/lazy loading might be possible with the new module support. But sadly I don't think AOT compilation for js/scalajs will ever be possible, as ngc is a fork of the typescript compiler.