LINUX.ORG.RU

Его крокейшество о вредности СУБД, если архитектурно она для программ, а не живого человека

 ,


0

4

Давно уже что-то про Столярова Croco ничего не было =) А тут он повод недавно дал, расписав почему считает недопустимым использовать СУБД в архитектуре при проектировании софта. То есть, если для каких-то программ нужно хранение данных, его надо индивидуально под программу делать, а не подключать базы данных.

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

http://www.stolyarov.info/guestbook#cmt97

==============

Я придерживаюсь принципа несколько более узкого: недопустимо создание, распространение и использовние программ, для работы которых требуется СУБД.

Причины можно назвать, например, такие:

  1. СУБД — это лишняя внешняя зависимость, при том что вообще любые внешние зависимости суть хамство в отношении пользователей и мейнтейнеров;
  2. СУБД требует трудозатрат на установку, настройку и дальнейшее администрирование;
  3. СУБД способна упасть (и да, падает намного чаще, чем, скажем, тот же апач — вообще пока мои сайты жили на «традиционной» CMSке, именно СУБД была причиной всех случаев downtime моих сайтов, за исключением одного, когда на сервере физически осыпался жёсткий диск);
  4. СУБД требует от пользователя постоянно обновлять навыки, которые, возможно, больше ни для чего не нужны;
  5. СУБД хранит информацию пользователя в неочевидном для него виде; этим грешат не только СУБД, конечно, но СУБД мало того что хранят всё в бинарных файлах, которые без самой СУБД даже думать нечего разобрать, они ещё и вводят дополнительный слой хаотизации в виде схемы БД, провоцируя разработчиков софта на внедрение «решений», единственное «описание» которых остаётся в голове у автора;
  6. СУБД требует изрядных вычислительных мощностей и крадёт (а вовсе не повышает, как почему-то многие уверены) производительность.

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

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

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

★★★★★
Ответ на: комментарий от anonymous

непонимание сути вещей в программировании и расплодившихся макак я тоже не одобряю. и всё, что к этому ведёт.

но какие претензии к VLA в сишечке могут быть - решительно не понимаю. даже я, при весьма принципиальном подходе к выбору инструментов, не вижу ничего плохого в VLA в С99. в конце концов, «не нравится - не ешь». никто ж не заставляет. в сишечке полная свобода выбора на этот счёт.

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

Я полностью с Вами согласен.

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

Логика Столярова примерно такая: раз водитель авто может кого-то сбить, то нужно запретить автомобили как таковые.


Про VLA.

Кроко говорил, что VLA – зло, так как с этого момента в языке появились возможности, которые настолько нетривиальны, что требуют наличия некоторой библиотечной функции во время исполнения программы, тем самым убивая главную фичу (по мнению Столярова) языка C: zero runtime. То есть, полное отсутствие в языке возможностей, требующих какой-то среды исполнения: язык и библиотеки отделены друг от друга (на Си можно написать программу вообще без стандартной библиотеки, используя лишь пару оберток на ASM).

anonymous
()
Ответ на: комментарий от riokor-v2

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

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

на Си можно написать программу вообще без стандартной библиотеки, используя лишь пару оберток на ASM

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

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

внезапно, на любом компилируемом языке можно, если не использовать вызовы libc и других внешних библиотек. это не какая-то магия. проблема в том, что во многих языках слишком много жира и сложно написать что-то без вызовов libc и прочего.

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

Короче говоря, Столяров планомерно мутирует в ухудшеную версию Царя.

Всегда таким был. Типаж ученого хамла из колхоза, для советской науки норма. Но, советские хамы действительно наукой занимались, а не хернёй, как этот персонаж. Короче, computer science, которое мы заслужили.

bread
()
Ответ на: комментарий от riokor-v2

это безразлично для меня, но плохо для Вас. потому что я избегаю тех, кто ко мне пристаёт. просто не переношу подобное отношение и приставания. я общаюсь только с теми, кто ведёт себя культурно, нейтрально и соблюдает дистанцию. в людях меня привлекает высокий интеллект и способность вести интересные дискуссии. в личном общении предпочитаю общаться либо с женатыми, либо с принципиальными холостяками, вроде меня, чтобы не возникало ненужных проблем на этой почве.

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

ну... наукой вы это как-то слишком уж пафосно назвали. наука - это всё-таки другое. как-то помасштабнее. а программирование - скорее, не наука, а ремесло. может, местами продуманное и хитрожопое, но ремесло. наука - это, например, математика, или физика, или, там, химия, биология. а мы просто байтики перекидываем :)

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

как это - не наука. это квинтэссенция всей науки: чистая логика и самый строгий подход ко всему. это не естественная наука, да. но, как у нас говорили, это сверхъестественная наука :)

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

Царица наук! 😊

Да! Но сама наукой не является.

А как же косметология? 🤔

Не разбираюсь в ней совершенно. Но если это и правда наука, скорее всего и там тоже используется математика ;)

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

как это - не наука

Вот так. Именно потому что:

чистая логика и самый строгий подход ко всему

Наука про другое, она использует научный метод. А математика — это скорее язык науки. И инструмент. И да, можно сказать, что квинэссенция всей науки. Но не наука.


Сами математики, кстати, в большинстве своём согласны с тем, что математика — не наука. Многие даже поправляют.

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

у тебя какие-то отличные от всего остального мира фантазии на тему наук

Нет, наоборот. На сей раз какие-то особые определения у тебя.

Математика не соответствует большинству определений науки. Она не имеет всех признаков науки. Её не считают наукой сами математики. Её не считают наукой большинство философов, занимающихся проблемой демаркации.

Это ни в коем случае не принижает математику, кстати. Наоборот, она больше чем всего лишь очередная наука.

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

ты уже открой определение и перестань пороть чушь. я математик по образованию и про математику кое-что знаю.

математика - точная формальная наука. само слово «матема» означает «наука». и это определение. так что научнее уже некуда. и тут должно быть длинное бла-бла-бла про методы и объекты изучения математики, так как в математике очень много всяких разделов и областей изучения.

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

Многократно открывал, и не одно (да, их множество). Математика по многим признакам отличается от наук. Науки (и естественные и гуманитарные) изучают те или иные свойства окружающего мира, в математике всё основано на абстракции, а к реальности она прикладывается через использование в науках — опосредованно. В науках (опять же и естественных и гуманитарные) источником информации являются наблюдения и/или эксперименты, в математике — аксиомы, определения и постулаты. В науках (по крайней мере в естественных, с гуманитарными может быть по-разному) метод получения знаний эмпирический, в математике — логический. Проверяемость фактов в науках обеспечивается повторными экспериментами или множественными наблюдениями, в математике — логической непротиворечивостью.

Можно, конечно, слово «наука» растянуть на более обширное множество областей знаний или занятий, включить туда и математику с логикой, можно ещё и философию включить, да хоть программирование при желании — главное захотеть. Желательно только при этом знать, зачем мы это делаем. Нравится считать математику наукой — считайте, это ведь по сути не меняет ничего ни в математике как таковой, ни в науках, просто разный способ раскладывать явления по полочкам в голове… Но если так делать, то уж очень особняком она стоит от остальных наук. Но можно и так. В целом этот спор довольно глупый, он почти что о терминах и определениях, а не о сути вещей.

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

я уточнила в греческом словаре:

μάθημα - урок, объект изучения, изучение, полученный опыт.

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

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

вот гуманитарные «науки» как раз науками не являются. там отсутствует критерий Поппера. а это базовый определитель науки, или научного метода, критерий фальсифицируемости.

например, история, социология и даже экономика - не «науки» в научном понимании. хотя формально их тоже называют науками.

а математика самая строгая в приёмах формальной логики и отрицания, доказательство от противного и контрпримеры там основа основ.

а ты всё смешал в какой-то винегрет, потому что тебе так нравится.

Iron_Bug ★★★★★
()
Ответ на: комментарий от riokor-v2

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

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

вот гуманитарные «науки» как раз науками не являются. там отсутствует критерий Поппера. а это базовый определитель науки, или научного метода, критерий фальсифицируемости.

Нормальные гуманитарные науки проходят критерий Поппера. Обратное заявляют обычно те, кто с ними не знаком. Хотя, конечно, существуют и псевдонауки, а также псевдоучёные, которые вместо науки занимаются шарлатанством (особенно много таких среди «психологов», а ещё есть среди «историков», использующих историографию для пропаганды).

например, история, социология и даже экономика - не «науки» в научном понимании. хотя формально их тоже называют науками.

С социологией всё сложно, там есть научные и ненаучные части. Но вот история — это вполне себе наука в самом прямом научном понимании. Там используется научный метод, там есть кросс-проверка источников знаний, опять же, там довольно много математики и статистики, а также она активно взаимодействует с другими дисциплинами. Проблема здесь, что у многих восприятие истории специфическое — они думают, что то, что они изучали в школе — это и есть история. Хотя именно с наукой историей это не имеет ничего общего, это лишь выводы — красивые рассказы и сюжеты, зачастую ещё и приправленные пропагандой. Но почему-то в школе никто не рассказывает именно про методологию и откуда мы все эти красивые сказки знаем. Это примерно так же, как если бы на физике вместо опытов и формул рассказывали биографию Ньютона и говорили «вот такой хороший человек сказал, что все тела падают на землю, теперь знайте это», и это надо было бы зазубрить. А потом то же самое про Эйнштейна и прочее. Но из всех наук в школе такая странность происходит только с историей — никакой методологии и практики, никакого понимания критики источников, кросс-проверок, ничего — только сформированный «лор».

а математика самая строгая в приёмах формальной логики и отрицания, доказательство от противного и контрпримеры там основа основ.

Верно. Благодаря этому она имеет столько применений. В том числе в науках.

а ты всё смешал в какой-то винегрет, потому что тебе так нравится.

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

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

это не я «выписываю» что-то из наук потому что оно мне не нравится. это просто классификация по Попперу. и это официальное научное деление. а что там кому нравится или не нравится - это дело десятое. в науке нет личного подхода и «авторитетных мнений». в гуманитарных же «науках» этого как говна за баней. они все состоят из частных мнений чуть более, чем полностью. и они неопровержимы, потому что это частные мнения. именно поэтому это и не науки в строгом, научном понимании этого термина. в историческом же дискурсе их принято называть науками и никто на это не наезжает.

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

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

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

они все состоят из частных мнений чуть более, чем полностью. и они неопровержимы, потому что это частные мнения.

Отличный набор стереотипов, имеющий мало общего с действительностью.

Из частных мнений, которые неопровержимы, состоит философия. И религия. И много чего ещё, что точно так же не является наукой ни в каком смысле. Гуманитарные же науки (настоящие, а не какая-нибудь там «деструктология» и прочие явления, мимикрирующие под науку) состоят не из мнений, а из наблюдейний и фактов, как раз подтвеждений и опровержений, применения научного метода. Этим и отличается наука (в том числе из числа «гуманитарных») от какой-то фигни, под науку лишь мимикрирующей. Причём есть два способа мимикрии: можно придумать новую «науку», которая при этом не будет соответствовать ни критерию Поппера, ни использовать научный метод, ни опираться на наблюдаемые эмпирически факты; либо же можно назвать себя учёным в одной из уже существующих наук (например, назвать себя историком и потом втирать задорновщину с фоменковщиной), точно так же забив на фальсифицируемость, научный метод и эмпирические факты. Только к наукам это отношения не имеет, и от наличия таковых деятелей науки (в том числе гуманитарные) науками быть не перестают.

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

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

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

а с историей всё ещё более непроверяемо и неопровержимо. история у каждого своя. каждый человек имеет свою точку зрения и свои знания об истории.

И снова стандартный набор заблуждений от человека, не знакомого с тем, как работает наука история. Ни с методологией, ни с тем, как там вообще всё устроено. Не хватает только «историю пишут победители» для полноты картины.

Советую просто почитать что-нибудь по теме. Хотя бы просто какие-то основы исторической науки и немножко про методологию. А также про то, чем она занимается (наука история — не про заучивание. Не надо путать школьный курс истрии с исторической наукой).

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

Хотя бы просто какие-то основы исторической науки и немножко про методологию. А также про то, чем она занимается

Подделкой источников и высасыванием из пальца рассуждений на их основе. Это как в математике — аксиомы могут задаваться произвольно. Потом сидят ученые мужи и перетирают на серьезных щщах за повести временных лет и прочее фентези. А времена, где уже много информации на основе периодики и фото/видео свидетельств, историкам не слишком интересны. Потому что там нужно во-первых много копать, а главное, пропаганду сложно впаривать, когда каждый может перепроверить факты.

bread
()

микроволновая радиация решил пофилософствовать на тему что такое формализация и наука, а жучиня опять за тремя соснами леса не видит, любой тред своими понтами загубит

anonymous
()
Ответ на: комментарий от CrX

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

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

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

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

проблема истории как науки даже не в фактах. а в их интерпретации. любой факт можно исказить преподнести правильным образом и в этом и состоит искусство геббельсовской лжи: полуправды и современной пропаганды. так что даже фото и видео не помогают. из них тоже выборочно лепят что угодно, по заказу сверху. а личных мнений столько, сколько людей на земле. очевидцы и участники одних и тех же событий могут совершенно по-разному их оценивать, интерпретировать и объяснять. поэтому единой «правильной» истории не существует чисто физически, потому что критерии добра и зла у каждого свои, и часто диаметрально противоположные. и оценки все разные. мы даже на форуме это видим. правда, на форуме некоторые любят удалять мнения, которые не совпадают с их собственными. но от этого мнения никуда не деваются и реальность никак не меняется.

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

Науки (и естественные и гуманитарные) изучают те или иные свойства окружающего мира, в математике всё основано на абстракции

В естественных и гуманитарных науках абстракции повсеместны. Печень — это тоже абстракция. В математике абстракции просто шире. И они тоже изучают свойства окружающего мира. Такие понятия как количество или мера — свойства окружающего мира.

Многие философы, особенно после Канта, стремятся оторвать абстракции от реальности. Аналитико-синтетическое различие как раз об этом. Но это всего-лишь популярное учение, а не общепринятая истина. На мой взгляд, это учение больше запутывает, чем проясняет. Если интересно, можем подробнее обсудить.

Если мы не считаем науку и математику родственными, то из этого будет следовать, что понятия из одной области будут неприменимы в другой. Скажем, понятие скорости физическое, но мы будем себе говорить «это ещё не математика». Для какого-нибудь Бертрана Расселла это может и будет иметь некий извращённый смысл. А для обычных людей — вряд ли.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 3)
Ответ на: комментарий от Iron_Bug

Польза истории в том, что она объясняет контекст, время, в котором жили люди. Это помогает хотя бы в общих чертах понять мотивацию людей того периода. Мы не сможем, например, изучить революционный период Америки, понять мысли и письма того периода, если не будем иметь хотя бы каких-то минимальных представлений о том, что происходило в то время.

А систематическое заучивание дат — это плохая практика, да. Но по-другому ЕГЭ не сдашь.

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

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

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

и история ничего не «объясняет». она просто констатирует факты. объяснения же, как я писала выше, у каждого свои. в зависимости от точки зрения разные исторические события трактовались то так, то этак. поэтому сейчас это в основном инструмент пропаганды. совсем независимая история выглядела бы как логи с сервера: чисто события, без малейшей политической, национальной, эмоциональной и прочей окраски. но ведь это нифига не так. хотя, может, когда-то история и перейдёт в разряд научного, не окрашенного личными мнениями предмета. но подозреваю, что ещё очень нескоро.

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

Объяснения тоже разными бывают. Вот, например, три объяснения одного события:

  • Колонисты восстали против воли Короля
  • Колонисты были убеждены в концепции естественных прав, поэтому взбунтовались против Короля
  • Колонисты были тиранами и им не хватало власти, поэтому они взбунтовались против Короля

Первое объяснено довольно беспристрастно, во втором есть доля интерпретации, причём исторически обоснованная. Третье — чистая спекуляция, попытка объяснить событие, не погружаясь в детали.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 2)