News for hackers. Stuff that matters.
Re:The J Programming Language [video] by tormeh on Monday March 31, 2014 @05:05AM (#7500411)
Too many special characters. This is why I don't like Haskell. As a polyglot, it's really helpful to have a piece of syntax spell out what it does. Python is usually really good at this. I don't get how it can be so hard for language designers to learn this. Why use ":+" when you can use "append"? Now I have to google "Scala append" every time I start writing a new Scala program. Good job. But at least the Scala example uses "+", which is sort of understandable with lists. You can suspect that it has something to do with appending when reading code. What does ">>=" even mean? Or "(($){.R)"? WTF? I give up. I don't like languages that try to fight me.
Re:The J Programming Language [video] by klibertp on Monday March 31, 2014 @05:23AM (#7500452)
Stop trying to fight a language, then? Just learn those few unfamiliar constructs the language is build upon and start using it. Actually, in J there is not that much of what you need to learn, here is the full list: http://www.jsoftware.com/help/dictionary/vocabul.htm

And here is a bit more involved explanation of what those words mean: http://www.jsoftware.com/jwiki/HenryRich?action=AttachFile&d...

If there is one thing I learned as a polyglot it's that language usage patterns differ and trying to use one language as if it was another is counterproductive. My advice is to learn more and practice more - at some point you'll start seeing higher-level patterns in language design and will be able to cope with many, now unfamiliar, features and design decisions.

Re:The J Programming Language [video] by tormeh on Monday March 31, 2014 @10:14AM (#7501557)
I do see patterns in languages, it's just that the patterns are hidden below arbitrary nonsensical syntax that has to be relearned every single time I switch language. Some syntax, like Python's, is easier to remember and guess than other syntax. I conclude that Python's syntax is good and Haskell/J's syntax is bad.

Basically, I want the languages I use and have to constantly relearn to have a syntax that is quick to pick up after having partly forgotten it for the nth time. That requires memorable and guessable names and keywords.

Re:The J Programming Language [video] by avmich on Monday March 31, 2014 @12:03PM (#7502287)
I'd recommend reading Iverson's "Notation as a Tool of Thought" (http://www.jsoftware.com/papers/tot.htm) . Operator looks for APL - and then for J - were modelled after mathematical notation, which had to be extended somewhat towards computations. But can you imagine writing on a whiteboard, say, "samples_transposed" instead of A'?

You definitely can use words instead of many symbols in J. I highly doubt though you want to do that for the core language. Much more productive - IMO - is to learn the vocabulary - which is very finite. Yes, I know it's a great show stopper for those considering learning J.

Re:The J Programming Language [video] by omaranto on Monday March 31, 2014 @09:16AM (#7501211)
All of the symbols are optional in J, except for =. and =: which are used for assignment. If you don't like % for division you can define

    divide=: %
and then only use divide. If you don't want to come up with your own names for all the built-in functions, you can just use the names suggested in the vocabulary (J's main help file). If you don't want to write all those definitions to give names to the built-in functions, there is already a module in the standard library that does it for you.

If you do decide to program in J, however, I recommend you just learn the symbolic names, they're so much shorter and fun. :)

Re:The J Programming Language [video] by unwind on Monday March 31, 2014 @06:03AM (#7500538)
Operators are probably written using special characters in order to provide a suitable level of terseness. I feel it really can make things more compact and easy to understand.

Of course, I'm very much of a C programmer, and C is kind of good too at using operators in a terse manner.

If C required

    foo >>= 4;
to be written as

    foo = foo shift_right 4;
then it just wouldn't be as nice and fun to program in. Even more so when using the pointer-dereferencing and pre/post-increment operators, or combinations.