Наверно я плохо объяснил, что хотелось бы видеть на форуме. Неплохо было бы упорядочить уже существующие решения для разных задач. Создать особый раздел, с примерами решений, в который отобрать только самые интересные из них. Таких решений не бывает много, они нестандартные.
Такое понятие, как "красивое" или "элегантное" решение, существует, и я его не выдумал. Такое решение - не означает синтаксически правильно написанный код, оно даже может не содержать в себе кода. Его красота в самой идее/догадке, которая настолько проста и очевидна, что большинство людей её даже не видят. Не видят, например, под давлением авторитета участников обсуждения, которые пишут нечто невообразимо сложное для их понимания, выдавая это за абсолютную истину. Но есть люди, которые мыслят нестандартно и способны искать свой путь, пусть даже если он проходит через запрет. Эти люди - первооткрыватели (своего времени). Кстати, предложить изящное решение может человек, который даже не обременен знанием языка, потому что смотрит на проблему "под другим углом" и может "ляпнуть не подумавши". Да так ляпнуть, что у профи челюсть отвиснет.
Что касается функционала Clickermann и его языка, то он то как раз и позволяет находить нестандартные решения. Заставляет выкручиваться на том что есть под рукой. Попробуйте предложить что нибудь новое, например в JavaScript. Там всё давно найдено, перекопано и уже вытоптано. К тому же по JS написано очень много книг, которые переведены на множество языков. Интернет просто забит информацией по JS. Так что там найти что то новое крайне сложно. Но думаю, что некоторые все-таки находят.)
Попробую объяснить про красивое решение на том же примере -
http://crapware.aidf.org/forum/index.php?topic=4265.msg29080#msg29080Вообще то есть способ написать более быстрый скрипт. Но он не всегда будет работать быстрее, а только при анализе изображений, на которых очень много уникальных цветов. Он всегда будет выполняться за одно и тоже время. В этом его сила и слабость одновременно. Но он обычный, стандартный, даже можно сказать заурядный.
Алгоритм типа классический:
1. проходим циклом по всем пикселям изображения и складываем их цвета в массив;
2. сортируем массив, у нас же теперь есть сортировка!
;
3. теперь, когда все элементы массива упорядочены по цветам (лежат "цвет к цвету"), подсчитываем количество вхождений каждого цвета,
за один проход по массиву.
Такой алгоритм может выиграть по скорости у алгоритма который предложил
dramster, возможно даже в разы, но не всегда. Но в этом подходе ничего нового нет, просто сортировки в КМ раньше небыло.
Dramster же предложил
новый алгоритм, который еще никто не придумал. Его скрипт
самооптимизируется на изображениях с малым количеством уникальных пикселей и очень сильно выигрывает по скорости у всего, что было придумано раньше. Красота самой идеи в том, что проверенные однажды пиксели изображения, исключаются из последующих проверок, перекрашиванием в черный цвет, который был обработан первым. Подобное с массивами проделывали, а тут сам графический буфер как массив.) По моему очень красиво и неожиданно. Как можно было до такого додуматься?!
Всё ведь предельно просто и понятно, а никто не увидел.
Вот такое мое представление о красивом решении в программировании. Побольше бы таких решений. Вот их и предлагаю собрать в одном разделе форума. Это будет для всех полезно и авторам приятно. Доска почета может получиться...