думаю, что критерии здесь такие же, как и в науке и любой другой инженерии:
1. иметь очень светлую голову. т.е. талант от природы плюс упражнения
2. досконально знать предметную область, всё, что уже "украдено до нас". любой хороший новый алгоритм на 90% состоит из старых идей. к примеру, я могу проследить родословную lzma вплоть до оригинальной статьи 77-го года
даже Ньютон говорил, что он видел далеко только потому, что стоял на плечах гигантов
3. иметь свои собственные идеи (собственно при наличии п. 1 и 2 такие появятся обязательно) и упорно их все проверять. опять же процитирую "гений - это 1% таланта и 99% труда". к примеру, тот же lzma стал лучшим lz77 алгоритмом в мире всего года два назад, после почти 10 лет развития
ну и ещё надо не бояться спорить с авторитетами
самые изящные места в tornado (собственно единственном standalone компрессоре, который я сделал за последние 10 лет) связаны как раз с пересмотром традиций, сложившихся ещё со времён zip/ar002 ("сработанных рабами Рима"
)
Добавлено: Цитата: Скажем, почему NanoZip превосходит FA по сжатию и эффективности, имея "глубоко внутри" всё тот же LZ?
в режиме макс. сжатия он использует CM, так что сравнивать надо с lpaq/ccm