On Sun, Apr 3, 2022 at 2:19 PM J. Patrick Harrington <[email protected]> wrote: > Anyway, if there are resources or further information on .wav files > under J (I've not searched extensively) I'd be interested to learn > about them.
So I started looking at simple approaches to playing wav files from within J. One of the more obvious approaches has J feeding the wav file to a program on a pipe. After a bit of investigation, I found that https://code.jsoftware.com/wiki/System/ReleaseNotes/J903 states: "Old foreigns 2!:2 and 2!:3 are removed from the language" That was support for this kind of thing: https://en.wikipedia.org/wiki/Pipeline_(Unix) https://docs.microsoft.com/en-us/windows/win32/procthread/creating-a-child-process-with-redirected-input-and-output https://developer.apple.com/documentation/foundation/pipe https://developer.android.com/reference/java/nio/channels/Pipe Pipes are a mechanism analogous to J's @: but with a few tradeoffs, and designed for interprocess communication. It seems to be supported by all current OS hosts for J -- even browsers are starting to incorporate an approximation of this mechanism: javascript's Blob.stream(). I can't find any description of why it was removed from the language. I can't find any effort aimed at replacing this mechanism with library code. I would like to classify this change as an error that we should repair. Am I overlooking some critical benefit here? After poking around in the forums for reasoning which might have lead to this change, I found this: http://www.jsoftware.com/pipermail/programming/2018-March/050819.html If that was the motivation, I need to apologize for my poor choice of words back then. But I also found this: http://www.jsoftware.com/pipermail/beta/2017-April/008775.html Or: it was broken for some time. And, presumably, tossing it was easier than fixing it. But, given how slow programming projects are (where individual projects might take years to complete, with programmers focussing on small parts of the whole at any given point in time), I don't think it's meaningful to equate "broken for a time" with "useless and should be removed". Quite often when people encounter a broken feature of a language implementation, they ascribe that to themselves, or to the language being too complex for them to understand, rather than reporting it as a bug. Anyways... Pipe support is gone from the language, for now. And, maybe we should have implemented pipe terminals as gerund rather than integers. But I think we should have pipe support (at least for sequences of characters) in the language. Thanks, -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
