metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-04-03 01:06 am

В Советской Белоруссии SQL разжигает айседа

http://theiced.livejournal.com/238346.html
Собственно, про кобол я не знаю, на дельфи пишу уже 15 лет и никак избавится от него не могу (слишком много легаси кода), а вот про SQL я с ним не согласен.
Сам по себе SQL очень хорошо подходит для генерации отчетов. Если отчет сводится к фильтрации-сортировке-группировке множеств - идеально. С рекурсивными CTE - еще и деревья можно обрабатывать, не особо включая мозг. Всунув поверх этого минимальных размеров постобработку на какой-нибудь функциональщине, можно сделать почти любой отчет, пришедший в голову свихнувшимся на Excel выпускникам нархоза, работающим в минстате, минфине и МНС.

Но когда доходит до процедурных расширений, API между СУБД и клиентскими приложениями или каких-нибудь вещей, которые забыли вовремя добавить в стандарт - начинается полная, немыслимая жопа.
Например, проклятая тема - генерация автоинкрементных ключей и возвращение значений автоматически заполненных полей. Кто во что горазд - identity, генераторы, sequence, функции (в каждой СУБД названные по разному), returning, заебы на тему "вызывать в той же транзакции и сессии" и прочая и прочая. Про вариации на тему "вернуть поле, которое заполняется автоматически, но не является ключом/identity" лучше даже не думать.
Неудивительно, что люди при первой же возможности сбегают в ORM (которые являются уже второй производной от всего этого маразма и несут на себе его неизгладимый след).

[identity profile] theiced.livejournal.com 2013-04-03 07:20 am (UTC)(link)
который в принципе неплох. я вот ша на нём пишу новый код после дооолгого перерыва (года два чоле только допиливал уже сделанные ранее решения а всё новое шло на CL/кложе) - жутко бесят огрызки функциональщины и отстутствие макросов ;]

[identity profile] metaclass.livejournal.com 2013-04-03 07:21 am (UTC)(link)
Ну для начала, писать ORM на жабе или дельфях - это невменяемое занятие, язык для этого непригоден.
Можно написать некое приближение, но радости это не добавит.

В C# сделали чуть лучше, с синтаксическими расширениями, но в итоге там сделали несколько несовместимых вариантов.

[identity profile] fraks-nsk.livejournal.com 2013-04-03 07:22 am (UTC)(link)
Дело не в тянуть ОРМ а в том что я вообще в нем смысла не вижу. Некие его мифические достоинства требуют больших жертв.

[identity profile] norguhtar.livejournal.com 2013-04-03 07:22 am (UTC)(link)

Не столкнусь. У меня не ОРМ, я не работаю с объектами в программе.

Я вам указал почему это ORM. Вы можете сколько угодно упорствовать что это не ORM, но по факту это ORM.

[identity profile] theiced.livejournal.com 2013-04-03 07:23 am (UTC)(link)
а чего меня звать, я тут. но я даже не буду ЭТО комментировать, поделка на уровне студента рти/сотрудника нии гит с 40летним стажем. неподдерживаемо, немэйнтабельно, нерасширяемо, нетестируемо и не работает. такой код имеет исключительно один "плюс" - мудака его написавшего так просто с работы не попрёшь.

[identity profile] theiced.livejournal.com 2013-04-03 07:25 am (UTC)(link)
ну поэтому все нормальные люди из этой говноинфраструктуры сбежали, остались только ниигитовцы.

[identity profile] norguhtar.livejournal.com 2013-04-03 07:25 am (UTC)(link)
Учитывая вашу боязнь нового, вы и не увидите. На этом надо сделать проект с mvc к примеру, а у вас там дельфи во все поля. Которая по технологиям от текущих средств разработки отстает на десятилетие.

[identity profile] norguhtar.livejournal.com 2013-04-03 07:28 am (UTC)(link)
Вы же отлично знаете, что это все отлично крутится в ORM. А так же выявляется довольно просто и чинится так же.

[identity profile] sbj-ss.livejournal.com 2013-04-03 07:43 am (UTC)(link)
А не поверите - скобочками. Есть некоторый процент программистов (в который, увы, вхожу и я), который такую компоновку не переваривает. Хаскелль - пожалуйста. Лисп - скобочки :(

[identity profile] vit-r.livejournal.com 2013-04-03 07:49 am (UTC)(link)
Хороший ЯП/DSL/что-там-ещё может получиться исключительно в случае когда он спроектирован реальными программистами для реальных программистов.
Хорошим ЯП/DSL/чем-то-ещё считаем такой инструмент, который нужен программистам чтобы писать программы для программистов.

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

[identity profile] theiced.livejournal.com 2013-04-03 07:49 am (UTC)(link)
ну это вам к психиатру же ;] ну или лечение методом доктора айседа, но оно болезненное.

[identity profile] theiced.livejournal.com 2013-04-03 07:50 am (UTC)(link)
х*скель не работает кстати - учоные для хуй знает кого.

[identity profile] theiced.livejournal.com 2013-04-03 07:51 am (UTC)(link)
невсегда возможно ;]

[identity profile] sbj-ss.livejournal.com 2013-04-03 07:51 am (UTC)(link)
На кложуре не пишу по той же причине. Не воспринимаю визуально :(
Ну и жаба унутре. Не надо забывать про жабу.
Edited 2013-04-03 07:54 (UTC)

[identity profile] sbj-ss.livejournal.com 2013-04-03 07:53 am (UTC)(link)
От лечения по методу доктора айседа есть контрмеры по методу Мицгола :)

[identity profile] asvil (from livejournal.com) 2013-04-03 07:58 am (UTC)(link)
Соглашусь. Сложная семантика натянутая на секспы: операторы, макросы, функции (и для каждого случая аргументы вычисляются по-разному), локальные, нелокальные переходы.
Уберформы типа make-array, defstruct, defclass, etc, 100500 параметров.
Pathnames: идея может и хорошая, но в реальности кроссплатформенности нет.

Конечно со временем глаз скобочки воспринимает и легко узнаёт где-чё вычисляется, куда передаётся, но на это надо это самое время.

[identity profile] sbj-ss.livejournal.com 2013-04-03 08:01 am (UTC)(link)
Да метод элементарный: жертва обкладывается хуями до тех пор, пока не забанит айседа (в этом случае поциент считается неизлечимым и вдобавок тряпкой).
Есть, правда, одна тонкость: рекламированный вчера язык программирования (фреймворк, либа, кабак - нужное подчеркнуть) сегодня айседу может резко надоесть и ВНЕЗАПНО стать сраным говном. Мемуары Жукова онлайн.

[identity profile] sbj-ss.livejournal.com 2013-04-03 08:07 am (UTC)(link)
Ну и сопсно пруф:

[identity profile] sbj-ss.livejournal.com 2013-04-03 08:13 am (UTC)(link)
Библиотеки на уровне кложури, может, и вылизали - среди функциональщиков дураков меньше. А под низом всё равно та же жаба, которую можно вылизать разве что "патчем Бармина".

[identity profile] norian.livejournal.com 2013-04-03 08:18 am (UTC)(link)
> проклятая тема - генерация автоинкрементных ключей и возвращение значений автоматически заполненных полей

дык можно юзать клиентский синглтон для генерации, не ?

[identity profile] asvil (from livejournal.com) 2013-04-03 08:23 am (UTC)(link)
Несколько клиентов обычно.

[identity profile] vit-r.livejournal.com 2013-04-03 08:23 am (UTC)(link)
То, что невозможно, требует других решений. И, скорее всего, оно и не нужно.

Я начинал со старых иерархических баз данных. Теперь это называется NoSQL и снова в моде. Поглядеть, что люди делают, только дикие вычислительные мощности позволяют этому ужасу работать.

[identity profile] theiced.livejournal.com 2013-04-03 08:32 am (UTC)(link)
ну практически да ;] но некоторые достигли просветления.

ммм. а можно документальные факты где у меня мнение менялось. адаптируется _изреееедка_ в свете получения новых знаний (или изменения внешней среды) - да, конечно. я ж не хочу писать-50-лет-на-делфи, развиваюсь. хороший пример - конференции, но это явно возрастное. какие у вас ещё примеры есть?

[identity profile] theiced.livejournal.com 2013-04-03 08:33 am (UTC)(link)
гагага

[identity profile] metaclass.livejournal.com 2013-04-03 08:34 am (UTC)(link)
Схера ли оно отстает. Берем кложурь, генерируем дельфи.
У меня MVC в десктопной опердени на дельфях во всех поля :)

Page 5 of 15