Обновить
18
Максим Мазин@smax

Руководитель проектов YouTrack и Hub

5
Подписчики
Отправить сообщение
Вот лично мне важная статья: ru.wikipedia.org/wiki/JetBrains_MPS Была зачем-то выставлена на удаление. Ну, и про упомянутый Nemerle — более известная история. Мне кажется, что критерии значимости должны быть еще проще и прозрачнее для каждой области. Иначе модераторы прибегают к презумпции виновности: выставляют на удаление и автор вместе с сочувствующими должен искать основания, для того, чтобы статью оставили.
Попаданию в википедию знаний специалистов в узких областях препятствуют модераторы, которые безжалостно выпиливают узкоспециализированные статьи с вердиктом «малозначимость». И, по-моему, модераторы таким образом самоутверждаются, а не следят за качеством.
Ага, я понимаю. Но мой комментарий про то, что написать основную функциональность действительно легко и удобно, а вот довести плагин до продакшен качества тяжело. В отличие от плагинов для Хрома, например, где почему-то это получается легче.

Я еще забыл сказать про addons.mozilla.org. Это же адский ад. Процесс добавления туда новых плагинов и версий через песочницу очень некомфортный.

Исходники моего плагина живут на sourceforge.net.
Мой плагин уже выше упомянули, спасибо, about. Замечу, что написание клиентской части к сервисам artlebedev.ru и typograf.ru заняло действительно мало времени. С чем пришлось попариться, так это с написанием редактора настроек. Кроме того, много проблем было с RichText редакторами — изначально я делал свой плагин для того, чтобы можно было типографить ЖЖ-посты.
Я, как автор упомянутого выше типографского плагина, написал им. В ответ тишина.
Такая история — тоже ок. Интересно ведь, как человек выходит из затруднений, и что для него — затруднение.
Общее «умение программировать» — это хорошо, но оно не помогает, если:
5а. В одном jar-файле изменилось значение строковой константы, а код почему-то продолжает работать по-старому.
5б. Строковый пул одного класса не содержит имени другого класса, хотя мы наверняка знаем, что есть зависимость по использованию константы.
9. Класс в своем блоке статической инициализации регистрирует себя в реестре. Мы «дергаем» класс, а регистрации не происходит.

Другие вопросы тоже выглядят жизненно. Если человек сталкивался с этими особенностями языка Java, то, возможно, он действительно много программировал на Java. Другое дело, что лучше не задавать один из этих вопросов на собеседовании, а спросить, с какой запомнившейся проблемой сталкивался интервьюируемый.
При этом надо понимать, что каждый append увеличивает длину буфера, что в нашем случае приведет к большому числу перевыделений памяти под буффер. Если решается задача, например, рендеринга html страницы, как в jsp, то в качестве представления последовательности символов эффективнее использовать структуры типа ropes, на которые я ниже в комментариях давал ссылку.
Из этого примера не ясно, что надо дальше делать с полученной строкой. Если в дальнейшем нам нужно лишь итерироваться по этой строке, то стек можно и не разворачивать. Или вообще можно использовать Ropes. Кроме того, дополнительный расход памяти на стек O(числа строк в файле), или, по ощущениям, что-то вроде логарифма от числа символов в файле.
Как забыть?
String s = "foo";
for (int i = 0; i < 100500; i++) {
  s += "bar";
}

Скомпилируется в
String s = "foo";
for (int i = 0; i < 100500; i++) {
  s = new StringBuilder().append(s).append("bar").toString();
}

Никакой оптимизации, новый StringBuilder объект создается на каждой итерации, причем памяти потребляется O(N2). Память конечно же вычищается, но время на это затрачивается. Или, может быть, вы что-то «такое» знаете про оптимизатор Java 1.5+?
А откуда берутся тест-планы? Их составляют и модифицируют все те же QA-инженеры. Всем вроде ясно, что априори невозможно составить достаточно полный тест-план, что тест-план эволюционирует вместе с продуктом по мере уточнения требований.

Если тестировщик достаточно трепетно относится к продукту, то он будет сообщать о проблемах не зафиксированных в тест-плане. Так же как и программист будет заботиться о всяких мелочах, даже если их нет в спецификации.
Это да.
Мне не понравилась фраза про каких-то «специалистов», у которых есть «мнение». Без ссылки на конкретных людей подобные фразы выражают либо мнение автора, либо мнение неавторитетного источника, который журналист пытается представить как авторитетный.
Я предпринял попытку съязвить по этому поводу, но сделал это слишком слоупочно. Выше уже были неодобрительные комментарии на этот счет.
Черт, я стормозил.
по мнению специалистов, трудно будет найти коммерческое применение этой технологии...
Это какие «специалисты» имеются в виду?
«Тоже был таким» относится к «супердрочерам».
У статьи есть перевод на русский язык www.maxkir.com/sd/languageWorkbenches.html, выполненный Кириллом Максимовым.
Задание настроек в конфигурационном файле является, по сути, формой программирования. Когда вы используете для конфигурирования специальный формат, типа ini, фактически вы используете простой DSL. Автор статьи предлагает выделить из языка общего назначения некоторое подмножество и использовать его для конфигурирования. Фаулер называет такие подмножества внутренним DSL: www.martinfowler.com/articles/languageWorkbench.html
На двоичный порядок.

Информация

В рейтинге
Не участвует
Откуда
München, Bayern, Германия
Дата рождения
Зарегистрирован
Активность