I think it would be a wonderful way to write deep learning modules, since it is such a powerful tensor manipulation language. Unfortunately however, even although it should be perfectly suited to SIMD and GPU acceleration, this work hasn't been done yet.
So it ends up not really being fast enough for modern numeric programming - but I hope one day someone smarter than me will invest in making this happen.
I should add that the J community is wonderfully helpful. If you decide to take the plunge in learning this great language, be sure to join the mailing list.
Myth: line noise syntax required for efficient machine code.
Teenagers believed this about C versus Pascal in the 1980's. "Stuff like while (* s++ = * d++); looks faster so it must be."
Or else, what do you mean by efficiency?
Cheaper software engineering life-cycle, end-to-end?
Fewer keystrokes?
While J is fast, and can be practical, I would never recommend it for that reason, if only because it's so niche. But if you want to glimpse what a small sliver of all possibility the world of your day to day programming is, you will love J.