Не, эти значки это не страшно на самом деле. Фигня это. J очень близок, как я понял, по грамматике и вообще по построению к естественным языкам, когда узнаешь какой значок что значит, чтение этой крякозябры должно оказаться более естественным нежели чтение исходника какого-нибудь оберона.
Страшно (с точки зрения построение парсера) другое:
J позволяет построение нескольких синтаксических деревьев для одной и той же строки кода. То есть описания языка не полны, отсутствует исчерпывающая спецификация. Язык J контекстно-зависимый, и стандартные средства для его описания (например, грамматика в форме Бэкуса-Науэра) не подходят. Понятие абстрактного синтаксического дерева даже теряет своё значение, так как оно корректно лишь в области контекстно-свободных языков.
Кстати, эта реакция вас обоих явственно показывает разницу между восприятием человека и тем, что обычно пытаются считать считая это сложностью языка :-) У человека и машины восприятие сильно разное. То что мешает машине (та самая контекстно зависимая грамматика) может не быть какой-либо проблемой для человека-программиста. И наоборот - с точки зрения парсера нет никакой разницы на что заменить лексемы, можно все их обозначить односимвольными спецсимволами #,&,^,! и так далее (благо в юникоде их полно). Пробелы и отступы убрать вообще. Метрика синтаксиса не поменятся никак вообще, однако человек очень сильно испугается когда увидит текст программы на таком преобразованом, скажем, обероне :-) И явно его за оберон не признает.