Comments 10
A, B, C, D,… G,… J,…
Интересно, что будет после «Z»? "["? «AA»?
Интересно, что будет после «Z»? "["? «AA»?
Со всем можно смириться, но знак подчёркивания, вместо минуса…
С этого места перестал понимать, что происходит:
u&.v y NB. эквивалентно v_инверсия u v y
:(
Что это все значит???
u&.v y NB. эквивалентно v_инверсия u v y
:(
Что это все значит???
«v_инверсия» — значит глагол, обратный «v». В выражении «+:&.*: » глагол, от которого берется инверсия — это «*:» (т.к. он стоит справа от союза «&.»). А глагол, обратный «*:» — это «%:» (т.е. операция, обратная возведению в квадрат — это взятие квадратного корня). J знает о таких парах обратных друг другу глаголов
Каждый раз, когда выбираю технологии для реализации нового проекта, возникает вопрос: а не попробовать ли какой-то новый язык/технологию? Начинаю анализировать (скажем, для веб): node.js еще сыроват, руби/питон еще в среднем отстают по производительности даже от PHP, писать на c/c++ вижу смысл только для отдельных высоконагруженных модулей, но никак не весь проект.
Cобственно, к чему я веду…
Вот есть язык J, не самый простой для чтения/понимания, с не самым лучшим инструментарием (например, для построения интерфейсов и т.п.), вряд ли очень производительный… Тем не менее, он востребован.
Может мне кто-нибудь описать нишу этого языка? Т.е. в каких случаях J окажется для меня лучшим выбором, а не, скажем, какой-нибудь Lisp/Haskell/Ruby?
Cобственно, к чему я веду…
Вот есть язык J, не самый простой для чтения/понимания, с не самым лучшим инструментарием (например, для построения интерфейсов и т.п.), вряд ли очень производительный… Тем не менее, он востребован.
Может мне кто-нибудь описать нишу этого языка? Т.е. в каких случаях J окажется для меня лучшим выбором, а не, скажем, какой-нибудь Lisp/Haskell/Ruby?
Надо готовить статью точно по этой теме. Всё в нем нормально. Только высокий порог вхождения. Он читаем, читаем поболее других языков. Но к этому прийти можно после нескольких лет работы на нем. Поначалу, пару месяцев, сможете только писать и только с трудом, а читать даже свой код не сможете.
На счет производительности — не правы. Он очень производителен. Даже иногда как некоторая магия воспринимается, как он умеет так относительно быстро работать, не смотря на такую высокоуровневость. Он бывает и тупит, заметно тупит, от этого никуда не деться. Тем не менее, он прекрасно работает с библиотеками, написанными на других языках, поэтому позволяет делать точечные оптимизации узких мест. Т.е. например, в нем можно вызвать функцию из библиотеки, написанной на С, и передать туда массивы, как аргументы. И сделать с ними там уже что хотите. Я работал на высоконагруженных проектах, сделанных на J. Вполне отличный язык в плане скорости создания прототипа, удовлетворительной производительности самой по себе и оптимизации проблемных участков.
Использовал его для датамайнинга. Очень хорош как язык для быстрого создания сложных алгоритмов и обработки больших массивов данных. Т.е. в финансовой сфере, для предсказаний и т.д.
Для ГУИ там тоже есть какие-то библиотеки, но убогие, правда. Ну и действительно, хотя на нем можно решать любые задачи, какие-то неалгоритмические задачи, не требующие какой-то сложной обработки данных — не будут показывать его сильные стороны. Но есть другие языки, поэтому ГУИ удобно писать на других. Да, он также мультипарадигменный. Там можно писать не только в тацитной форме (но она самая вкусная), но и императивно, с телом, ветвлениями и циклами. Также в нем есть некоторая поддержка ООП. Можно писать классы и создавать экземпляры.
Этот язык прекрасен, как вспомогательный язык в работе. Работа с ним напоминает не программирование, а вроде у вас очень мощный калькулятор. Вы быстро можете проверить любую идею, что-то даже распарсить или сгенерировать код для другого языка. Когда на нем пишете, то ощущение, что вы быстро что-то сооружаете одноразовое. Он не заставляет думать и продумывать архитектуру, не заставляет думать, что вы что-то делаете на века. Это в общем — достоинство. У вас меньше страха перед ошибкой именно потому, что всё получается быстро. Такой себе очень сильный математический калькулятор.
Минусы скорее только такие: высокая сложность, не надейтесь научиться ему быстро. Я изучил его за месяц (прочитал книгу и запомнил все глаголы, примеры и т.д.). Еще с месяц писал первое задание, которое придумал. Это всё по вечерам. Но привыкал с год, более менее читать. И дальше тоже развивался. И думаю, еще не достиг идеала понимания этого языка. Хотя со временем он становится понятнее и понятнее.
Эта сложность языка является и причиной другого минуса — мало кадров. Т.е. выбирая его под проект, вы рискуете не найти людей.
На счет производительности — не правы. Он очень производителен. Даже иногда как некоторая магия воспринимается, как он умеет так относительно быстро работать, не смотря на такую высокоуровневость. Он бывает и тупит, заметно тупит, от этого никуда не деться. Тем не менее, он прекрасно работает с библиотеками, написанными на других языках, поэтому позволяет делать точечные оптимизации узких мест. Т.е. например, в нем можно вызвать функцию из библиотеки, написанной на С, и передать туда массивы, как аргументы. И сделать с ними там уже что хотите. Я работал на высоконагруженных проектах, сделанных на J. Вполне отличный язык в плане скорости создания прототипа, удовлетворительной производительности самой по себе и оптимизации проблемных участков.
Использовал его для датамайнинга. Очень хорош как язык для быстрого создания сложных алгоритмов и обработки больших массивов данных. Т.е. в финансовой сфере, для предсказаний и т.д.
Для ГУИ там тоже есть какие-то библиотеки, но убогие, правда. Ну и действительно, хотя на нем можно решать любые задачи, какие-то неалгоритмические задачи, не требующие какой-то сложной обработки данных — не будут показывать его сильные стороны. Но есть другие языки, поэтому ГУИ удобно писать на других. Да, он также мультипарадигменный. Там можно писать не только в тацитной форме (но она самая вкусная), но и императивно, с телом, ветвлениями и циклами. Также в нем есть некоторая поддержка ООП. Можно писать классы и создавать экземпляры.
Этот язык прекрасен, как вспомогательный язык в работе. Работа с ним напоминает не программирование, а вроде у вас очень мощный калькулятор. Вы быстро можете проверить любую идею, что-то даже распарсить или сгенерировать код для другого языка. Когда на нем пишете, то ощущение, что вы быстро что-то сооружаете одноразовое. Он не заставляет думать и продумывать архитектуру, не заставляет думать, что вы что-то делаете на века. Это в общем — достоинство. У вас меньше страха перед ошибкой именно потому, что всё получается быстро. Такой себе очень сильный математический калькулятор.
Минусы скорее только такие: высокая сложность, не надейтесь научиться ему быстро. Я изучил его за месяц (прочитал книгу и запомнил все глаголы, примеры и т.д.). Еще с месяц писал первое задание, которое придумал. Это всё по вечерам. Но привыкал с год, более менее читать. И дальше тоже развивался. И думаю, еще не достиг идеала понимания этого языка. Хотя со временем он становится понятнее и понятнее.
Эта сложность языка является и причиной другого минуса — мало кадров. Т.е. выбирая его под проект, вы рискуете не найти людей.
Sign up to leave a comment.
Язык программирования J. Взгляд любителя. Часть 2. Тацитное программирование