Hi everyone,
I noticed that there are several ScalaJS libraries following the approach of mapping reactive variables to the DOM: Binding.scala, Outwatch, monadic-html, scalatags-rx, MetaWeb (and probably some more I don't know, please post them here).
Involved contributors: @Atry, @LukaJCB, @OlivierBlanvillain, @olafurpg, @rtimush, @lihaoyi, @tindzk
Every library introduces some advantages and therefore defines shortcomings for the others at the same time (again, this list is probably incomplete):
So each library is basically a compromise, because it lacks the advantages of the others.
I would like to see more collaboration between the authors and libs, since the goals are all very similar, although I'm unsure how this would look like in practice. Or is this already the case? I guess every library author has something to say here.
This is not about criticism of libraries. I'd like to talk about how we could move forward together.
This? :)
Hi everyone,
I noticed that there are several ScalaJS libraries following the approach of mapping reactive variables to the DOM: Binding.scala, Outwatch, monadic-html, scalatags-rx, MetaWeb (and probably some more I don't know, please post them here).
Involved contributors: @Atry, @LukaJCB, @OlivierBlanvillain, @olafurpg, @rtimush, @lihaoyi, @tindzkEvery library introduces some advantages and therefore defines shortcomings for the others at the same time (again, this list is probably incomplete):
- Virtual DOM for efficient updates (Outwatch)
- Delta updates of reactive lists and DOM (MetaWeb)
- Let the user access the reactive values as monads (monadic-html, scalatags-rx)
- Prevent memory leaks (scalatags-rx)
- Avoiding unnecessary updates by handling the diamond-case in the reactive dataflow graph (lihaoyi/scala.rx#79)
- The markup is written in XML/Scalatags/some other DSL
- Macro-based to avoid boilerplate / Library-based to avoid long compile-times and obscure errors
--
You received this message because you are subscribed to a topic in the Google Groups "Scala.js" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/scala-js/77J_RdnWu_k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to scala-js+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scala-js/9944426a-7a9b-49d4-9b00-3356c5c6f515%40googlegroups.com.
To unsubscribe from this group and all its topics, send an email to scala-js+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scala-js/9944426a-7a9b-49d4-9b00-3356c5c6f515%40googlegroups.com.
--杨博 (Yang Bo)
> Are there common requirements for these libraries that everyone can agree on?
@Felix Could you explain your motivation with all this? If you are worried that library authors don't benefit from each other's work, you shouldn't! I think everyone got heavily inspired by previous works (this seems clear looking at each project README), and we are also already collaborating, see for example [@Atry comment][1] on one of the first commit of monadic-html.
> Maybe a solution could be to split the reactive library part and get some good alternatives there (Scala.Rx was dead last I checked) and then have multiple HTML libraries that adds compatibility to one or more of the common reactive libraries.
This is already the case. The libraries I know of have a clear
separation between the reactive part and the html binding part, the
former being independently tested, documented and published. If
someone wants to contribute additional bridges (xml syntax for
Scala.rx, scalatags for monadic-html & so on), there shouldn't be
anything needed from the library authors.
--
You received this message because you are subscribed to a topic in the Google Groups "Scala.js" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/scala-js/77J_RdnWu_k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to scala-js+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scala-js/CAGOauttKZLnDBa8VvR-BrwgKGJhYcvZDa3fbe_QFE1RkY1dYQQ%40mail.gmail.com.
--
You received this message because you are subscribed to a topic in the Google Groups "Scala.js" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/scala-js/77J_RdnWu_k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to scala-js+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scala-js/CAGOautt4wSpwOB_xvZ-QjC1N4TopAQUAbWakps%3DzDgNHf36m0A%40mail.gmail.com.
(Scala.Rx was dead last I checked)
On Tue, Mar 28, 2017 at 4:39 AM, Marius Kotsbak <mar...@kotsbak.com> wrote:(Scala.Rx was dead last I checked)This is a good illustration of the way that GitHub only provides a partial view. There hasn't been development in Scala.Rx in some while, no -- but I'm using it in production, and I know I'm not the only one. (Indeed, I'm not the only person who has written a higher-level framework on *top* of Scala.Rx.) I haven't worried about the lack of new development because it works, and I haven't needed changes.
--
You received this message because you are subscribed to a topic in the Google Groups "Scala.js" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/scala-js/77J_RdnWu_k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to scala-js+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/scala-js/88ef9080-0147-4e93-b0f8-da732f3d9057%40googlegroups.com.
To unsubscribe from this group and all its topics, send an email to scala-js+u...@googlegroups.com.
what I think is really really sad, is that there is no library that uses plain HTML files or some sort of that, and instead uses their DSL/Syntax directly inside Scala files.Of course all people are Scala developers, but it might be helpful to have a seperate file, like a Twirl Template and compile/convert it. Something like https://github.com/glimmerjs, just more typesafe.
To view this discussion on the web visit https://groups.google.com/d/msgid/scala-js/2874fd67-4d05-482f-895f-795fbeee3b78%40googlegroups.com.