|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Сам я люблю язык структурированных запросов. Но если посмотреть на то, сколько всяких технологий придумали для его замену, на то, что пропагандируют в разных книжках, создается ощущение какой то темной иррациональной ненависти к SQL. Есть ли какие то рациональные причины? Я вижу три возможных: 1. Реляционные БД может быть плохо сочетаются с рапараллеливанием на много компьютеров 2. ООП плохо связывается с SQL 3. Возможно считается, что среднестатистический программист настолько туп и не обладает способностями к абстрактному мышлению, что не в состоянии понять реляционную теорию, основанную на понятии множеств. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 18:18 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene New, можно пример разных книжек? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 20:53 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
SergSuper, Роберт Мартин, "Читая Архитектура", 2018 год. стр 170-172 Вроде человек с перфокарт начинал программировать, хотя и без особого успеха. Теперь книжки пишет, есть то хочется, я его понимаю. У него даже хватает честности признать, что ООП делается на процедурных языках со всеми его фишками. Но на SQL его пробило. Я даже не понял, то ли он себя обманывает, то ли читателей. Суть в том, что он говорит, что решение о том, будет использоваться реляционная БД или нет надо откладывать до самого последнего момента. Приводит в пример свой проектик, который реализовал на плоских файлах. Обман в том, что такой подход работает только если вы будете использовать реляционную базу как набор плоских файлов - то есть не будете использовать ее возможностей. Видал я в начале 2000-х такую программу - использовала Oracle, расчет зарплаты за месяц проводила за 10 часов. Но был выход - если запускать на сервере БД, то считало уже 5 часов. Потому что ребята делали это на dbf-файлах изначально и перенос на Oracel свели к запихиванию данных в таблицы в реляционной БД и полному скачиванию всей информации из них для последующей обработки. Очевидно, что все это можно было с полпинка оптимизировать до скорости в 100-1000 раз больше, если задействовать sql. Насчет Мартина я так и не понял - то ли он действительно сам не может понять реляционные БД, то ли работает на пропаганду "линии партии". Честно было бы сказать на его месте, что решение о использовании или неиспользовании реляционных БД принимается в самом начале. Мне, конечно, сложно представить, как можно не понимать простейших аспектов реляционной теории, но я не берусь отрицать существование таких людей. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 21:17 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene NewСам я люблю язык структурированных запросов. Но если посмотреть на то, сколько всяких технологий придумали для его замену, на то, что пропагандируют в разных книжках, создается ощущение какой то темной иррациональной ненависти к SQL. Причин много. Упрощение. Некоторые узлы сложных систем после миграции в микросервис оказались настолько простыми что им реляционная алгебра не нужна. Но хранилище им нужно. Еще - незаполненный сегмент в части API. Между РСУБД и файловыми библиотеками наподобие BerkeleyDB был ваккуум. Сейчас он заполняется всякими Redis, RockDb, LevelDb, и прочими которые уже не файло-подобные но и еще не реляционные. Ну и конечно - либеральная лицензия. +Нереляционные которые полезны (реально полезны) для графового поиска информации в соц-сетях и генеалогических проектов наподобие MyHeritage. Из таких я помню есть Neo4j. Насчет ненависти - это вы Евгений конечно перебираете. Я не знаю откуда вы черпаете информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 21:25 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, я люблю Firebird и уважаю его разработчиков! Вы совершенно напрасно думаете, что я враждебен. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 21:32 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene NewНасчет Мартина я так и не понял - то ли он действительно сам не может понять реляционные БД, то ли работает на пропаганду "линии партии". У Теплякова можно почитать критику какой-то из книжек Мартина. Лично я не очень люблю авторов, которые книжки пишут словно рыба икру мечет. Как правило в таких случаях выше риск, что в книге будет преобладать конъюнктурная попса и автор среди прочего будет именно навязывать определенную точку зрения. Eugene NewЕсть ли какие то рациональные причины? С одной стороны как ни странно не все умеют работать. Встречал случаи, когда люди на полном серьезе тащили все на клиента и уже там в разбирали во вложенных циклах. С другой стороны как выше написали тенденция к упрощению и сокращению - объективный фактор. Не случайно в этой связи появление того же node, чисто ради того, чтобы и на клиенте и на сервере был один js. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 21:51 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene NewВидал я в начале 2000-х такую программу - использовала Oracle, расчет зарплаты за месяц проводила за 10 часов. Но был выход - если запускать на сервере БД, то считало уже 5 часов. Потому что ребята делали это на dbf-файлах изначально и перенос на Oracel свели к запихиванию данных в таблицы в реляционной БД и полному скачиванию всей информации из них для последующей обработки. Очевидно, что все это можно было с полпинка оптимизировать до скорости в 100-1000 раз больше, если задействовать sql. Тут все от задачи зависит. Если она - из области distributed computing то может и лучше ее считать распределённо а потом сливать "ручейки информации" в единый хост-хранилище отчотов. Вобще как говорят it depends. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 22:50 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
_nautilus_У Теплякова можно почитать критику какой-то из книжек Мартина. Лично я не очень люблю авторов, которые книжки пишут словно рыба икру мечет. Как правило в таких случаях выше риск, что в книге будет преобладать конъюнктурная попса и автор среди прочего будет именно навязывать определенную точку зрения. На миг сложилось впечатление что мы "Пастернака" осуждаем по линии партии даже нечитая ... А Мартин написал всего-то 5-6 книг (по разным источникам). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 23:02 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
sql это просто реляционная алгебра. математику ненавидят двоечники, которые ее не понимают ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 23:18 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene NewОбман в том, что такой подход работает только если вы будете использовать реляционную базу как набор плоских файлов - то есть не будете использовать ее возможностей. обман в том, что оперирование множествами, и язык SQL это круто, но без индексов и прочих ухищрений по оптимизации всё это не будет работать быстро. Может поэтому авторов типа Мартина плющит - хотели пулю из серебра, а получили из г. Тем не менее, эта, даже говённая пуля, всё равно работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2018, 23:39 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene New... Суть в том, что он говорит, что решение о том, будет использоваться реляционная БД или нет надо откладывать до самого последнего момента. ... Тони Хоар, соизобретатель "структурного программирования" как подхода к проектированию программ, и соавтор с Далом и Дейкстрой сборника статей "Структурное программирование", где-то давал комментарий к первой статье в сборнике, в которой Дейкстра рассказывает, среди прочего, как он учит своих студентов программированию "сверху-вниз". Хоар высказался в таком духе: это очень здорово, но этому нельзя учить начинающих. Начинающие не знают, где у программы верх. Книжек по архитектуре программного обеспечения раньше какого-то момента тоже читать нежелательно. Начинающий просто не поймет смысла написанного и превратит его в ненависть. О существе архитектуры вообще и программной архитектуры в частности, имхо, красочнее всех высказался Фредерик Брукс, примерно так (точную цитату искать не буду): - архитектура, это то, обо что вы спотыкаетесь, когда ночью бредете в туалет. Если оно не может быть отодвинуто, так, чтобы следующей ночью не спотыкаться, то это и является архитектурой. "Суть" же дела в определении того, что такое система, как проходит её границы, представляет она собой монолит - единственное знание, или набор взаимодействующих систем-построек. Умение строить свое здание так, чтобы при определенном взгляде, оно виделось как цельное и уметь при этом отложить целую часть вопросов на потом, это и есть умение проектировать независимое здание с учетом возможности его вписывания в изменяемую инфраструктуру.. Это искусство изолирования, модуляризации, стремящейся к достижению цельности конкретного строения. Eugene NewЧестно было бы сказать на его месте, что решение о использовании или неиспользовании реляционных БД принимается в самом начале.... Это решение возможно. И в целом наборе обстоятельств - умно. Оно предопределяет существенные элементы архитектуры. Но, если окажется в недостаточной степени изолированным и понятым буквально, то, может оказаться, что приводит к решению, в котором ночью ходить никуда и не надо, поскольку любая точка в здании может быть использована в качестве туалета. Не нужно даже включать свет. Просто делай то, что тебе требуется, там, где стоишь, или лежишь. Пристроить туалет к этому впоследствии возможно, а заставить жителей этого дома им пользоваться в обязательном порядке - никто не обещал, что может получиться. Существо архитектуры - в стенах, дверях и коридорах. Автор всего лишь говорит, что твоя обязанность - запланировать наличие коридора. А какой лампочкой ты будешь его освещать - это можно решать потом. Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 00:46 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
maytonНа миг сложилось впечатление И правильно, что миг, ведь я писал про принцип отбора, а не про то, что конкретно Мартин какой-то не такой. boobyУмение строить свое здание так, чтобы при определенном взгляде, оно виделось как цельное и уметь при этом отложить целую часть вопросов на потом, это и есть умение проектировать независимое здание с учетом возможности его вписывания в изменяемую инфраструктуру.. Хорошо сказано. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 01:02 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Аналогии с архитектурой хромают, как и с любым объектом из реального мира, т. к. программирование совмещает в себе проектирование и реализацию. Никто не строит здание так, чтобы переносить после постройки капитальные стены и менять этажность, никто не начинает строительство, понятия не имея, что это будет за здание и для чего оно будет использоваться и никто не меняет проект, когда построена уже половина здания. Не хотелось бы уходить слишком далеко от темы. Вот, например, LinkQ - зачем его сделали вообще? Они что то упростили этим, заставив изучать новый язык запросов? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 01:28 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene NewАналогии с архитектурой хромают, как и ... вот и не надо судить о любви и ненависти к sql, читая книжки по архитектуре. Просто не читайте пока таких книжек. Eugene NewВот, например, LinkQ - зачем его сделали вообще? Они что то упростили этим, заставив изучать новый язык запросов? можно было бы предложить почитать вот это, 2006 год. http://blogs.tedneward.com/post/the-vietnam-of-computer-science/ на хабре есть русский перевод. Сыылка здесь не потому, что вы обязательно прямо сейчас поймете, о чем этот текст в точности. Но может быть, потом, когда-нибудь, вспомните, что ссылку вам давали в связи с вопросом - что могло мотивировать создателей linq ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 01:49 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene New... Никто не строит здание так, чтобы переносить после постройки капитальные стены и менять этажность... Это не значит, что архитектурные аналогии не работают или не на ту ногу хромают. Это всего лишь значит, что хорошие программы не пишутся с первого раза , даже если их архитектура тщательно продумывалась. Брукс считает, что о "хорошести" программы можно судить не раньше, чем после третьего переписывания. Правда, состоит в том, что количество переписываний предсказать нельзя. Выделенный тезис - самое сакральное знание о программировании. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 02:28 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
booby, сколько таинственности :-) знаю я про ORM и упомянул об этом в п. 2. по мне так если ООП плохо сочетается с реляционными БД, которые прекрасно подходят для хранения данных, то горе ООП, а не реляционным БД. пусть меня поправят, если я ошибаюсь, но linq же не ORM, а именно язык запросов на замену sql. Entity Framework - ORM. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 04:58 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
А если linkq лучше для использования с ORM - то чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 05:08 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene NewА если linkqКогда я был маленький, то некоторое время упорно читал неандреталец, но, всё-таки, исправился. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 16:14 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
во первых не стоит смешивать теплое и мягкое: язык sql с реляционными базами. sql и поверх плоских файликов вполне работает. во вторых реально существует огромный пласт задач где вполне оправдан отказ от полноценной реляционной базы. начиная с сайтиков-форумов, заканчивая бигдата задачами, которые зачастую на файликах поверх hdfs делают. как я понимаю микросервисы с идеологией отдельной базы будут под документо-ориентированные субд перетягивать одеяло. так что прототип на файлике вполне оправдан. что касается sql, то пакость застыла в развитии и 10-15 лет никакого развития. если так пойдет и дальше, новомодные фреймворки и его начнут массово вытеснять. spark хорошо продвинулся в плане скрещивания декларативной и процедурной части языка, тогда как у sql по прежнему между декларативной и процедурным "расширением" пропасть и похоже что-то в там развивать уже никто не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 17:11 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Мартин считает разработчиков в массе своей тупыми обезьянами, неспособными освоить sql: http://www.ooart.ru/uploads/book/arhitektura_korporativnyh_programmnyh_prilozhenij_fauler_m.pdf Товарищ Многие разработчики просто не владеют SQL и потому, пытаясь сформулировать эффективные запросы и команды, сталкиваются с проблемами. Помимо того, все без исключения технологии внедрения предложений SQL в код на языке программирования общего назначения страдают теми или иными изъянами. (Безусловно, было бы лучше осуществлять доступ к содержимому базы данных с помощью неких механизмов уровня языка разработки приложения.) А администраторы баз данных хотели бы уяснить нюансы обработки SQL-выражений, чтобы иметь возможность их оптимизировать. По этим причинам разумнее обособить код SQL от бизнес - логики, разместив его в специальных классах. Возможно, с точки зрения принципов построения ККЭ (красного кровавого энтерпрайза) Мартин прав: работаем с теми людьми, какие есть. Вот и вся интрига. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 18:05 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
H5N1, sql и поверх плоских файликов вполне работает. Это всего лишь значит, что вы используете набор плоских файлоков как реляционную БД. астыла в развитии и 10-15 лет никакого развития А сейчас все в программировании застыло. Разве что велосипеды по новому открывают. Берут то, что придумано в 1970-х и выдают за новейший технологический прорыв. пакость А лично вы почему ненавидите SQL? У вас трудности с пониманием математических абстракций? spark хорошо продвинулся в плане скрещивани spark всего лишь очередная библиотека, которая, кстати, использует SQL -- Котовасия, озможно, с точки зрения принципов построения ККЭ (красного кровавого энтерпрайза) Мартин прав: работаем с теми людьми, какие есть. Есть же еще люди с нормальными способностями. Выходит, что они дебилов отбирают специально. А дебилы ведь все равно ничего хорошего не сделают.. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 18:17 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
Eugene New>Есть же еще люди с нормальными способностями Мало, судя по всему. Еще раз: речь об ККЭ, тут не до примадонн, тут массовое производство, где незаменимым не место. Для того и RUP, Agile, и зубрежка шаблонов проектирования и ORM. Подход вполне оправдан при определенных масштабах производства. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 18:24 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
H5N1что касается sql, то пакость застыла в развитии и 10-15 лет никакого развития. если так пойдет и дальше, новомодные фреймворки и его начнут массово вытеснять. spark хорошо продвинулся в плане скрещивания декларативной и процедурной части языка, тогда как у sql по прежнему между декларативной и процедурным "расширением" пропасть и похоже что-то в там развивать уже никто не будет. Куда вы хотите его развивать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 18:28 |
|
Причины ненависти к языку SQL?
|
|||
---|---|---|---|
#18+
maytonH5N1что касается sql, то пакость застыла в развитии и 10-15 лет никакого развития. если так пойдет и дальше, новомодные фреймворки и его начнут массово вытеснять. spark хорошо продвинулся в плане скрещивания декларативной и процедурной части языка, тогда как у sql по прежнему между декларативной и процедурным "расширением" пропасть и похоже что-то в там развивать уже никто не будет. Куда вы хотите его развивать? Хочется императивности, вместо "селект ... фром ... вэрэ..." чтобы "for (int i = 1...,", как у пацанов из одинэс... ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2018, 18:37 |
|
|
start [/forum/topic.php?fid=35&fpage=2&tid=1552206]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 239ms |
total: | 410ms |
0 / 0 |