aruslan: (Default)
[personal profile] aruslan
Java и традиционные языки: производительность программиста

Результаты интересные, конечно.
Только не Java vs Pascal и уж тем более не Java vs Python и Java vs Objective Caml.

Очевидно, что разницы между собственно языками в данной задаче скорее нет, чем есть.
Зато более чем видна разница между программистами.

Пусть задача непоказательная изначально, пусть в программах больше половины - вынужденный код.
И тем не менее - есть и стандартные функционально-/декларативно- рекурсивные решения, и зубодробильные императивные драконы с - ух, как! - попытками оптимизации.

Подвиг 1984-1987 годов Tom DeMarco with Tim Lister ("Software Development: State of the Art vs State of the Practice") повторить не удалось, но разлёт - налицо.
Сразу вспоминается [livejournal.com profile] vitaly_b и Движок За Миллион (tm).

Страшно.

Date: May. 8th, 2006 16:49 (UTC)
From: [identity profile] justy-tylor.livejournal.com
Помнится, пару лет назад надо мне было поиск по маске в нашем редакторе прикрутить.

Обычный алгоритм был откинут из-за дороговизны *, но в сознании было что-то про оптимизацию регэкспов через битовый след, так что было сделано именно так, не более тридцати двух *, но без повышения вычислительной сложности. Около 30 грязных строк на C++ (на экран помещалось всё), часа 3 с отладкой, наверное... Вот только что забавно - алгоритм писался на C++, а в голове была какая-то страшная смесь функциональщины и ассемблера.

Date: May. 8th, 2006 17:23 (UTC)
From: [identity profile] bandures.livejournal.com
Глупое сравнение. Java для маленьких задач неудобен, это и так известно.

Индусы, блин.

Date: May. 8th, 2006 17:25 (UTC)
From: [identity profile] http://users.livejournal.com/_winnie/
bool match(const char *word, char const *pattern)
{
    if (!*pattern) return !*word;
    if (*word == *pattern || *pattern == '?') return match(word+1, pattern+1);
    if (*pattern != '*') return false;
    while (*word)  if (match(word++, pattern+1)) return true;
    return match(word, pattern+1);
}

Date: May. 9th, 2006 11:48 (UTC)
From: [identity profile] ex-alexeych.livejournal.com
Хм. Некий студен прифигевает от того как круто он написал некий треш всего в n строк? И в чём собстно поинт?

Не сочтите меня снобом и занудой, но попробую сказануть своё мнение.

Во-первых, я дико несогласен с приведённой в начале цитатой 'неизвестного'. А также возгласами аля про пушки и воробьёв. Поинт в том что OO-языки эффективны толко при активно переиспользовании кода и расширяемой в смысле OO и OCP архитектуры. Иначе, это как дрова бензопилой колоть. А построить аппликацию в таком 'правильном' ракурсе - это вам не кубики катать, этому учиться надо.

Во-вторых, в первом случае я вижу вполне себе нормально написанный класс решающий некоторую задачу, которой несколькими действиями можно абстрагировать от источника данных и сделать переиспользуемым. К тому же в безопасном рантайме типа жабы, я не имею труднопредсказуемых побочных эффетов. Во втором же, я вижу какой-то совершенно нечитаемый треш, и кроме как для посчитать количество строчек которое на него затрачено... он мало для чего подходит. Это как в анекдоте про машинистку: могу и 1000 занков в минуту, но такая лажа получается.

P.S.
Понравился вариант пушистого. Стильно и мощно ;)

Profile

aruslan: (Default)
aruslan

January 2014

S M T W T F S
   1234
56789 1011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 11th, 2026 01:54
Powered by Dreamwidth Studios