Skip to content

Collaboration with BioJS (same module system and package manager)  #9

Closed
@bmpvieira

Description

@bmpvieira

BioJS was initially a registry of browser components for biological visualization. Bionode is more oriented for data manipulation (finding, parsing, analyzing, etc) and is more similar to other Bio* libraries like BioPython, BioRuby, etc. When possible, Bionode modules work client and server side while BioJS worked only on the Browser. Consequently, there was no overlap between the two projects. Now, BioJS no longer wants to be just a repository, and also wants to work server side. This could be an opportunity for both projects to work together to avoid duplicated efforts.

However, there's one major point where we're not agreeing, Bionode uses Node.js CommonJS with Browserify and BioJS team wants to move their modules to AMD. BioJS argues that AMD is the only system that allows for live module loading while others require building. Bionode went for Browserify because it allows using Node.js core features (like Streams) on the browser. Browserify supports live reload with tools like watchify, gulp, beefy, etc.

The BioJS team suggests discussing the following possibilities for integration between both projects:

  1. use AMD on the server
    e.g. use RequireJS as Node.js module
  2. use a CommonJS bundler for the client
    load compiled modules in the browser (Browserify, RequireJS,...)
  3. define modules two-way: UMD (universal module definiton) [4]
    specify them as AMD and CommonJS module (and global browser constants) in parallel
    e.g. commonjsStrictGlobal.js
  4. Bionode ideas
  5. Stop talking

We hope this issue gets some feedback from the bioinformaticians, Node.js and JavaScript communities.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions