I really wanted to like it so I could program in my phone, but it's just too absurd to work for me.
The basic idea I got from experienced programmers was: you don't code like that in the real world. Real-life code should look a lot more like code in other languages, with no tacit programming and a lot of redefining of one-char words into actual words to improve readability. Then... why would I code in J at all? And why am I not taught to code like that in J's help?
> I've looked at some J code. Every other character is a period or a colon. I've got spots before my eyes. How can anybody read this stuff?
> You'll get used to it. J has a great many primitives, and it's important to keep the names short so that you can fit a lot of computation on one line; so the names are either single characters, like >, or a character with a period or colon appended (>. and >:). The period/colon is just part of the name. Single letters with period/colon, like i., are also used for primitives. If you want to assign your own names to the primitives, you are allowed to, but pretty soon you'll want to go back to the shorter names to save space and typing.
What autocomplete you need in J? For verbs and conjunctions which are at most 2 letters long?
> how do you give ideas whether the user should use @ or ^ at a given point?
In the same way as IDE helps you to choose . or exp() ? They are completely different concepts, how can you mix them?
> it's near impossible to search for code examples and such
I think it's a common problem for complex code examples, in any language. You may, though, search for comments.
From http://www.jsoftware.com/help/jforc/foreword.htm#_Toc1917342... :
> C is a computer language; it lets you control the things the computer does. J is a language of computation: it lets you describe what needs to be done without getting bogged down in details
I think it's a great help. J doesn't just reduces typing; it also reduces the amount of things one needs to keep in the head to solve the problem.
I even coerced SES (the Emacs spreadsheet) to act as an editor for large arrays.
I would argue that I have suceeded at least partially, such that I can say that it's definitely possible to implement an IDE for APL.
In other words: you can't really say anything about how it feels to work with J without working with it for some time. This may be true to some extent with other languages, but J is unique/different enough to make this point especially true.