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

Idea: BRFI? #76

Open
yewscion opened this issue Aug 8, 2022 · 3 comments
Open

Idea: BRFI? #76

yewscion opened this issue Aug 8, 2022 · 3 comments

Comments

@yewscion
Copy link

yewscion commented Aug 8, 2022

In Short: What do You think about setting up something similar to scheme's SRFI system?

In Long: As I am (slowly) getting my feet under me with BQN and array programming in general, I was looking on ways to (eventually) contribute. On the community page, one of the things mentioned is the need for libraries to be written.

As a Lisper, I've greatly enjoyed the structure and reliability that SRFI libraries have added across implementations. Because the actual requests are abstracted away from code, they are both easier to understand and testably conformant to a standard. If I use SRFI-1 on Guile Scheme, it will work (nearly function for function) on Chez Scheme or Chicken.

Especially since BQN is so new, now might be a good time to allow for a system like this, where people might submit proposals for systems they would like to have in BQN according to a template, feedback from the community might be gathered, and then a standard for a specifically-named library, independent of implementation, might allow people to implement a consistent programming experience.

Yes, I could just set something like this up alone, but I both wanted to see what the reaction was here first and wanted it to be more than a personal project.

WDYT?

@mlochbaum
Copy link
Owner

The proposal part is very similar to what I tried to do with this post. Although some design discussions on TopAnswers have been successful, I haven't been able to get anyone to request anything. It's possible a better interface or more pushing on the forum would help, but most current users seem more interested in starting from scratch right now.

@mlochbaum
Copy link
Owner

My comments after looking closer at SRFI. It's an interesting system, thanks for pointing it out! The process seems to be heavier than we'd want at least initially, with the requirement to start with a draft and the endpoint of being finalized. Something more incremental sounds better: I'm thinking about having the ability to open a topic and discuss freely, and only later submit drafts. It might be possible to base this on existing discussion forum software. I wouldn't want to do it with email these days. It also looks like the way to update an SRFI is by withdrawing in favor of a new one, and I think version numbers make more sense for library specifications.

I do very much like the idea of having a specification with tests (and benchmarks?), then allowing libraries to implement it (BQN itself basically follows this model). We'd like to eventually start packaging some code with the interpreter, like a standard library, and this makes it easier to figure out what interfaces are suitable and mature enough. But it has to be flexible enough to allow specifications to improve as it becomes clearer how they should be designed.

@yewscion
Copy link
Author

yewscion commented Aug 9, 2022

That sounds very reasonable. I hope to be able to contribute in the future, so I'll look forward to whatever system BQN eventually develops. Thanks for the response!

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

2 participants