Ссылка, которую @Kyle Heironimus дал на мысли Ника Каллена об Ареле, содержала следующую строку:
Вы заметите использование производной таблицы в подвыборке.Это ужасно, на мой взгляд.Только опытные программисты SQL знают, как написать это (я часто задавал этот вопрос на собеседованиях, я никогда не видел, чтобы кто-нибудь понял это правильно).И это не должно быть сложно!
Что ж, Каллен объясняет это отсутствием замыкания под композицией в SQL.В некоторых случаях это может быть правдой, но мой опыт гораздо более прозаичен - большинство разработчиков ужасны в SQL.Они знают только самые базовые вещи, эти базовые вещи используются неправильно, поскольку они пытаются искать процедурные решения на языке, основанном на множестве.Мне пришлось спорить о преимуществах базы данных в 3NF в одной компании, в которой я был, с всеми другими разработчиками, они просто не получили ее.Талантливые ребята (большинство из них :), но без понятия о SQL или базах данных.
Поместите его в C #, Ruby или Python.и разработчики снова счастливы.Они могут придерживаться процедурного / ОО-мышления и создавать код, который им нравится.
Я знаю, что это не принесет мне никаких голосов, возможно, с точностью до наоборот, но это мое мнение.Кстати, Арел выглядит интересно.
В качестве дополнения к комментариям, которые я сделал выше, более шести месяцев назад и много использовавшим библиотеку Sequel за это время, я могу сказать, что это действительнопрекрасная вещь, и теперь я чувствую, что использовал бы это впереди использования прямого SQL.Он не только невероятно мощный и позволяет мне делать простые и сложные вещи, не слишком сильно царапая голову (всегда будут некоторые), он может выводить используемый им SQL, а также позволяет мне переходить на SQL, если яЯ чувствую, что мне нужно.
Это никоим образом не аннулирует мои комментарии о понимании SQL большинством разработчиков (недавно мне сказал разработчик, который говорит с другими, что нормализация была пережиткомвремя, когда место для хранения было дорогим ... о дорогой!) только то, что разработка библиотеки Sequel, очевидно, была сделана теми, кто действительно понимает базы данных.Если вы знакомы с SQL, дизайном БД и т. Д., Это даст вам больше возможностей быстрее.Я не могу сказать то же самое о других ORM, которые я использовал, но, возможно, другие подумают иначе.