Hacker News new | past | comments | ask | show | jobs | submit | Rampoina's comments login

I don't understand how this is not the obvious answer. Maybe people are equating open source with an open development model?



> APLers hate the successors, because "notation is tool for thought" and ASCII is a poor representation.

I'm perplexed by this one. I'll concede that the APL symbols are prettier but why does it magically stop being a notation just because you use combinations of ASCII symbols. Especially when many APL symbols are composed of units themselves.

⍲ vs *: One is 'notation' because it has the two units stacked on top of each other and the other is not because they are stacked horizontally?


At least one person [1] has played with using APL symbols in J, at least at the display level. I gave it a try, but was surprised to find that I preferred the ASCII version. Perhaps if J had its own custom symbol set (extended from APL?) it might have been better -- not all of the APL symbols have exactly the same meaning in J, and I remember finding some of the differences to be a bit jarring. For example, conjunctions like '&>' and '&.>' are heavily used and deserve their own symbols -- just putting a little-circle before a '>' feels like a hack. (No disrespect intended to the author, though, this was a great experiment.)

[1] https://wjmn.github.io/posts/j-can-look-like-apl/


If a symbol is made of multiple side-by-side ASCII characters, are there any problems telling where one symbol ends and the next starts?

In ordinary text, we separate words with spaces, and add punctuation at the end of sentences to further make the structure apparent. (Well, now we do...a lot of pre-modern writing would justwritethewordssmushedtogetherlikethis [1]). In most of the sample programs in APL successors I've seen there usually didn't seem to be space between symbols.

[1] https://www.bbc.com/culture/article/20150902-the-mysterious-...


Yes, at least for me, trying to learn it. For example, / in many examples is an "adverb", modifying the previous operator, although xx/ is frequently introduced as a single thing. (Are all built-in verbs one or two characters?)


'xx/' is a single thing -- in the sense that 'xx' is a thing, and '/' is a thing that modifies other things. By applying '/' to 'xx', you get a new, standalone thing.

Re: one-or-two characters, there are a few exceptions, like the folds ( F.. F.: etc.) which are new to J9. Also some older ones like {:: (Map) and &.: (Under) where `x u&.:v y` means `v^:_1 (v x) u v y`. Some of these aren't verbs but conjunctions, adverbs, etc. For the most part they stick to one or two. There are parsing rules that dictate what the second and third characters can be (that's why you see so many colons and periods), and these rules are actually discussed in the JforC book.

Reading J can be tough, as a fellow learner I feel your pain. :) The one that usually gets me (in my own code, even!) is

    5 myverb \ n
...which runs the verb over 5-element slices of 'n' at a time, and joins up the results. The '5' is too far away from the '\', and it can be hard to see the connection right away. I understand why it's so (it's really running the modified verb 'myverb\' with arguments 5 and n) but I still find it hard to read.

When writing my own code, I often leave extra spaces between the multi-character words, and anywhere else that helps legibility. J might be a terse language, but there's no point being crazy about it (unless you're golfing).


No idea about APL languages but it sounds similar to asking whether the code is uniquely decodable:

https://en.m.wikipedia.org/wiki/Variable-length_code#Uniquel...


I've wondered that myself, because the zoo of symbols doesn't speak to me, like iota, but maybe the mathematical use has something to do with the APL use.

So I simply assume there is something deeper going on than "it looks ugly". Maybe someone here is in that camp and can tell us. At least the argument was made on HN in some earlier APL or J thread.


There is something I call "the whiteboard test". I work in research, and I spend a good part of my time working with formulas in whiteboards and discussing about them with my colleagues. I am constantly confronted with the irregularities and limitations of standard mathematical notation and see APL as a huge improvement, I would really like to use it more, and I have even taught some basics to colleagues so we can use +/ for sum and ×/ for prod, or ⌈ and ⌊ for max and min, for example.

Iverson solved some remaining inconsistencies in J, and it includes some elegant concepts as tacit programming (+/ % # for the arithmetic average is beautiful) that were not in the original APL, but I do not see myself writing J in the whiteboard or a notebook.

But ASCII may not be the main problem. Curiously, I find that K performs much better in my whiteboard test than J, perhaps because the set of symbols is much smaller. And if you think it may be a matter of getting used to it, I have worked with APL far less than with J and still find the APL symbols more appealing.

There are many things I like about J, and I do not have a very rational explanation to give you, but I agree with those that say that APL is a better tool of thought.


Are you really saying that non-ASCII is notation and ASCII is not? When I read your first comment, I understood it to mean that better notation is better than worse notation.


I'm not saying that. Some APL fans say that ASCIIfication of APL is a bastardization, because notation matters. (search through earlier HN threads)

Notation is obviously a shorthand for "sensible notation" or even "better notation" there, because obviously just about anything can be notation. Including laying out pebbles on a beach.

But further than that, I don't know.


The usual argument is that "one should APL like one reads music", meaning that with experience you immediately recognize specific patterns which help you understand what is going on. As for why ASCII can't do that, only the critics know their true reason, which I suspect amounts to "it's different from what I'm used to". I've done both, and I found J notation no more obscure. Critics should also note that (Dyalog) APL departed from APL2 to copy many J patterns, so it appears difficult to argue that J was such a mistake to begin with.

Some people hold prejudice against parentheses and prefix notation, for others it's ASCII...


ASCII is a much smaller space of possible operators, so an ASCII-based language is always going to end up significantly more verbose than one that allows non-ASCII symbols. I don't use APL but I definitely appreciate being able to write ≤ or ⊆ or ∀ if that's what I mean, rather than having to expand those out in ASCII.


≤ "expands" in J to <: Definitely not more verbose.

J uses . and : as modifiers to a base operator to create a pretty big set of primitives. See https://code.jsoftware.com/wiki/NuVoc


> ≤ "expands" in J to <: Definitely not more verbose.

I mean, in a fixed-width font (as people tend to use for programming) it's literally twice as long. That adds up.


Actually, J is often less verbose than the equivalent APL, hence its use for code golfing.

This is less true since APL has begun integrating J semantics and operators, but still..


I should have used the full sentence. Why does it stop being "notation as a tool of thought" See comments like this one https://news.ycombinator.com/item?id=20732924


You can do that with a traditional notation music program like Musescore. You just need to learn music notation.


I would also like to know if there's examples of more real time applications in APL. Any GUI programming? Interactive simulations? etc.


Tangentstorm’s videos about J have some nice GUI examples. For example https://youtu.be/uL-70fMTVnw


Pretty cool thanks, this one covers interactivity https://invidio.us/watch?v=CzK2SazvCxM (it's a little sprite editor)

Do you know if GNU APL offers the facilities to do stuff like that?


I was a bit confused with it being called a consonant.

After some research, although I had a flawed understanding of vowels and consonants, I think it's classified as a semivowel.


Damn it, you're going to make me spend 240€ on this :D Is it velocity sensitive? How is the feel of the keys?


Yes, it's velocity sensitive. The keys are quite sensitive, more like a keyboard than an electric piano (coming from an electric piano as I am, it's easy to play a note unexpectedly loud, but I think that's not hard to get used to). The different keycaps for each note feel a bit different from each other as the leverage angle is slightly different.

I should note that I have yet to try the MIDI capabilities. I didn't have a MIDI-capable computer in my lounge until I recently acquired a USB adaptor, and I haven't dug out my MIDI cables yet.


I have the opposite opinion (I also own a linnstrument).

I come from a piano background, and as someone that kind of struggles to improvise in keys with more accidentals I was attracted to the idea of an isomorphic layout.

After playing a lot with the isomorphic layout I've come to a conclusion that it comes at a cost (it has its advantages and disadvantages compared to the traditional piano layout)

To be isomorphic the layout has to have multiple representations of a single note, with this comes the fact that you don't really have to learn one shape for every chord, you have to learn multiple ones if you play complex polyphonic music and want comfortable fingerings (the linnstrument also has this problem that you can't play 4 notes in a square which comes at the most unexpected times specially between the two hands).

So the comparison would be to learn every key thoroughly vs learning every (useful) alternative for every chord.

In my opinion there's nothing intuitive about the y axis having a greater intervalic distance than the x axis, specifically I would have this problem when going down in a melody to the previous "string" the distance to that note is way different than it would be on the same string.

To be fair I think the only intuitive layout is a linear one (like a single string, or the haken continuum)

If anything, having played with an isomorphic instrument has encouraged me to learn the piano layout more deeply.

Having said that, the linnstrument itself is a decent product all and all (although I have some beefs with it but I don't want to turn this comment into a review) and it makes sense that you like the layout having more experience with stringed instrumments, but I would say that's familiarity not intuitiveness.


Maybe try a linear isomorphic layout, Janko style (see my top level comment; I'm coming from piano).

Edit: Is that any four note square? Just squares, or rectangles too?


Rectangles too, any four corners played at once. It's because the sensors are horizontal and vertical stripes of velostat, so every individual stripe can only sense pressure, the location is gather by combining the information of the overlapping stripes.

from their webpage [1]:

> If 3 note pads are pressed that are 3 corners of a rectangle, presses to a note pad that is the 4th corner of that rectangle will be ignored.

[1] http://www.rogerlinndesign.com/ls-specs.html


See http://annafeit.de/pianotext/ for another interesting take on this idea.


What is Deepmind's interest in not releasing the source code and weights for the neural networks?

I'm excited about their work but it seems that it would be much better for everyone if they just released their work openly.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: