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

What is Bosque approach to core functions? #184

Closed
NickStarlight opened this issue Jun 21, 2019 · 1 comment

Comments

@NickStarlight
Copy link

commented Jun 21, 2019

As discussed on #138 and #136, there are implementations of popular algorithms on the core Bosque library that falls into the coding phylosophy proposed by Bosque:

[...]for writing code that is simple, obvious, and easy to reason about for both humans and machines[...]
[...]The result is improved developer productivity[...]

From my POV, developer productivity and simple coding would be an approach similar to what we have as frameworks, helper functions and classical problems already solved and implemented in convenient functions., such as levenshtein() and soundex() on PHP, those exist to avoid repetition and waste of time implementing something that's already been implemented thousands of times.

What's bosque approach and limits to WHAT should be in the core library?

@mrkmarron

This comment has been minimized.

Copy link
Contributor

commented Jun 23, 2019

My feeling is that there are 3 rings to consider:

  1. The core library which is always available -- this would include List, Set, common string operations, etc.
  2. A set of optional high value for major domains core components which we provide that are more general -- to my this looks like the kinds of things that would be in Boost for C++. In your example I think levenshtien could be in here. I would also think of things like matrix math, compression, etc.
  3. A (curated?) community set of modules with a wider set of modules. I would think something like soundex would be in this set.

Basically I would like to have a very small set of true core libraries so we can deploy to very small devices but still provide a large set of "batteries in the box" with the second ring. Hopefully, this organization will allow us to avoid some of the small vs. large core tension seen in Node.js.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.