mlochbaum / BQN

An APL-like programming language

Home Page:https://mlochbaum.github.io/BQN/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Idea: BRFI?

yewscion opened this issue · comments

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?

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.

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.

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!