4 ms·
True. I'm not sure how I'd feel about maintaining a 2,000+ line J codebase. It definitely feels like a "programming-in-the-small" kind of language. It is impr
by gmfawcett 7y ago
True. I'm not sure how I'd feel about maintaining a 2,000+ line J codebase. It definitely feels like a "programming-in-the-small" kind of language.
It is impressive how much logic you can fit into so few characters. Even other terse languages (e.g. Haskell) seem wordy in comparison. Of course this is especially true when the problem has a fairly natural array representation, and that might not be true for many real-world problems.
I haven't tried it, but I feel that a literate-programming style might work well for J. The code itself is very dense, so I think it might work well to have a long-ish, plain-text explanatory document with bits of J interspersed throughout it.
- chongli 7y agoPerhaps the approach to maintaining a large codebase of terse code (such as J) is to keep the files very small and narrow in focus. This could end up very similar to a Unix userland code tree. Of course, lots of documentation could also help. Maybe a style similar to R/Python notebooks would work.
- gmfawcett 7y agoThat's an interesting point. I wonder if the small, focused approach is (or was) common in professional APL/J/K development. It turns out that there is a Jupyter notebook implementation for J [1]. I might play with that! I suspect that you're right, notebooks would be a good fit for terse languages. [1] https://code.jsoftware.com/wiki/Guides/Jupyter https://code.jsoftware.com/wiki/Guides/Jupyter