Это невозможно. Учёными давно доказано, что анонимусы не имеют пола, следовательно размножаться способны только почкованием. Простейшие одноклеточные анонимусы вообще только делением размножаются.
А какие результаты должны быть представлены? Насколько я помню, дядя выступил с тезисом об отсутсвиии бинарных массивов в лиспе. Из чего был сделан вывод о полной его непригодности для использования в промышленности. Была предложена задача, традиционно решаемая более низкоуровневыми языками (допускающими манипуляции с указателями), однако лисп проявил себя здесь более чем достойно.
Какие выводы могут быть на столь мелкой, вычислительной задаче? Вы б ещё 3D-игрушку на пыхпыхе писали, и делали бы вывод что пыхпых для хоумпажек не годится.
Ну так что, где там скандальное разоблачение Лиспа? Очень хочется увидеть отчёт и графики. Или повёлся на поводу у придурка, который ссыт и прячется за спинами у толпы безликих анонимусов? ;)
> Этот "придурок" по крайней мере умеет держать себя в руках и не хамит в ответ на хамство ;)
Сомнительное достоинство. Чванливое, самоуверенное невежество какого либо говнюка вроде Ацюуовского - гораздо хуже, чем резкость и высокомерие умницы Ландау.
Вообще, люди неумные чаще тяготеют к подчёркнутой вежливости - так они компенсируют недостаток интеллекта, это просто защитная реакция. Когда его в очередной раз посылают (что неизбежно - чванливого дурака нельзя не послать) он начинает всем окружающим тыкать свою вежливость и "невозмутимость" как аргумент в пользу своей правоты. Презираю таких уродов. Нет ничего лучше абсолютной честности и открытости. Если бы все всегда говорили то, что думают, было бы лучше.
>> Сомнительное достоинство. Чванливое, самоуверенное невежество какого либо говнюка вроде Ацюуовского - гораздо хуже, чем резкость и высокомерие умницы Ландау.
А что, Ацюковский все еще ставит опыты Майкельсона-Морли? Или его уже унесло эфирным ветром?
>Этот "придурок" по крайней мере умеет держать себя в руках и не хамит в ответ на хамство ;)
Вообще интересно было бы рассмотреть мотивацию данного организма - зачем он вообще это все завел. Ему так хочется доказать, что лисп гавно и он так напряженно над этим работает, при чем не сравнительным анализом того, что он знает, а сравнением того, что он знает с тем, чего он не понимает. Си лисперы знают все - и выбрали лисп сознательно. Этот организм отвергает его бессознательно - (если увлечся Фрейдизмом - подсознательно:)) - из чего проистекает, что надо рассмотреть, что ему сниться и какое было детство:))) - но тот факт, что он убил столько сил, чтобы доказать, что то что он не знает ему не нужно - говорит кое-что о мотивации. Им движет страх - он видит как мир меняется, а новые школьники знают хаскель, тайп инференс и много других страшных слов, и ему позарез надо доказать, что он еще жив и что то что он осилить не может - вообще никому не надо. За снобизмом и вежливостью прячется маленький ребенок, которого (возвращаясь к Фрейду) в детстве не уважали, если он чего-то не знал и у него выработалась подсознательная необходимость принизить значение знаний, которыми обладают другие с целью удовлетворения комплекса.
> Чванливое, самоуверенное невежество какого либо говнюка вроде Ацюуовского - гораздо хуже, чем резкость и высокомерие умницы Ландау.
Это пример ложной альтернативы, анонимный брат (безотносительно личных качеств Ландау).
> Нет ничего лучше абсолютной честности и открытости. Если бы все всегда говорили то, что думают, было бы лучше.
"Движущиеся части в трущейся паре требуется смазывать, чтобы избежать
износа. Уважение и формальная вежливость являются маской, которую носят люди, притирающиеся друг к другу. Часто люди молодые, не странствовавшие, наивные, простые натуры, склонны отвергать эти формальности как "пустые", "бессмысленные", даже "бесчестные" - и пренебрегать ими. Вне зависимости от того, насколько "чисты" их мотивы, они всегда бросают песок в машину, которая и так работает не слишком здорово." -- Р.Хайнлайн.
Это не огненными словами на каменных скрижалях написано. Под уважением и формальной вежливостью скоро заведётся равнодушие и трусость. Поэтому иногда встряска просто необходима :) К тому же, у молодых из цитаты есть свои взгляды на устройство машины.
Вежливость, как и культура речи - продукт воспитания. А Ландау воспитания явно не хватало, вот он и вел себя как свинья, даже в отношении близких людей.
> подсознательная необходимость принизить значение знаний, которыми
> обладают другие с целью удовлетворения комплекса.
Для человека который владеет парой галер джавакодеров ваши тирады звучат несколько ханжески :) Чего же это вы LISP то не используете масово в каждом проекте :) ?
А полезность лиспа в качестве языка для образования никто и не ставит под сомнение - в образовательных целях чего только не используют. собственно даже ярлык есть "академический".
Огромное спасибо камраду tailgunner за инициацию топика. Приношу извинения всем зрителям за опоздание - мой режим несколько не соответствует общему. С другой стороны, публика уже порядочно разогрета и достигла нужной кондиции. :) Итак.
Методология тестирования. Тестирование проводилось на объёмах данных 10, 20, 40, 80, 160 и 320 мегабайт (результаты на графиках интерполированы). Платформа Linux 2.6.27, Pentium IV 1.8 GHz (x86/32). Перед каждым запуском производился сброс кешей (echo 3 > /proc/sys/vm/drop_caches). Оценка аллокации динамической памяти производилась при помощи valgrind в случае С и вызова (room) в случае LISP. Время учитывалось в смысле elapsed time (user+system). Методология приводится, дабы любой желающий скептик мог провести тестирование самостоятельно.
> Для человека который владеет парой галер джавакодеров ваши тирады звучат несколько ханжески :)
o_0 ого! Мима:) Я плохой менеджер - не умею заставлять людей работать. Какое-то знаетели внутреннее убеждение, что они должны сами. Из этого проистекает недостаток - я лучше сам сделаю чем людей заствлаю:)
>Чего же это вы LISP то не используете масово в каждом проекте :) ?
Я уже приводил недостатки лиспа. Писать можно на любом языке - популярность их часто обусловлена совсем не техническими характеристиками. Следствие из популярности - развитость платформы. Например топичная скала реализована под JVM с интеграцией в жавой. Не самая лучшая vm - но она популярна. Одно дело быть в мире с окружающим миром понимая, что он гавно, другое дело утверждать что гавно - это правильно. В этом отличие подходов. На нашей галере мы на жабе пишем несколько отлично от общепринятого - приходящие гребцы удивлены. К стати у нас не галера - проектов очень мало , но большие и длинные, людей по пальцам. Сейчас активно занимаюсь скалой как альтернативой жабе - но до 2.7.2 у нее был плохой интерфейсинг параметрического полиморфизма в жабу - потому одно начинание пришлось засуспендить. Но дайте время.
>А полезность лиспа в качестве языка для образования никто и не ставит под сомнение - в образовательных целях чего только не используют
Здесь не были показаны лиспоспецифичные проблемы. Тут был тест имеющий одинаковые свойства для практически для любого отличного от С языка - потому наезд на LISP в этом смысле a) необоснованный b) дилетантский - потому я записался в защитники лиспа.
Много есть языков хороших и разных в данном случае на первом месте по интересу у меня скала, на втором эрланг (если скала не сможет его заменить), вялотекуще интересны хаскель и окамл/F# - но это без практического применения.
В контексте задачи лисп ничем не хуже питона или руби или жабы - это уж кто чего предпочитает. Просто лисп менее распространен. Это не значит, что он плохой.
Стоит заменить постановку задачи дополнив ее тем, что статистические формулы должны задаваться во внешнем файле пользователем (а не девелопером) - и смасштабоировать ее до большого проекта - вспомнить про время разработки, объем проекта и т.д. - как Си пролетит как фанера буквально перед всем.
Ну а приводить в качестве недостатка более высокий уровень программистов это...эээ.. именно для что аргумент для галеры - где умные не нужны - нужны дешевые, которых можно продать задорого на развес.
1. по-моему, до варианта den73 прозвучал более лучший вариант в другом топике
2. выложи архив с исходниками и Makefile. Чтобы по make lisp собирало лисповый вариант, по make c -- сишный, а по make test рисовало вот те красивые графики по патентованой методологии. "Чтобы каждый мог протестировать самостоятельно на своей машине" (тут какой-то make myconfig желателен, чтобы информацию о машине собирал, хотя бы cat /proc/cpuinfo / uname -a)
Даже 1.8, если диапазон для integer у summa задать. В сишной программе тип жёстко задан (uint64_t), в лиспе тоже можно не bignum-арифметику использовать.
Я готов Вам поверить. Но абсолютные числа, без сравнения с числами для варианта на Си, смысла не имеют.
Возможно, Вы использовали другой вариант программы; напутали с коэффициентами; не сбрасывали кэш. Хотелось бы также взглянуть на загрузку ядер. Вряд ли Лисп самостоятельно, через libastral.so распараллеливает вычисления на ядра, но тем не менее.
Призываю Вас разобраться в этом. Мне самому интересны объективные данные, я вовсе не заинтересован в подтасовке, поэтому и привожу исходники и методологию, доступную для каждого.
> o_0 ого! Мима:) Я плохой менеджер - не умею заставлять людей работать.
Так я же не говорю что вы хороший надсмоторщик - я говорю что "владеет галерой" ;) Может у вас все добровольно гребут, без плеток :)
> Тут был тест имеющий одинаковые свойства для практически для любого.
> отличного от С языка - потому наезд на LISP в этом смысле a)
> необоснованный b) дилетантский - потому я записался в защитники
> лиспа.
Тут как всегда прицепились к первому слову, при чем сам "необоснованый" наезд был вызван многочисленныеми заявлениями spawn of lugovskoy о том что лисп заруливает ВСЕ в том числе С совсем и везде. А где проигрывает то пренебрежимо мало. По поводу лиспа не получается вменяемой дискусси не от необоснованых наездов а от того что большая часть лисперов в сети ведут себя как те самые приснопамятные задроты-неудачники с больной головой, гиганским чувством собственной важности и ненавистью к пользователям остальных языков - хрестоматийные суровые неадекваты.
>В контексте задачи лисп ничем не хуже питона или руби или жабы - это
>уж кто чего предпочитает. Просто лисп менее распространен. Это не
>значит, что он плохой.
Верно, не значит.
Но как бы на уме крутится что чего же он "такой ласковый да пригожий до сих пор всех не убил и один не остался"(C)Жихарь. Судя по тому что я читал про лисп такая задача ставилась в явной форме, более того в одной из ссылок с ЛОР один из титанов явно говорит что в соотв годы (по моему средина-начала 80-х) кипели флеймы буть здоров на эту тему. Агрессивные наезды лисперов на все и вся это можно сказать свойство языка :)
> Стоит заменить постановку задачи дополнив ее тем, что статистические
> формулы должны задаваться во внешнем файле пользователем (а не
> девелопером)
Хм, извращенное решение - tcc :)
> - и смасштабоировать ее до большого проекта - вспомнить
> про время разработки, объем проекта и т.д. - как Си пролетит как
> фанера буквально перед всем
А я кстати и не приверженец концепции "все должно быть на одном языке так как этот удобнее(тм)", это все к плюсистам и отмороженым явистам (это я не про вас, надеюсь). Cи вполне себе имеет свою значительную нишу, но написание standalone веб приложений и опять же stad-alone бизнес логики к ним не относитсмя. В составе гибрида - да. Например python+C. Или даже php+C :)
К тому-же С решает такие проблемы вызовом внешних библиотек, это принцип такой. Писать парсинг формул каждый раз самостоятельно это в общем бред. Если нет библиотек - пролетает, да. Но вот то что нету КОММЕРЧЕСКИХ библиотек линкуемых всюду для парсинга формул я просто не поверю. Уж больно популярная задача.
> Ну а приводить в качестве недостатка более высокий уровень
> программистов это...эээ.. именно для что аргумент для галеры - где
> умные не нужны - нужны дешевые, которых можно продать задорого на
Пока я вижу не градацию умный-глупый в этом споре. Я пока вижу градацию "Сурово-безумный неадекват" vs "звезд с неба не хватает". Все адекватные знатоки лиспов на проверку оказываются любителями и юзателями вместо лиспоподобных питона(ну или целой кучи других языков) :) И вы похоже точно также относитесь к этой подгруппе :)
PS
Флейм: Мое мнение что Лисп это такой ассемблер(для машкода специфической VM/железа). И кстати культурную роль он играет такую
же, как ассемблер или OS/2 в 90-е - провоцирует атские флеймы где всех "заруливают" писатели на ассемблере и боги те кто делает это под OS/2 :)
И как любой ассемблер выглядит чертовски близко к tty-мусору и прочему брейнфаку ;)
Правильное. Там специально написано что "специфической VM" - в данном случае это lisp-байткод, если вы не поняли о чем я. Аппаратные реализации существовали.
>о том что лисп заруливает ВСЕ в том числе С совсем и везде.
Непоказательный тест это заявление врядли опровергнет :)
>Писать парсинг формул каждый раз самостоятельно это в общем бред.
Дело не в том что писать самостоятельно - просто для чистоты экперимента придется так делать, а иначе то что другой уже наелся кактусов и предоставил что-то остальным не показывает что кактусы стали бананами.
>И вы похоже точно также относитесь к этой подгруппе :)
Я не знаток лиспа - выбор стороны в споре я объяснил ранее.
> Я готов Вам поверить. Но абсолютные числа, без сравнения с числами
> для варианта на Си, смысла не имеют.
C:
Command being timed: "./arr-c"
User time (seconds): 0.53
System time (seconds): 0.43
Percent of CPU this job got: 97%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.99
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 76928
Voluntary context switches: 1
Involuntary context switches: 76
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Т.е. порядка 1-й секунды. Лисп мне, кстати, до 1.6 удалось разогнать
;)
> Возможно, Вы использовали другой вариант программы;
Нет.
> напутали с коэффициентами;
Нет.
> не сбрасывали кэш.
Да это пофиг. 300мб на моей машине в дисковый кэш полностью входит, а
читают обе программы эти данные одинаково, через один sys_read().
> Хотелось бы также взглянуть на загрузку ядер. Вряд ли Лисп
> самостоятельно, через libastral.so распараллеливает вычисления на
> ядра, но тем не менее.
Обе программы на одном ядре выполняются.
> Призываю Вас разобраться в этом. Мне самому интересны объективные
> данные, я вовсе не заинтересован в подтасовке, поэтому и привожу
> исходники и методологию, доступную для каждого.
Вот сишное сложение массива:
4006b8: 0f b6 04 13 movzbl (%rbx,%rdx,1),%eax
4006bc: 48 83 c2 01 add $0x1,%rdx
4006c0: 48 01 c1 add %rax,%rcx
4006c3: 48 81 fa 00 00 c0 12 cmp $0x12c00000,%rdx
4006ca: 75 ec jne 4006b8 <main+0x68>
Вот лисповое:
; 850: L2: 488BC1 MOV RAX, RCX
; 853: 48C1F803 SAR RAX, 3
; 857: 480FB6440201 MOVZX RAX, BYTE PTR [RDX+RAX+1]
; 85D: 48C1E003 SHL RAX, 3
; 861: 4801C6 ADD RSI, RAX
; 864: 4883C108 ADD RCX, 8
; 868: L3: 4839D9 CMP RCX, RBX
; 86B: 7CE3 JL L2
Видно, что помимо самого сложения и обслуживания цикла есть две
лишних операции. В терминах ir2 sbcl они зовутся MOVE-TO-WORD/FIXNUM
и MOVE-FROM-WORD/FIXNUM. Возникают лишние операции от того, что в
лиспе нельзя напрямую задать тип "число в машинном виде", поэтому
компилятор мучается с вручную объявленным типом fixnum, которому
нужно boxing/unboxing делать. Если решить этот момент (сделать
нормальное выведение типа для функции сложения элементов массива
известного типа), то исчезнет 4-я команда.
Ещё реализация функции map для вектор оперирует с итератором
внутреннего типа index, который на самом деле fixnum. Если
оптимизировать этот момент, то исчезнут первые две команды.
Ещё мне не очень нравится в обоих вариантах использование movzx,
можно использовать add r8, m8 и adc rXX, 0. Но тут нужно сравнить оба
варианта, т.к. на интеловской архитектуре команды очень странно
работают.
А по вашему странному графику могу сказать, что в измерении есть
ошибка. Характер графика должен быть, как на графике с потреблением
памяти.