aboutsummaryrefslogtreecommitdiff
path: root/docs/community/index.html
blob: e560cb1b1a123b46eff319312d0966f4498ba518 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<head>
  <link href="../favicon.ico" rel="shortcut icon" type="image/x-icon"/>
  <link href="../style.css" rel="stylesheet"/>
  <title>BQN community links</title>
</head>
<div class="nav">(<a href="https://github.com/mlochbaum/BQN">github</a>) / <a href="../index.html">BQN</a></div>
<h1 id="bqn-community-links"><a class="header" href="#bqn-community-links">BQN community links</a></h1>
<p>This page gathers links to work by the community. To get in touch, please use our <a href="forums.html">chat forums</a>.</p>
<p><a href="https://adventofcode.com/">Advent of Code</a> 2021 is complete: check out the <a href="aoc.html">review and retrospective</a>!</p>
<p>For code repositories using BQN, see:</p>
<ul>
<li>Github repositories <a href="https://github.com/topics/bqn">tagged BQN</a></li>
<li><a href="https://codeberg.org/CptJimKirk/bqn-rest">bqn-rest</a>, for web APIs</li>
<li>Josh Holland's <a href="https://git.sr.ht/~jshholland/trybqn/tree">solutions</a> to TryAPL problems</li>
</ul>
<p>And the links below point to BQN submissions on some sites that encourage shorter-form programming.</p>
<ul>
<li><a href="https://rosettacode.org/wiki/Category:BQN">Rosetta Code</a> (consider translating <a href="https://rosettacode.org/wiki/Category:APL">APL versions</a>?)</li>
<li>Stack Exchange <a href="https://codegolf.stackexchange.com/search?tab=newest&q=BQN">Code Golf &amp; Coding Challenges</a></li>
<li>Codidact <a href="https://codegolf.codidact.com/posts/search?utf8=%E2%9C%93&search=BQN&sort=age">Code Golf</a></li>
</ul>
<p>And also:</p>
<ul>
<li>Some reference pages: <a href="https://pastebin.com/raw/ynsghrHM">compact functions</a>, <a href="https://gist.github.com/dzaima/52b47f898c5d43f72dc2637d6cdadedd">big everything</a></li>
<li>Asher Mancinelli's <a href="https://www.youtube.com/channel/UCZ5sL4E662VP1ZwC4h85ttQ">youtube channel</a> includes walkthroughs of BQN programs.</li>
<li>Lukas Hermann writes some <a href="https://observablehq.com/@lsh?tab=notebooks">Observable notebooks</a> based on BQN.</li>
<li><a href="https://dancek.github.io/bqn-80">BQN-80</a>: make animations with BQN.</li>
</ul>
<h3 id="fan-art"><a class="header" href="#fan-art">Fan art</a></h3>
<p><a href="https://codeberg.org/wezl">Wezl</a> has provided a view into the BQN programmer in 𝕩e's typical place of residence.</p>
<p><a href="https://ermineii.github.io/paste/#0fZExDoMwDEX3nOKPZPIZWCJ54gA18gWQuvb4dSghjtP2C2XgPcX4k3BHQ9JNCCGSJrSqrhGyl@R6N1H250w3bMD@neph3@lueAaB6lI2uQkUOJPAHm48DjDwqufIqfzMubuvy27XvszVztAnk6p4oypj48yHZubxDywIDiM4yKm13iQphYZZZyWCZe8OCqTPf@RPa6J/Qm8%23DYs7DoMwEAV7n@J1fCQMQenSYeUQlICXZCXYEHuROD4rTTWjWX@iZTHz5@CrqF5YeSOZdjL3Fz8l9XqpBefaGvrlDKNcKgSKiRfCO@0sxIy@6x8OwGZWMkWcEinZQwihGUY8fYe6vQE">Depiction</a>, <a href="https://ermineii.github.io/paste/#0jZA7DsQgDER7TuFyU/kMKUCytsgBMPIFIm27x18gJHxDdoQoeKPBHgVZUktlglCLVYdWkbWDVHg4PXWUyrunG2wAbkxl93MWCZ/GgGEn//NpwIYTMvhDJ28/8OAb7pqjuVXcPbfls6/xiuqKOglFuHZES/FCtMtCtSVOUnkIHj1sDMLAw/ByLjUMBvgYz1q7HEsYp3XYi2UiX4q62nuPlbieSk0jmij4I@k@7gc%23Fcu7CsJAEIXhfp/ikCYXcBODYBFsDD6BlWXcncSBzRg3I0Sf3hVO9R3@icTZVT@B7PgUvfKXcEJ2XDTrzF@K/M7Twltedhg5kAwzJXuJHaJa3TQdxtQV9MEr0gpXoicf2REucWYhZrRNuzcAQlJZyeMtnmJqCH2/O99wsA2q@gc">remodel</a>, <a href="https://ermineii.github.io/paste/#07ZhLbuMwDIavInTVAAV4hmwM/Cujm26qQBco0gFmk@MPqYdFSZbtboJMKsFxYPK3HuRHR87ni1maq5q9Li4yVbM2exfn2blz64aWWRuNrR/6vOKezWzMpeN2Xzxh1cd3rSBZngyfJFQrQOyVD5KkGYY9NzlXApq6LQZCx0@GcHldS7SKGIM4/laLgqpMBPDlTkCdmFdTqWAqlTlxXykXSWbtNFExZAgS614vWWYmtuR5fJ5iKK11G41e3gZqd0aNfAgK1lrUINM1JWstajwPRs0Am6ixm1ErVSuoMWlmmkzJWouakGY0awO1R0WNYgQ0aw1qTFoQFrA1rEFWYR1MwVEDGzuDqsStoQ3pqsCtoS3ApnEbtD0obbTkV@FW0yawRaXGraZNpiEqLwS6uInLy2oua94QhxSdJq4GLvGmiBvA/ffAiWCXN57OEdw8Skdpuw3afh1t4T3ikXHzT8zB21PwRpE39mwChwQcNoFDAg47wIUNIxNHx4ibBnHPQlz4p8TaXeQQkMMOcgjIYR@5sNW70WDu1zHH87X2CHMQ5rDLHI4zJ@0odGYw90TMUQZgBzqkr23matUWcn4Cd0DOUyP3XAuT31hURoqbx2tlK2FLtrNOXk7finFaU0bEUmK1kdaU2DH6pVdG/ydroXQOPpx@q7SYWad5gy9UUDUULdv1@A7gzUzBzMu@5R2YFyOMnzdc0TrLtUPaz6cuQk6R9u9BndIMVbJqxeKmRZzMAYFDIcvGzGiRnIWzwroqLY1OGSklV7HxnZ9TH@X9yUwlmt5KNcTyNGnI5h7FNorgvkXw/oMieB9FMIpg/BKMIhhF8EBFINerhRDCs1oO/qWhVxSO@qUh57lXIaHjTp3w8adbLerOpmb4@NutHN8RjfpZq5/LPw%23PY5NT8MwDIbv/RVWL2kHS8s0CYl@HKiQOMAJLki7ZIlXDKkTNZlE@fWkDGH5ZPl9nndE1jLExaI8OY4v9I3Qgbj1UTSwXgpxpNHTlygbCBiDRzRFLet92WTwN@MKIWacH1@fn1I@b/2MQKYTimlSkRwL@LV0YoVuT2oiu9zBIb/QD/k1TI5d8Eqj6Nsq5fv86t8ACXk8x@gYHGtL@rMT3qqlKEXvwYKCpa0uD32eipNFVhMWwqsQUa4t5EdILVLrLKs2EN8pQNpClzCgmUkjPMwTMRLBrt7drOrkQQ5o4MwG55RBGIbt/RvsZQ2b6gc">animation</a>.</p>
<p><em>Links contain the encoded art, which is CC-BY 4.0: see the &quot;setup JS&quot; pane.</em></p>
<p>And razetime designed a <a href="https://gist.github.com/razetime/22e8161d089afcfb7baa08045e590ef5">desktop background</a> based on the BQN logo and character set.</p>
<h2 id="can-i-help-out"><a class="header" href="#can-i-help-out">Can I help out?</a></h2>
<p>Certainly! There are never enough hours in the day and contributors from beginner to advanced programmers are all welcome. If you're interested I recommend you ask on the forums first to get a feel for what exactly is needed.</p>
<p>You will certainly feel an urge to skip this paragraph and get to the fun stuff, but the most important resource for implementing a language is <strong>testing</strong> and the most valuable one for building a language community is accessible introductions to the language and <strong>learning materials</strong>. These are both very demanding, but if you're willing to put in the work to advance BQN in the most effective way then this is it.</p>
<p>Work on BQN's <strong>implementation</strong> generally requires a high level of programming skill. We're focusing development effort on <a href="https://github.com/dzaima/CBQN">CBQN</a> (see this <a href="https://github.com/dzaima/CBQN/blob/master/src/README.md">source overview</a>). It's true that the entire compiler and a (decreasing) portion of the runtime is written in BQN, but it would be hard to do much with these as they are very nearly complete, and work satisfactorily. If you want to try out <em>another</em> new language, we're starting to use <a href="https://github.com/mlochbaum/Singeli">Singeli</a> for <a href="../implementation/primitive/index.html">primitive implementations</a> because of its low-level control and extensible abstractions. And there's still work to do in C, particularly expanding <a href="../spec/system.html">system value</a> coverage. We'd also be interested in bringing in typical compiler optimizations like dead code elimination, constant folding, and escape analysis. I'd expect the design of these features to be much like any other IR compiler—or less hard, as BQN is fairly strict about the way variables are used.</p>
<p>There's no need to work on <em>our</em> implementation! BQN's <a href="../spec/index.html">specification</a> and <a href="https://github.com/mlochbaum/BQN/blob/master/community/../test/README.txt">tests</a> are there to make sure you can write a conforming implementation, and extend it with your own ideas. It's also possible to take advantage of the self-hosted BQN sources by writing a <a href="../implementation/vm.html">virtual machine</a> that allows you to embed BQN in the language of your choice.</p>
<p>Building <strong>libraries</strong> for BQN users can make writing programs in the language much more approachable. You are a better judge of which libraries are needed than I. Port some code from another language, implement some useful functionality in a field you specialize in, or try something new that interests you. A library should be structured as a file (which might load other files) that loads a namespace. This isn't too well-documented now, but see the <a href="../doc/namespace.html">namespace documentation</a> for hints, and <a href="https://github.com/mlochbaum/bqn-libs/">bqn-libs</a> for my work-in-progress vision of what developing one should look like.</p>
<p>Those are possibilities, not limitations. The best contribution is the one that fixes something I didn't even know was wrong.</p>