Code Monkey home page Code Monkey logo

Comments (8)

schrepfler avatar schrepfler commented on May 29, 2024

The project does build a Scala.js module but I'm not sure if it's usable from JS.

from crjdt.

nybblr avatar nybblr commented on May 29, 2024

Right, if I understand correctly, Scala.js just helps if you want to write the host app in Scala too, as opposed to just transpiling a Scala lib for use in native JS. I gave it a shot a couple days ago without much success :)

from crjdt.

schrepfler avatar schrepfler commented on May 29, 2024

Scala.js code can be used from a JS host environment as long as what you want to use is exported https://www.scala-js.org/doc/interoperability/export-to-javascript.html
That said, I have no idea if the code base is annotated in any way.

from crjdt.

Tamriel avatar Tamriel commented on May 29, 2024

Because the crjdt is implemented in Scala, I learned the language and love it now. Check out Martin's Coursera course and Haoyi's Hands-on. Regarding language design and elegance I think Scala is superior to JavaScript. In this gist I have some ugly code of a collaborative textfield using crjdt.

from crjdt.

fthomas avatar fthomas commented on May 29, 2024

I'd love to see ports to other languages and would encourage you to do this. Unfortunately I lack the free time and experience with JavaScript for collaborating on a JS port. I agree that the notation of the paper is a little bit off-putting and understanding the whole data type without much type information can be hard (at least it was for me).

Btw, the code has no @JSExport annotations again because of unfamiliarity with JS and Scala.js. I'd happily merge a PR if someone wants to contribute this.

@Tamriel Your gist is great! This is AFAIK the first demo using crjdt!

from crjdt.

nybblr avatar nybblr commented on May 29, 2024

@fthomas I will try the annotations method for a stop gap, but I would definitely love to create a first-class native JS implementation. If you do happen to come across some free time, let me know — even just walking through your understanding of the algorithm would help me immensely! No JS experience necessary :)

from crjdt.

Tamriel avatar Tamriel commented on May 29, 2024

Have a look at automerge.

from crjdt.

RomanIakovlev avatar RomanIakovlev commented on May 29, 2024

I agree the notation used in paper is the biggest obstacle preventing more implementations (in different languages) of the great ideas published in this paper to exist. I personally also struggle to understand it properly. I've created a question on Computer Science Stack Exchange site (here: https://cs.stackexchange.com/questions/83770/help-understand-the-notation/85376) to clarify the notation, and some of the points were already answered there. Unfortunately, the still unanswered questions are crucial for proper understanding, and, apparently, it requires a deep familiarity with the paper to answer them, according to the people who posted some answers already.

It would be great if someone who made his way through the notation to chime in and post an answer for the reward of imaginary internet points and my (and probably other people's) gratitude. :) @fthomas any chance you could give it a shot some time in future?

from crjdt.

Related Issues (13)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.