LINUX.ORG.RU
ФорумTalks

Серьезная разработка на лисп


1

2

Возьмем, скажем, обычного программиста на C++/java и лавсана. Скажем, некий заказчик хочет сделать прожект и для этого ищет разработчика. Обычный программист не может предложить ничего нового и инновационного, и тут вбегает лавсан и кричит: «Могу сделать на новейшем языке Common© Lisp© за сжатые сроки, с макросами и DSLями под конкретную задачу». Мы все знаем, как лавсан любит аббревиатуру DSL. Для каждой задачи он сразу кинется разрабатывать свой DSL со своим синтаксисом и даже без скобок. Прожект сдан, все довольны.

Но тут случается, что в прожект закралась ошибка или его нужно улучшить/дополнить. Открывают сырцы, а там лавсанин деэсэль. Никто не может понять, что за тарабарщина из макросов там поналеплена. Тем более, что и названия для своих DSL лавсан выбирает соответствующие. Например, hui - от средневерхнедревнекитайского «короткий». В итоге, вместо того, чтобы штатный программист поправил пару строк, как в случае написания прожекта c++/java кодером, зовут опять лавсана, который входит под фанфары весь в белом и молча всё исправляет.

В итоге лавсан становится богат и пишет саксесс стори на ЛОРе, а бедный заказчик жалеет, что с ним связался

Вопрос: вы всё ещё верите этому пакостнику?

Перемещено Pinkbyte из development



Последнее исправление: niemand (всего исправлений: 2)
Ответ на: комментарий от hateyoufeel

И в каких же задачах он (питон интерпретатор) «чудовищно» тормозит? В обработке матриц 50.000 vs 50.000? Что-то похоже на фантазии. Лично мой код на питоне работает в 1.5 раза медленее java кода, это вполне годно, а сетевые приложения на питоне (Tornado) работают быстрее сетевых на java(tomcat, jetty), за исключением vert.x, его перегнать не получится. При этом жрёт раз в 5 меньше памяти, чем java.

menangen ★★★★★
()
Ответ на: комментарий от menangen

код на питоне работает в 1.5 раза медленее java кода

Жаба не тормозит - это факт, многократно доказанный в срачах на ЛОРе.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Да на лоре здесь много голословных утверждений, при этом никаких объективных разборов полётов ни разу не проводилось.

menangen ★★★★★
()
Ответ на: комментарий от menangen

никаких объективных разборов полётов ни разу не проводилось.

Tommy погиб.

По ссылке как минимум одно крайне объективное доказательство того факта, что жаба не тормозит и тормозить не может.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Автор русского текста - имбецил! В статье по второй ссылке написано что Tommy так себя повел из-за смерти одного из чипов.

menangen ★★★★★
()
Ответ на: комментарий от menangen

Ну так и что? Жаба же всё равно не тормозит.

А вообще прости. Я мог бы рассказать тебе о том, что все объекты в пистоне ссылочные, что крайне отрицательно сказывается на скорости доступа к данным и их локальности и увеличивает процент промахов мимо кэша, и для нормальной работы с большим количеством данных требуется лепить костыли на C типа того же numpy, но ты это и сам должен знать лучше меня. Про все прелести GIL, кстати, тоже.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от menangen

Ok, для таких критичных есть Cython.

Отличная шутка. На кой хрен нужен этот пистон, если в результате всё равно всё сводится к ручному управлению памятью и сишным костылям? Бесполезный язык.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Я так и не услышал, где тормозит питон. Пример твоей задачи или проекта, где были аццкие тормоза? Cython не тормозит - тут ты начинаешь истерить о си и геморе, зато всё быстро как ты и хотел. Пиши на питон, если будет тормозить - позови меня, я тебе сделаю без тормозов.

menangen ★★★★★
()

В итоге, вместо того, чтобы штатный программист поправил пару строк, как в случае написания прожекта c++/java кодером

Тут 2 варианта - либо штатный программист долбодятел(его фэйл), либо он не знает LISP-а и когда его принимали на работу этого не требовали(тогда это фэйл конторы, которая не обучила штатного программиста нужному им языку).

Случай с преднамеренной обфускацией кода мы тут, ясен пень, не рассматриваем. Или всё же рассматриваем? Если да - тогда и на C/C++/Java/whatever язык можно такой трешак понаписать - ни один гуру не разберет

Приведу пример из жизни: мне довелось видеть код, где было >200 функций с названиями super_puper_1, super_puper_2, и т.д. Вплоть до super_puper_237 кажется. И все они дружненько вызывали кого надо, всё было чотко. Был только один человек, который мог разобраться в этом трешаке - автор программы. И знаешь на чём это всё было написано? Это были VB-макросы на сраном быдло MS Access.

Так что LISP и lovesan тут совершенно не при чём )))

Pinkbyte ★★★★★
()
Ответ на: комментарий от hateyoufeel

Я мог бы рассказать тебе о том, что все объекты в пистоне ссылочные

Месье не слышал о PyPy и Jython? У питона есть разные реализации. Сейчас пилят llvm компилятор, будет ещё круче.

menangen ★★★★★
()
Ответ на: комментарий от menangen

Я так и не услышал, где тормозит питон. Пример твоей задачи или проекта, где были аццкие тормоза?

http://benchmarksgame.alioth.debian.org/u64q/python.php

Начнём отсюда.

Кстати, я так и не понял как Cython должен помочь в борьбе с промахами мимо кэша.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от menangen

Месье

Ты слово «минет» небось с мягким знаком пишешь?

не слышал о PyPy и Jython? У питона есть разные реализации.

О совместимости этих реализаций ты слышал?

hateyoufeel ★★★★★
()
Ответ на: комментарий от niemand

Я думал, что речь за Шимона

Шимон, вроде, Peres. А тут Perec.

monk ★★★★★
()
Ответ на: комментарий от hateyoufeel

И что мы отсюда будем начинать? Покажи нам свой код на питоне, и замеры производительности его, чтобы мы увидели, что он действительно тормозит.

menangen ★★★★★
()
Ответ на: комментарий от hateyoufeel

Какие проблемы у тебя с этими реализациями? Ты хоть пробовал их?

menangen ★★★★★
()
Ответ на: комментарий от hateyoufeel

Ты их считал что-ли, эти промахи кэша? Смешно даже. Промахи есть у любого софта, кэши по 8 Мб в процах, в серверных 20-30 Мб, аргумент против питона ни о чём. К промахам кэша можно свести даже ассемблер, рассчитано на нубов.

menangen ★★★★★
()

Если это случится, мы будем аплодировать лавсанчику. В душе каждый мошенник.

Virtuos86 ★★★★★
()
Ответ на: комментарий от menangen

И что мы отсюда будем начинать?

Начни с исходников n-body на питоне. Напиши так, чтобы было хотя бы всего в пару раз медленнее реализации на жабе.

hateyoufeel ★★★★★
()
Ответ на: комментарий от menangen

Ты их считал что-ли, эти промахи кэша?

Да.

Промахи есть у любого софта

Вопрос в процентах промахов. Если это 3-5%, то всё круто. 15-20% - плохо, но терпимо. Питон здесь весьма просасывает. В основном, правда, из-за убогого GC, основанного на тупом подсчёте ссылок.

К промахам кэша можно свести даже ассемблер, рассчитано на нубов.

Ты баклажан, ты в курсе?

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Т.е. примеров твоего тормозного питон кода, который ты написал, мы здесь не увидим? Кто бы сомневался.

menangen ★★★★★
()
Ответ на: комментарий от hateyoufeel

А ты думал, что фигнёй о кэше ты кого-то напугаешь? Первокурсник детектед.

menangen ★★★★★
()
Ответ на: комментарий от hateyoufeel

Только-только разгребся с навалившимся и добрался до запланированных вещей. Фикс ушел в главное дерево, наслаждайся

Pinkbyte ★★★★★
()
Ответ на: комментарий от hateyoufeel

Если это 3-5%, то всё круто. 15-20% - плохо, но терпимо. Питон здесь весьма просасывает. В основном, правда, из-за убогого GC

Конкретные факты и методику подсчета - в студию.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.