typelift / Tyro

DEPRECATED Functional JSON parsing and encoding
BSD 3-Clause "New" or "Revised" License
45 stars 13 forks source link

Deprecation #29

Open tmspzz opened 8 years ago

tmspzz commented 8 years ago

What is the reason why Tyro was deprecated? Are you looking for a maintainer?

CodaFi commented 8 years ago

No, this library well and truly does not serve the purpose of being a simple and declarative way to extract and manipulate JSON values in Swift. In fact, such libraries need not exist because we don't have the language infrastructure necessary to make such things. Swift is simply not designed to handle the kinds of abstractions needed for this (mostly lenses and modularity), and even if it was this library does not present the right API surface to take advantage of it should it come in the future.

The community has taken every opportunity to shape and reshape their ideal JSON parsing library and none have come up with convincing answers. Nevertheless, they present more canonical ones than we do here. The whole library needs to be rewritten, and in the process I'm confident we won't be able to do better than a dictionary subscript with a checked cast.

CodaFi commented 8 years ago

At the end of the month I will be deleting this repository. Maybe we can try again in the future.

mpurland commented 8 years ago

I don't think this is a good idea to deprecate and remove this repository with such a short window for users to migrate. I do agree that there a ton of other Swift JSON libraries and there are a ton of other perfectly usable ones.

tmspzz commented 8 years ago

I'm really sad to hear this news.

I have greatly appreciated the library and I have used it to introduce my entire team to functional programming. Moreover Tyro is a core dependency in our current project.

I understand that the lack of prism/lenses in Swift limits the possibilities of what Tyro can achieve but I believe that the elegance and nuances of the library make it superior to other choices.

For us it's a big effort to migrate to another library because we don't want the interfaces to change (i.e. we want to keep Either coming out of our parsing).

Would it be ok with you if I fork Tyro, port it to Swift 3 and continue using it despited your current take down plans for this repository? Of course I will not take created where credit is not due.

Thanks.

CodaFi commented 8 years ago

I'm glad to hear that. Feel free to do so (the license certainly permits that and much more).

tmspzz commented 8 years ago

Just to rest my point on the nuances that make Tyro a viable library I'd like to show the code below. Quite compact and expressive toJSON with ToJSONArray.

Image of ToJSON

netbe commented 7 years ago

Hi @CodaFi,

We decided with @blender to continue to maintain the project over here.

Could you transfer the ownership of the Pod to us, so we can publish the swift 3.0 version, thks?

CodaFi commented 7 years ago

@netbe You and @blender will need to send me your email addresses then. If you prefer not to do it on github, my Twitter DMs are open @Codafi_

tmspzz commented 7 years ago

For the record: @netbe I got access.