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

CRAN or Bioconductor submission? #6

Open
adamsardar opened this issue Sep 11, 2019 · 2 comments
Open

CRAN or Bioconductor submission? #6

adamsardar opened this issue Sep 11, 2019 · 2 comments

Comments

@adamsardar
Copy link
Owner

Being a computational biology package, Bioconductor would seem sensible. BUT, there is an emphasis on S4 methods, rather than R6.

An advantage of S4 is that the dispatchers are typed (so the input validators would not be necessary). Also, documentation of S4 is more natural with roxygen, which would make #4 easier.

A disadvantage is that the process is well suited to an object - there is explicit state. A previous incarnation of the package was in Julia (whose object system is a lot like S4) and that was a total mess.

@adamsardar
Copy link
Owner Author

adamsardar commented Sep 11, 2019

Hadley's Advanced R book discusses the problem:

https://adv-r.hadley.nz/oo-tradeoffs.html#threading-state

Much like the pop example, we want to call a function and then save the updated state somewhere. A functional approach is to create a fresh state (and leave the original unchanged) - remember, Immutability . An object has the state intrinsically with methods.

@adamsardar
Copy link
Owner Author

Expanding on the previous Julia package: the reason that it felt like a mess was that the initialiser function created ALOT of state. Nothing felt easy.

More and more I am coming around to the thinking that this should go to CRAN

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

No branches or pull requests

1 participant