Giter Club home page Giter Club logo

Comments (4)

sergi avatar sergi commented on September 26, 2024 2

Hi @NeilFraser, @hriddhidey and thanks for your input.

It is great that DMP is now back on Github! Good to see it being active again.

I have to say I don't see a strong reason for go-diff to be put in the same repo as the remaining DMP implementations. In fact, what makes more sense to me is to separate existing languages in DMP in their own repo and keep DMP as an API that different implementations build on. From my point of view, putting different implementations of DMP in the same repo makes it hard for packaging, importing and discovering implementations. But that's just my opinion.

It is true that originally (6 years ago), go-diff was a go implementation based on DMP that I made because I had the need of a diff library for Go. Since then, development stopped in DMP, and was frozen for many years. Development at the same time continued for go-diff and it has a healthy list of contributors.

Here are some reasons from the top of my head why I think it is better to leave go-diff where it is:

  • Given the import nature of golang, changing the repo location would cause software that depends on it to be broken/outdated, along with a lot of friction for developers, with absolutely no benefit at all. This has happened before with some Go packages, and it's not pretty.
  • Go-diff has a healthy development speed and is actually updated often. Although the API has been kept, a lot of work has gone in fixing bugs and improving performance in internal methods. This is related with "considering DMP an API more than an implementation" point that I mentioned above.
  • Although based in the same API, I personally don't see advantages in keeping all the version in lock-step, besides making it harder to contribute for existing contributors.
  • I don't see the need to add another layer of governance to go-diff. It adds more friction.
  • Last, and that may be a bit romantic on my part, I like the idea of the OSS not being owned by a corporation like Google.
  • As far as I see, DMP repo is owned by only one person at the moment.

In short, I see it as a move that would mostly cause friction and alienate developers, while giving no tangible advantages.

from go-diff.

hriddhidey avatar hriddhidey commented on September 26, 2024

As a dev who is using this library both in Java (provided by DMP project), as well as Golang (this project), I'd deeply appreciate it being brought into the fold of the DMP project. After all, Golang being close to Google's heart, one would expect an implementation being a part of the original project.

from go-diff.

hriddhidey avatar hriddhidey commented on September 26, 2024

Those are really valid points @sergi and have forced me to reconsider. But having said that, a unification of API standards and bug-free implementation would probably occur more seamlessly through collaboration between both you and @NeilFraser. Currently, as I try to interface the golang diffing with patching in Java, there are bugs such as randomly missing white-spaces and the occasional missing alphabet. I believe that if everybody working on the algorithm collaborated better, we could probably see all-round improvements across languages. That may, or may not necessarily be achieved through migrating go-diff to a common repo.
These are merely the views of a developer who deeply appreciates the work put in by everybody and would love to see this project grow further, however best that is possible.

from go-diff.

derekperkins avatar derekperkins commented on September 26, 2024

You could get most of the standardization advantages by porting the source tests and updating them as they change.

from go-diff.

Related Issues (20)

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.