powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Почему мы используем Common Lisp в автоматизации бизнеса
25 сообщений из 94, страница 2 из 4
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474493
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenчто такое "процедура"? Она находится внутри "ПО" или снаружи?
Та, что пишется на PSQL, по сути запрос, завернутый в обертку на стороне сервера (FB в данном случае).

П.С. Не завидую я тем, кто поддерживает кривое архитектурное решение...
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474496
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нелояльный, раньше была в основном на сервере БД. Теперь новую в основном пишем на лиспе, а хранимки используем там, где критична скорость.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474504
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenArm79, вот, SQL. Хорошо. Вы alter table делаете или нет?

Конечно же нет :-). SSDT наше все. Я делаю правки в проекте, а накат на сервер - другая история
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474516
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, на вопрос вы, однако, не ответили. Являются ли процедура частью ПО?

Само то, что в FB можно написать хранимую процедуру без перезапуска сервера, как вы говорите - это проявление родства между SQL серверами и лиспом. alter table = defclass, alter procedure = defun. Потому я в начале темы и привёл аналогию между defclass и alter table (хотя это скорее будет create or alter table). А можно ли сделать alter procedure в программе на C# или Delphi? Вообще говоря, нет.

Если сравнивать FB и лисп, то возможности по отладке, управлению транзакциями, мониторингу, межпроцессному взаимодействию, чтению-записи файлов, хранению контекста, диалогу с пользователем в лиспе несравнимо лучше. Мы же не от хорошей жизни сделали третье звено. Замучались отлаживать хранимки. Возникает в хранимке где-нибудь исключение, а место ошибки не показывает. Ищи потом полдня.

Ну и PSQL - язык, конечно, убогий до слёз. Длина идентификатора недостаточная, пространств имён нет, структур нет. Ничего нет.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474520
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79, ну так вы структуру таблиц меняете?
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474529
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenArm79, ну так вы структуру таблиц меняете?

Sql Server Data Tool. В нем актуальное описание таблицы. Я его правлю, как мне угодно. При накате БД актуализируется со своим описанием. С любого промежуточного состояния, включая начальное - пустое.

Иными словами я руками на сервер не лезу с Alter Table, а пользуюсь проверенным инструментом.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474537
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79, а SSDТ внутри себя разве не alter table вызывает, когда вы правите описание таблицы?
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474538
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenЯвляются ли процедура частью ПО?
Это часть БД. Такая часть, которая годами не меняется, ибо простота - залог успеха, долговечности и универсальности. Не нужно менять таблицы, не нужно менять код, не нужно ничего перезапускать: все делается на лету и доступно мгновенно всем клиентам.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474542
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenНу и PSQL - язык, конечно, убогий до слёз. Длина идентификатора недостаточная, пространств имён нет, структур нет. Ничего нет.
Я так понимаю, что это ваше детище и вы отстаиваете свое решение, как единственное верное даже несмотря на простейшие просчеты в архитектуре?
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474553
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenArm79, а SSDТ внутри себя разве не alter table вызывает, когда вы правите описание таблицы?

Уважаемый, к чему вы ведете речь? Что структура БД может меняться? Я с вами не спорю. Так же как и используемые в работе классы и так далее. Ничто в мире не статично.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474594
Нелояльный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenЗамучались отлаживать хранимки. Возникает в хранимке где-нибудь исключение, а место ошибки не показывает. Ищи потом полдня.И отладчик в IBE не показывает?buddenНу и PSQL - язык, конечно, убогий до слёз. Длина идентификатора недостаточная, пространств имён нет, структур нет. Ничего нет.Такое бывает после знакомства с 1С или подобными системами. Но это другой подход. Для структур есть и соответствующие БД, такие как Cache. Этот "убогий до слёз" превосходно работает с реляционными БД. Мне не доводилось видеть хороших решений при скрещивании этих двух парадигм.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474698
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, наконец-то началось настоящее рубилово. Извините, мне надо поработать. Чуть попозже отвечу
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474753
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79, вы хотите знать куда я веду или для чего я использую лисп?
Что структура БД может меняться? Я с вами не спорю.

Мне сложно вас понять. Как не спорите, а это что вы раньше писали?
Чисто теоретически оно вам и не нужно ничего про неё знать, так как нет задач, требующих изменение БД на бою.

Что значит нет задач? Мы уже пришли к тому, что не только я, но и вы сначала меняете базу отладочную и потом накатываете изменения на промышленную. Значит, промышленная БД тоже меняется. И меняется она, я надеюсь, вы признаете, с помощью alter table, хотя ваш инструмент позволяет вам об этом не задумываться. Согласны или нет?
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474771
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, я не считаю свою архитектуру единственно правильной, но она одна из правильных. У нас реализована более-менее обычная трёхзвенка, правда, без ORM и на экзотическом языке сервера приложений.

Вы же в своём проекте фактически реализовали вторую реляционную структуру поверх уже существующей реляционной структуры СУБД. Я такое тоже делал, когда это было нужно (для ввода опросных листов переменной структуры и для ввода данных экспериментов переменной структуры). Такое решение имеет свои плюсы и минусы и у него есть своя область применения.

Кроме того, когда вы говорите, что вам не нужно менять код, из этого можно сделать только вывод о том, что ваше приложение очень простое и в нём нет изменчивой бизнес-логики. Из этого опять же не следует, что таковы все приложения.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474779
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
budden,

1) Я в рубилове не участвую. Я исхожу из посылки, что если у вас рабочее решение, то оно хотя бы в силу этого вполне обосновано. У меня нет желания кого-либо критиковать, особенно если учесть тот факт, что для критики нужно знать поставленные цели и архитектуру прикладного решения. Ни того, ни другого я не знаю.

2) Вы вырываете слова из контекста. Имелось ввиду, что я не вижу необходимости в изменениях БД при использовании типовых решений, что характерно для торговых компаний. Как правило, бизнес-процессы у них схожи до идентичности, и потребности покрываются покупными тиражными решениями, что гораздо дешевле, чем нанимать штат разработчиков.

3) Безусловно, я признаю, что промышленная БД может и будет меняться. Но я плохой образец для проведения аналогий. Несмотря на то, что я работаю не программистской конторе, выполняемые мной работы не имеют типовых решений. И я вынужден проектировать и реализовывать уникальные в своем роде решения. Но если есть возможность, я стараюсь по максимуму использовать промышленные наработки. Ибо велосипед остается велосипедом. Если участь, что организация, где я работаю, имеет интересы в огромном количестве областей, то это неудивительно. Тут и штат программистов немаленький. Но даже у нас тенденция на максимальное использование аутсорсеров.

Единственное, что я у вас хотел выяснить за все эти страницы осуждения, так это тип задач, для которых вы применяете Lisp. Это специфичный и редкий инструмент. И мне реально непонятно, зачем его использовать, если у вас уже есть Delphi, и его возможностей с лихвой хватает для почти любой прикладной задачи. Говорю, как бывший программист Delphi. Просто скажите, с чем Delphi не справилось, но с помощью Lisp вы оказались на коне.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474788
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenКроме того, когда вы говорите, что вам не нужно менять код, из этого можно сделать только вывод о том, что ваше приложение очень простое и в нём нет изменчивой бизнес-логики.
Оно как раз весьма не простое и перекомпиляция и изменение структуры бд может принести кучу сюрпризов. Я и среагировал на тот пример, когда нужно добавить возраст ограничения к книге. Один из последних примеров: понадобилось написать выгружалку данных в госреестр, а для исключения дублирования добавить признак выгрузки. Для чего был добавлен параметр и выгружалка просто проставляла этот признак. На существующее ПО это никак не повлияло.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474796
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нелояльный, я опробовал на практике достаточно много разных подходовв. Моя прошлая система на MS SQL (таблиц около 100, жила и развивалась лет 8 до прекращения бизнеса) была именно такой: вся бизнес-логика на сервере. Я был противником трёхзвенки и кричал на весь мир "вот как надо программировать, никаких трёхзвенок, sql рулит". Я и сейчас высоко ценю SQL - гениальная вещь.

Попытался и в этом проекте подобное применить. Но, во первых, текущая задача покрупнее. Во-вторых, Firebird оказался настолько некомфортным для такого стиля, что терпения не хватило.

Представьте себе такой мысленный эксперимент. Есть у вас ваш Firebird, но когда на сервере FB происходит Exception, появляется окошко "just in time debugging", можно запустить IBE и посмотреть место, где исключение возникло, глянуть переменные, вычислить что-то. Согласитесь, вот так надо бы работать в XXI веке. В FB (во всяком случае по состоянию на 2.5) такого нет, в MS SQL 2000, с которым я последним работал, этого не было. Думаю, и сейчас ещё такого там нет. Хотя если кто положит такую инфу в тапок и кинет в меня - начну копить на MS SQL :)

Вот ради такого удобства мы и перешли на трёхзвенку и теперь такое удобство у нас это есть.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474816
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79, ну так и торговля бывает разная. Бывают клиенты со своими требованиями по оформлению документов, бывают хитрые управленческие отчёты, бывает просто очень большой объём данных, при котором производительность 1С не удовлетворяет. Бывают системы премирования менеджеров. Бывают филиалы. Бывает закачка документов из других систем. Бывают системы ранжирования товара. Всё это уникально для каждой организации и никак не покрывается стандартными конфигурациями 1С. И есть меняющееся законодательство, может быть, вы с этим не сталкивались. Если это 1С, то есть какая-то поддержка от вендора, а если это самописная система, то нужно успевать тянуть весь воз уже написанного кода за сменой законов. Мне казалось, это очевидно, поэтому я особо и не отвечал на это :)

По Дельфи - да справилось бы и Дельфи. Вопрос в объёме кода и сложности самого приложения. Чем сложнее приложение, тем больше преимущества лиспа за счёт возможности переопределять функцию на лету. Эти преимущества сказываются в уменьшении времени компиляции и в уменьшении времени на воссоздание ситуации, являющейся предметом изучения. Если ваши приложения компилируются за одну-две секунды, то они, видимо, довольно простые.

По сравнению с Дельфи - лисп надёжнее, т.к. он по работе с объектами больше похож на Java/C#, в нём сложнее промазать мимо памяти, хотя тоже можно. Намного сложнее добиться утечки памяти, или там Access Violation-ов. Соответственно, меньше возни с деструкторами. Это ведь само по себе, наверное, многих заставило перейти с Дельфи на C#. Настраиваемый отладчик. Например, можно сделать, чтобы в одном треде экспешн вызывал отладчик, а в другом возвращал экспешн пользователю, всё это можно программировать, а не мышью накликивать, как в Delphi. Ну и я не представляю себе какой-нибудь Delphi 2007, неделями висящий на промышленном сервере приложений. Он рухнет довольно быстро или всю память съест. А IDE лиспа у нас реально неделями крутится, т.е. все сорсы приложений и отладчик промышленной базы у нас всегда под рукой, если что.

Что ещё? Ну, допустим, хеш-таблицы по любым объектам элементарно строятся. Очень удобна работа с древовидными структурами. Я на Дельфи уже 13-й год потихоньку развиваю библиотеку работы с деревьями, но она до сих пор уступает тому, что в лиспе есть "из коробки".
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474832
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanизменение структуры бд может принести кучу сюрпризов
А мы умеем с этим справляться, потому что у нас за счёт макросов, которыми мы расширили PSQL, наборы параметров нужных нам хранимых процедур растут вместе со структурой таблицы. Система макросов для PSQL написана на лиспе. Клиентское приложение тоже в большой степени генерируется автоматически из структуры базы - генератор написан на лиспе. Оно заточено так, что редко возникают сообщения типа "field not found" или как там оно - не помню даже его текст, так давно не видел. Бывают и у нас сюрпризы с базой, они неизбежны по природе вещей, но крайне редко.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474840
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
budden, вы молодцы. По хорошему вам завидую.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474865
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, мы, в общем-то, готовы делиться нажитым, нам это выгодно. Хотя тут есть проблемы - не всё можно выложить в open source из-за NDA, многое нужно приводить в божеский вид, многое неудобно и т.п. Я говорю "мы", но 90% работы сделал я один, многое доведено до минимально рабочего состояния - мне же платят за решение прикладных задач, а не за развитие платформы. Если будет какой-то интерес, адрес указан в вакансии.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474877
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я в Украине, вобщем-то. Просто солидарен со стартапами в области Lisp
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474917
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonсолидарен со стартапами в области Lisp
++
s/в области/с применением/
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474937
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenЕсть у вас ваш Firebird, но когда на сервере FB происходит Exception, появляется окошко "just in time debugging", можно запустить IBE и посмотреть место, где исключение возникло, глянуть переменные, вычислить что-то. Согласитесь, вот так надо бы работать в XXI веке.
buddenНу и я не представляю себе какой-нибудь Delphi 2007, неделями висящий на промышленном сервере приложений.
Увы, я с вами не согласен. С точки зрения разработчика, это очень удобно. Но на промышленном сервере никаких IDE стоять не должно. Ибо нефиг.

buddenБывают клиенты со своими требованиями по оформлению документов, бывают хитрые управленческие отчёты
Не аргумент. 1С все это позволяет.

buddenбывает просто очень большой объём данных, при котором производительность 1С не удовлетворяет
Тут согласен.

buddenЕсли это 1С, то есть какая-то поддержка от вендора, а если это самописная система, то нужно успевать тянуть весь воз уже написанного кода за сменой законов
Не аргумент. Не вижу разницы, при изменении требований закона, тянуть за собой самописку 1С или самописку на Delphi/Lisp.

buddenЕсли ваши приложения компилируются за одну-две секунды, то они, видимо, довольно простые
Улыбнуло. Я занимаюсь в том числе и онлайн-трейдингом. Он сам по себе и непрост. Занимался почти всеми его аспектами, за исключением технического анализа.

Резюмирую: никаких особых задач, требующих именно Lisp, у вас нет. C# с его зачатками псевдофункцинальности в виде LINQ, Expressions вполне справился бы с задекларированным.

Спасибо за потраченное на меня время. Было достаточно познавательно.
...
Рейтинг: 0 / 0
Почему мы используем Common Lisp в автоматизации бизнеса
    #38474953
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenЯ и сейчас высоко ценю SQL - гениальная вещь.

Ну, я бы не стал называть его гениальным, скорее он (как кто-то сказал про Unix, не помню дословно и что-то нагуглить не получается) «просто неплохо делает свою работу».

http://airbladesoftware.com/notes/relational-databases-are-not-relational/
http://www.houseabsolute.com/presentations/sql-is-not-relational/slide16.html
...
Рейтинг: 0 / 0
25 сообщений из 94, страница 2 из 4
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Почему мы используем Common Lisp в автоматизации бизнеса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]