Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 .. 13   вперед  Ctrl
 Причины ненависти к языку SQL?  [new]
Eugene New
Member

Откуда:
Сообщений: 456
Сам я люблю язык структурированных запросов. Но если посмотреть на то, сколько всяких технологий придумали для его замену, на то, что пропагандируют в разных книжках, создается ощущение какой то темной иррациональной ненависти к SQL.

Есть ли какие то рациональные причины?

Я вижу три возможных:
1. Реляционные БД может быть плохо сочетаются с рапараллеливанием на много компьютеров
2. ООП плохо связывается с SQL
3. Возможно считается, что среднестатистический программист настолько туп и не обладает способностями к абстрактному мышлению, что не в состоянии понять реляционную теорию, основанную на понятии множеств.
29 сен 18, 18:18    [21689936]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5473
Eugene New,

можно пример разных книжек?
29 сен 18, 20:53    [21690060]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Eugene New
Member

Откуда:
Сообщений: 456
SergSuper,
Роберт Мартин, "Читая Архитектура", 2018 год. стр 170-172

Вроде человек с перфокарт начинал программировать, хотя и без особого успеха. Теперь книжки пишет, есть то хочется, я его понимаю. У него даже хватает честности признать, что ООП делается на процедурных языках со всеми его фишками.

Но на SQL его пробило. Я даже не понял, то ли он себя обманывает, то ли читателей. Суть в том, что он говорит, что решение о том, будет использоваться реляционная БД или нет надо откладывать до самого последнего момента. Приводит в пример свой проектик, который реализовал на плоских файлах.

Обман в том, что такой подход работает только если вы будете использовать реляционную базу как набор плоских файлов - то есть не будете использовать ее возможностей. Видал я в начале 2000-х такую программу - использовала Oracle, расчет зарплаты за месяц проводила за 10 часов. Но был выход - если запускать на сервере БД, то считало уже 5 часов. Потому что ребята делали это на dbf-файлах изначально и перенос на Oracel свели к запихиванию данных в таблицы в реляционной БД и полному скачиванию всей информации из них для последующей обработки. Очевидно, что все это можно было с полпинка оптимизировать до скорости в 100-1000 раз больше, если задействовать sql.

Насчет Мартина я так и не понял - то ли он действительно сам не может понять реляционные БД, то ли работает на пропаганду "линии партии".

Честно было бы сказать на его месте, что решение о использовании или неиспользовании реляционных БД принимается в самом начале. Мне, конечно, сложно представить, как можно не понимать простейших аспектов реляционной теории, но я не берусь отрицать существование таких людей.
29 сен 18, 21:17    [21690070]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
mayton
Member

Откуда: loopback
Сообщений: 37917
Eugene New
Сам я люблю язык структурированных запросов. Но если посмотреть на то, сколько всяких технологий придумали для его замену, на то, что пропагандируют в разных книжках, создается ощущение какой то темной иррациональной ненависти к SQL.

Причин много. Упрощение. Некоторые узлы сложных систем после миграции
в микросервис оказались настолько простыми что им реляционная алгебра не нужна. Но хранилище
им нужно.

Еще - незаполненный сегмент в части API. Между РСУБД и файловыми библиотеками
наподобие BerkeleyDB был ваккуум. Сейчас он заполняется всякими Redis, RockDb, LevelDb,
и прочими которые уже не файло-подобные но и еще не реляционные. Ну и конечно - либеральная
лицензия.

+Нереляционные которые полезны (реально полезны) для графового поиска информации
в соц-сетях и генеалогических проектов наподобие MyHeritage. Из таких я помню есть Neo4j.

Насчет ненависти - это вы Евгений конечно перебираете. Я не знаю откуда вы черпаете информацию.
29 сен 18, 21:25    [21690073]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Eugene New
Member

Откуда:
Сообщений: 456
Dimitry Sibiryakov,
я люблю Firebird и уважаю его разработчиков! Вы совершенно напрасно думаете, что я враждебен.
29 сен 18, 21:32    [21690075]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
_nautilus_
Member

Откуда: Отсюда
Сообщений: 1200
Eugene New
Насчет Мартина я так и не понял - то ли он действительно сам не может понять реляционные БД, то ли работает на пропаганду "линии партии".


У Теплякова можно почитать критику какой-то из книжек Мартина. Лично я не очень люблю авторов, которые книжки пишут словно рыба икру мечет. Как правило в таких случаях выше риск, что в книге будет преобладать конъюнктурная попса и автор среди прочего будет именно навязывать определенную точку зрения.

Eugene New
Есть ли какие то рациональные причины?


С одной стороны как ни странно не все умеют работать. Встречал случаи, когда люди на полном серьезе тащили все на клиента и уже там в разбирали во вложенных циклах. С другой стороны как выше написали тенденция к упрощению и сокращению - объективный фактор. Не случайно в этой связи появление того же node, чисто ради того, чтобы и на клиенте и на сервере был один js.
29 сен 18, 21:51    [21690085]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
mayton
Member

Откуда: loopback
Сообщений: 37917
Eugene New
Видал я в начале 2000-х такую программу - использовала Oracle, расчет зарплаты за месяц проводила за 10 часов. Но был выход - если запускать на сервере БД, то считало уже 5 часов. Потому что ребята делали это на dbf-файлах изначально и перенос на Oracel свели к запихиванию данных в таблицы в реляционной БД и полному скачиванию всей информации из них для последующей обработки. Очевидно, что все это можно было с полпинка оптимизировать до скорости в 100-1000 раз больше, если задействовать sql.

Тут все от задачи зависит.

Если она - из области distributed computing то может и лучше ее считать распределённо а потом сливать "ручейки
информации" в единый хост-хранилище отчотов. Вобще как говорят it depends.
29 сен 18, 22:50    [21690117]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
mayton
Member

Откуда: loopback
Сообщений: 37917
_nautilus_
У Теплякова можно почитать критику какой-то из книжек Мартина. Лично я не очень люблю авторов, которые книжки пишут словно рыба икру мечет. Как правило в таких случаях выше риск, что в книге будет преобладать конъюнктурная попса и автор среди прочего будет именно навязывать определенную точку зрения.

На миг сложилось впечатление что мы "Пастернака" осуждаем по линии партии даже нечитая ...

А Мартин написал всего-то 5-6 книг (по разным источникам).
29 сен 18, 23:02    [21690129]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 5949
sql это просто реляционная алгебра.

математику ненавидят двоечники, которые ее не понимают
29 сен 18, 23:18    [21690134]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 27622
Eugene New
Обман в том, что такой подход работает только если вы будете использовать реляционную базу как набор плоских файлов - то есть не будете использовать ее возможностей.

обман в том, что оперирование множествами, и язык SQL это круто, но без индексов и прочих ухищрений по оптимизации всё это не будет работать быстро.
Может поэтому авторов типа Мартина плющит - хотели пулю из серебра, а получили из г.
Тем не менее, эта, даже говённая пуля, всё равно работает.
29 сен 18, 23:39    [21690146]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
booby
Member

Откуда:
Сообщений: 1609
Eugene New
... Суть в том, что он говорит, что решение о том, будет использоваться реляционная БД или нет надо откладывать до самого последнего момента.
...

Тони Хоар, соизобретатель "структурного программирования" как подхода к проектированию
программ, и соавтор с Далом и Дейкстрой сборника статей "Структурное программирование",
где-то давал комментарий к первой статье в сборнике, в которой Дейкстра рассказывает,
среди прочего, как он учит своих студентов программированию "сверху-вниз".
Хоар высказался в таком духе: это очень здорово, но этому нельзя учить начинающих.
Начинающие не знают, где у программы верх.

Книжек по архитектуре программного обеспечения раньше какого-то момента тоже читать нежелательно.
Начинающий просто не поймет смысла написанного и превратит его в ненависть.

О существе архитектуры вообще и программной архитектуры в частности, имхо,
красочнее всех высказался Фредерик Брукс, примерно так (точную цитату искать не буду):
- архитектура, это то, обо что вы спотыкаетесь, когда ночью бредете в туалет.
Если оно не может быть отодвинуто, так, чтобы следующей ночью не спотыкаться,
то это и является архитектурой.

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

Eugene New
Честно было бы сказать на его месте, что решение о использовании или неиспользовании реляционных БД принимается в самом начале....

Это решение возможно.
И в целом наборе обстоятельств - умно.
Оно предопределяет существенные элементы архитектуры.

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

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

Существо архитектуры - в стенах, дверях и коридорах.
Автор всего лишь говорит, что твоя обязанность - запланировать наличие коридора.
А какой лампочкой ты будешь его освещать - это можно решать потом.
Как-то так.
30 сен 18, 00:46    [21690178]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
_nautilus_
Member

Откуда: Отсюда
Сообщений: 1200
mayton
На миг сложилось впечатление


И правильно, что миг, ведь я писал про принцип отбора, а не про то, что конкретно Мартин какой-то не такой.

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


Хорошо сказано.
30 сен 18, 01:02    [21690185]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Eugene New
Member

Откуда:
Сообщений: 456
Аналогии с архитектурой хромают, как и с любым объектом из реального мира, т. к. программирование совмещает в себе проектирование и реализацию. Никто не строит здание так, чтобы переносить после постройки капитальные стены и менять этажность, никто не начинает строительство, понятия не имея, что это будет за здание и для чего оно будет использоваться и никто не меняет проект, когда построена уже половина здания.

Не хотелось бы уходить слишком далеко от темы.

Вот, например, LinkQ - зачем его сделали вообще? Они что то упростили этим, заставив изучать новый язык запросов?
30 сен 18, 01:28    [21690190]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
booby
Member

Откуда:
Сообщений: 1609
Eugene New
Аналогии с архитектурой хромают, как и ...

вот и не надо судить о любви и ненависти к sql, читая книжки по архитектуре.
Просто не читайте пока таких книжек.

Eugene New
Вот, например, LinkQ - зачем его сделали вообще? Они что то упростили этим, заставив изучать новый язык запросов?


можно было бы предложить почитать вот это, 2006 год.

http://blogs.tedneward.com/post/the-vietnam-of-computer-science/

на хабре есть русский перевод.

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

Но может быть, потом, когда-нибудь, вспомните, что ссылку вам давали в связи с вопросом - что могло мотивировать создателей linq
30 сен 18, 01:49    [21690192]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
booby
Member

Откуда:
Сообщений: 1609
Eugene New
...
Никто не строит здание так, чтобы переносить после постройки капитальные стены и менять этажность...


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

Брукс считает, что о "хорошести" программы можно судить не раньше, чем после третьего переписывания.
Правда, состоит в том, что количество переписываний предсказать нельзя.

Выделенный тезис - самое сакральное знание о программировании.
30 сен 18, 02:28    [21690197]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Eugene New
Member

Откуда:
Сообщений: 456
booby,
сколько таинственности :-) знаю я про ORM и упомянул об этом в п. 2.
по мне так если ООП плохо сочетается с реляционными БД, которые прекрасно подходят для хранения данных, то горе ООП, а не реляционным БД.

пусть меня поправят, если я ошибаюсь, но
linq же не ORM, а именно язык запросов на замену sql. Entity Framework - ORM.
30 сен 18, 04:58    [21690205]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Eugene New
Member

Откуда:
Сообщений: 456
А если linkq лучше для использования с ORM - то чем?
30 сен 18, 05:08    [21690208]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
schi
Member

Откуда: Москва
Сообщений: 2601
http://russian.joelonsoftware.com/Articles/FireAndMotion.html
30 сен 18, 11:36    [21690293]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 8848
Eugene New
А если linkq
Когда я был маленький, то некоторое время упорно читал неандреталец, но, всё-таки, исправился.
30 сен 18, 16:14    [21690418]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
H5N1
Member

Откуда: Yo.!
Сообщений: 97
во первых не стоит смешивать теплое и мягкое: язык sql с реляционными базами. sql и поверх плоских файликов вполне работает.
во вторых реально существует огромный пласт задач где вполне оправдан отказ от полноценной реляционной базы. начиная с сайтиков-форумов, заканчивая бигдата задачами, которые зачастую на файликах поверх hdfs делают. как я понимаю микросервисы с идеологией отдельной базы будут под документо-ориентированные субд перетягивать одеяло. так что прототип на файлике вполне оправдан.
что касается sql, то пакость застыла в развитии и 10-15 лет никакого развития. если так пойдет и дальше, новомодные фреймворки и его начнут массово вытеснять. spark хорошо продвинулся в плане скрещивания декларативной и процедурной части языка, тогда как у sql по прежнему между декларативной и процедурным "расширением" пропасть и похоже что-то в там развивать уже никто не будет.
30 сен 18, 17:11    [21690445]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Котовасия
Member

Откуда:
Сообщений: 1187
Мартин считает разработчиков в массе своей тупыми обезьянами, неспособными освоить sql:

http://www.ooart.ru/uploads/book/arhitektura_korporativnyh_programmnyh_prilozhenij_fauler_m.pdf

Товарищ
Многие разработчики просто не владеют SQL и потому, пытаясь сформулировать эффективные запросы и команды, сталкиваются с проблемами. Помимо того, все без исключения технологии внедрения предложений SQL в код на языке программирования общего назначения страдают теми или иными изъянами. (Безусловно, было бы лучше осуществлять доступ к содержимому базы данных с помощью неких механизмов уровня языка разработки приложения.) А администраторы баз данных хотели бы уяснить нюансы обработки SQL-выражений, чтобы иметь возможность их оптимизировать.
По этим причинам разумнее обособить код SQL от бизнес - логики, разместив его в специальных классах.


Возможно, с точки зрения принципов построения ККЭ (красного кровавого энтерпрайза) Мартин прав: работаем с теми людьми, какие есть.
Вот и вся интрига.
30 сен 18, 18:05    [21690462]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Eugene New
Member

Откуда:
Сообщений: 456
H5N1,
sql и поверх плоских файликов вполне работает.

Это всего лишь значит, что вы используете набор плоских файлоков как реляционную БД.

астыла в развитии и 10-15 лет никакого развития

А сейчас все в программировании застыло. Разве что велосипеды по новому открывают. Берут то, что придумано в 1970-х и выдают за новейший технологический прорыв.

пакость

А лично вы почему ненавидите SQL? У вас трудности с пониманием математических абстракций?

spark хорошо продвинулся в плане скрещивани

spark всего лишь очередная библиотека, которая, кстати, использует SQL
--
Котовасия,
озможно, с точки зрения принципов построения ККЭ (красного кровавого энтерпрайза) Мартин прав: работаем с теми людьми, какие есть.

Есть же еще люди с нормальными способностями. Выходит, что они дебилов отбирают специально. А дебилы ведь все равно ничего хорошего не сделают..
30 сен 18, 18:17    [21690467]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Котовасия
Member

Откуда:
Сообщений: 1187
Eugene New>Есть же еще люди с нормальными способностями
Мало, судя по всему.
Еще раз: речь об ККЭ, тут не до примадонн, тут массовое производство, где незаменимым не место. Для того и RUP, Agile, и зубрежка шаблонов проектирования и ORM.

Подход вполне оправдан при определенных масштабах производства.
30 сен 18, 18:24    [21690471]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
mayton
Member

Откуда: loopback
Сообщений: 37917
H5N1
что касается sql, то пакость застыла в развитии и 10-15 лет никакого развития. если так пойдет и дальше, новомодные фреймворки и его начнут массово вытеснять. spark хорошо продвинулся в плане скрещивания декларативной и процедурной части языка, тогда как у sql по прежнему между декларативной и процедурным "расширением" пропасть и похоже что-то в там развивать уже никто не будет.

Куда вы хотите его развивать?
30 сен 18, 18:28    [21690475]     Ответить | Цитировать Сообщить модератору
 Re: Причины ненависти к языку SQL?  [new]
Котовасия
Member

Откуда:
Сообщений: 1187
mayton
H5N1
что касается sql, то пакость застыла в развитии и 10-15 лет никакого развития. если так пойдет и дальше, новомодные фреймворки и его начнут массово вытеснять. spark хорошо продвинулся в плане скрещивания декларативной и процедурной части языка, тогда как у sql по прежнему между декларативной и процедурным "расширением" пропасть и похоже что-то в там развивать уже никто не будет.

Куда вы хотите его развивать?

Хочется императивности, вместо "селект ... фром ... вэрэ..." чтобы "for (int i = 1...,", как у пацанов из одинэс... ;)
30 сен 18, 18:37    [21690478]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6 7 8 9 10 .. 13   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить