Coder Social home page Coder Social logo

Comments (14)

danchoi avatar danchoi commented on August 16, 2024

I removed the dependency on lens in a fork: https://github.com/danchoi/xlsx

I had to remove the tests and the example temporarily. But the lens-free fork I just made does build.

from xlsx.

qrilka avatar qrilka commented on August 16, 2024

Do you have any other examples? aeson and aeson-lens don't look as a good example as those are 2 separate packages developed by different authors (with a dependency one on another of course)
In any case that would be breaking change requiring upping version to 0.2

from xlsx.

danchoi avatar danchoi commented on August 16, 2024
  • lens-text-encoding
  • lens-time
  • lens-datetime
  • lens-properties

?

from xlsx.

danchoi avatar danchoi commented on August 16, 2024

Also here's an argument for avoiding propagating the dependency on lens if possible:

http://fvisser.nl/post/2013/okt/11/why-i-dont-like-the-lens-library.html

from xlsx.

qrilka avatar qrilka commented on August 16, 2024

None of them seem to give an example of a package and lens API developed at least at the same time.
Counterexamples exist also - e.g. http://hackage.haskell.org/package/thyme
I know arguments against dependency on lenses and have read that blog post also.
Just wanted to know of an example package which was developed taking into account lenses API (though in a separate package)

from xlsx.

danchoi avatar danchoi commented on August 16, 2024

To be honest, I don't know of any examples that meet that requirement. I guess my argument stands or falls on how convincing that philosophy expressed in that blog post is. If you're not convinced, I'm fine using my fork for our own private purposes. Thank you very much writing it!

from xlsx.

qrilka avatar qrilka commented on August 16, 2024

I see the arguments but I'm not convinced (at least yet).
Main argument against I see at the moment is that docs/examples (though there are not so much of them) use lenses API and we would need either have them duplicated (with API changed) or put them only into xlsx-lenses package which seem to be a bit awkward.
Another counterexample is http://hackage.haskell.org/package/wreq which uses lenses to bring "ease of use" to the library (though xlsx is not yet good from this POV)

from xlsx.

danchoi avatar danchoi commented on August 16, 2024

I found something. On this issue thread, they dropped lens and substituted something more lightweight, and let users import the big Lens library if they needed more.

VinylRecords/Vinyl#22

from xlsx.

qrilka avatar qrilka commented on August 16, 2024

I have found twitter-types/twitter-types-lens package pair but you link looks much more interesting.
Do you want to create a PR for such a change?

from xlsx.

danchoi avatar danchoi commented on August 16, 2024

Do you want to create two packages in the main repo like twitter-types or try what VinylRecords did? If the latter, I'll need some time to study what they did.

from xlsx.

qrilka avatar qrilka commented on August 16, 2024

The latter seems to be more elegant - see my question in that thread, probably we could get some help :)
And there is no rush in implementing the solution (at least for me)

from xlsx.

danchoi avatar danchoi commented on August 16, 2024

OK cool.

from xlsx.

qrilka avatar qrilka commented on August 16, 2024

@danchoi do you still want this to be done? Almost a year passed already and for myself I don't see much motivation to remove lens dependency. Please raise your voice - otherwise I'll close this issue tomorrow

from xlsx.

danchoi avatar danchoi commented on August 16, 2024

Go ahead an close. I don't think I have time either, but I'll let you know if I manage to do it. Thank you for writing the library.

from xlsx.

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.