Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libp2p - Update Implementations Chapter #49

Merged
merged 2 commits into from
Dec 12, 2015
Merged

Conversation

daviddias
Copy link
Member

No description provided.

@daviddias daviddias mentioned this pull request Nov 25, 2015
42 tasks
@daviddias daviddias changed the title update implementations section libp2p - Update Implementations Chapter Nov 25, 2015

This is the list of current modules available for libp2p:

- libp2p (entry point)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice if each of these parts had a list of implementations in the different languages attached to it, like this:

- abstract-transport [spec](link/to/spec) [go](link/to/go) [JS](link/to/js)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we're going to use the "abstract-X" modules for more than just javascript, can we:

  • rename the convention to something like "X-interface" or "interface-X" or "libp2p-X" or "X-protocol" or "X-proto"
  • use a programming language with types to define the interfaces (Go or Haskell ok for me)

  • bikeshed discussion: "interface" is a well-understood concept across programming languages. the use of "abstract-X" in node/js makes up for javascript's lack of a type system, but will not be understood as readily by people in other languages. the right word for this in PL vocabulary is "protocol" or "interface". "protocol" is too general of a word and has so many meanings-- "interface" tends to be preferred these days.
  • bikeshed link: https://en.wikipedia.org/wiki/Protocol_(object-oriented_programming)
  • bikeshed trivia: "concepts" and "abstract base class" are two holdovers from C++ and friends (probably in typical disregard of "the type people")

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 for defining types in Haskell from my side


bikeshed: 👍 for interface, 👎 for protocol (too generic, too much overlap with network protocols)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I remember having this conversation and agreeing with you, should have added it as a TODO right away.

I like interface-X.

👍 for Haskell too, however, we will have a mapping for each language as implementations appear :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Haskell :)

@jbenet
Copy link
Member

jbenet commented Dec 1, 2015

LGTM

@daviddias
Copy link
Member Author

interfaces updated, merging :)

daviddias added a commit that referenced this pull request Dec 12, 2015
libp2p - Update Implementations Chapter
@daviddias daviddias merged commit 704df04 into master Dec 12, 2015
@daviddias daviddias deleted the libp2p/implementations branch December 12, 2015 04:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants