КБ>>>Есть SqlAlchemy для абрагирования от диалектов SQL. КБ>>>А ORM как таковые в питоне не особо и нужны, в силу динамической типизации языка.
C>>Каким образом динамическая типизация откидывает необходимость в ОРМ? КБ>Главный плюс ОРМ — статическая типизация. Если ее нет, то зачем городить еще что-то поверх SQL?
При чем тут статическая типизация? O/RM позволяет декларативно мэппить реляционные данные на объекты. Если есть объекты, значит должен быть и O/RM.
Ruby ActiveRecord подтверждает это.
C>>Вот в том же Руби есть ActiveRecord — ORM. КБ>Ну есть и есть. Нафиг он нужен то?
1. DB agnostic
2. domain-centric
3. Банальное удобство
Здравствуйте, neFormal, Вы писали:
F>Здравствуйте, vit.rsdn, Вы писали:
F>>>4. Он не позволяет решать весь спектр задач. VR>>в том-то и дело, с доведенными до ума ASP.NEt MVC, Azure Services, ADO.NEt Entity Framework, WCF (думаю, в течении этого года реально), дотнет(C#/F#) позволит предсказуемо качественно решать ВЕСЬ спектр задач для разработчиков (от простых сайтов до сложнейших систем)
F>это невозможно в принципе, т.к. оно заточено под одну платформу..
И чем это мешает?
F>и критерии качества в студию!.
Качество = удовлетворение пользователей/затраченное бабло
Здравствуйте, criosray, Вы писали:
F>>следовательно, дотнет — это панацея и серебряная пуля современного программирования.. C>Нет никаких серебрянных пуль. Просто есть пули, которые позволяют бить, как воробья, так и слона. C>.NET к ним относится.
к таким пулям относятся большинство языков.. те же плюсы..
тем более применение плюсов возможно более широкое, чем шарпа..
разница только в том, что плюсы не пихают куда только можно, а шарп пихают..
Здравствуйте, gandjustas, Вы писали:
F>>>4. Он не позволяет решать весь спектр задач. F>>>Поэтому зависимость от шарпов больше порождена религиозными убеждениями, чем здравым смыслом. C>>Вот это Ваше сообщение порождено религиозными убеждениями, а не здравым смыслом.
C>>Единственное, что не позволяет дотнет — писать драйверы. G>Неправда, см Singularity. G>Это утверждение стоит написать как ".NET не позволяет писать драйверы для существующих ОС".
Я в курсе про сингулярити. Но сингулярити это проект на бумаге, так что не вижу смысла его упоминать...
G>Вообще-то существет только одно область даже потенциально недоступная для .NET — это realtime системы. G>Но эта область настолько узкая, что MS может никогда и не соберется перерабатывать CLR чтобы он давал таие гарантии.
Конечно.
Здравствуйте, neFormal, Вы писали:
F>Здравствуйте, Константин Б., Вы писали:
КБ>>А зачем в питоне преобразовывать recordset в объекты? Чем плохи наборы данных в кортежах?
F>например, чтобы работать с объектами, а не с голыми данными..
А в чем профит-то? Данные они и есть данные, что в виде объекта, что в виде кортежа. Если надо вместе с данными куда-то передать и функции их обработки, то в питоне это не проблема. Даже гибче получается, потому что можно в разных местах разные функции использовать.
F>довольно удобно и почти не заставляет задумываться о структуре базы..
Ну в кортежи тоже не обязательно мапить из БД один-в-один.
Согласен, прогнал
но, для изучения всех этих ништяков, нужно приложить усилие, в следствии чего, многие lazy developers предпочтут питон,руби
C>Здравствуйте, vit.rsdn, Вы писали:
VR>>сишарп, до версии 3.0 имел очень понятный и ясный синтаксис VR>>сча, согласен, как накрутили всяких лямбд, синтаксис становится всё запутанней и запутанней, но и даже сейчас каким-то "непростым" трудно его назвать
C>Ну то, что Вы его не знаете еще не делает его синтаксис непонятным. Наоборот в 3.0 было сделано много именно косметических улучшений. Те же лямбды раньше реализовывались анонимными делегатами.
C>Сравним (кратко):
C>С# 2
<skipped>
C>C# 3
<skipped>
C>Мы недавно переводили проект с С# 2 на С# 3 — код стал гораздо лаконичнее и читабельнее.
Здравствуйте, Константин Б., Вы писали:
КБ>>>Главный плюс ОРМ — статическая типизация. Если ее нет, то зачем городить еще что-то поверх SQL? G>>Нужно как-то преобразовывать результирующий recordset в объекты, а также изменения в объектах записывать в БД. G>>Сам маппинг полей таблиц в свойства объектов уже давно является тривиальной задачей.
КБ>А зачем в питоне преобразовывать recordset в объекты? Чем плохи наборы данных в кортежах?
Потому данные сами по себе в отрыве от доменной модели ценности не несут.
O/RM это ведь не просто мэппинг. Это еще UnitOfWork, кеширование, cascading и т.д.
Здравствуйте, criosray, Вы писали:
C>Здравствуйте, Константин Б., Вы писали: КБ>>Главный плюс ОРМ — статическая типизация. Если ее нет, то зачем городить еще что-то поверх SQL?
C>При чем тут статическая типизация? O/RM позволяет декларативно мэппить реляционные данные на объекты. Если есть объекты, значит должен быть и O/RM.
А зачем городить в питоне объекты для реляционных данных?
C>>>Вот в том же Руби есть ActiveRecord — ORM. КБ>>Ну есть и есть. Нафиг он нужен то? C>1. DB agnostic C>2. domain-centric C>3. Банальное удобство
Раскройте пожалуйста эти тезисы поподробнее. А то слишком уж они неоднозначны.
Здравствуйте, neFormal, Вы писали:
C>>Кстати, гигантский минус питону — отсутствие сравнимой по удобству и мощности среды разработки, аналогичной VS+Resharper.
F>лол сравнивали языки, а сравнили в итоге IDE-шки..
Да тут все подряд сравнивалось. Язык без хорошей IDE имеет малую ценность.
F>вопрос: а какие среды для разработки на питоне ты уже попробовал?.
Glade, Eric, Komodo, и еще штук 5 уж и названий не помню. Все очень примитивно в сравнении с VS+Resharper.
Здравствуйте, vit.rsdn, Вы писали:
VR>но, для изучения всех этих ништяков, нужно приложить усилие, в следствии чего, многие lazy developers предпочтут питон,руби
правильно.. поэтому стоит обвинить в "lazy" всех шарперов, потому что они не хотят изучать внутренности буста..
а ведь нужно всего лишь приложить усилие.. но нет.. они не способны на это.. тьху..
Здравствуйте, gandjustas, Вы писали:
S>>>>Кстати говоря, ORM для C# тоже самописные (не Microsoft). VR>>>Linq2SQL VR>>>LinqToEntitites C>>Это не ОРМ. VR>>>ADO.NET Entity Framework C>>Это ОРМ с натяжкой, т.к. data-centric подход. G>ОРМом нынче считается только hibernate и похожие на него поделки?
Не нынче, а всегда. ОРМ изобретался именно для domain-centric подхода, а МС зачем-то исказила идею и переиначила на более data-centric.
C>>Вообще говоря, сравнивать питон/руби с дотнет это равносильно сравнению с 1С — ускоспециализированное с общего назначения. Про производительность и масштабируемость вообще и речи нет. Особенно, если смотреть на руби. G>Непонятно как сравнивать язык и платформу, для который также есть реализация языка. G>В отличие от 1С питон и руби являются языками общего назначения.
Не являются.
Здравствуйте, criosray, Вы писали:
КБ>>А зачем в питоне преобразовывать recordset в объекты? Чем плохи наборы данных в кортежах?
C>Потому данные сами по себе в отрыве от доменной модели ценности не несут.
Что есть по вашему "доменная модель" и почему для нее обязательно нужны объекты?
C>O/RM это ведь не просто мэппинг. Это еще UnitOfWork, кеширование, cascading и т.д.
... и другие костыли, которые нужны если мы начинаем городить объекты. А если не создавать объекты, то это все и не нужно.
Здравствуйте, Константин Б., Вы писали:
КБ>>>А зачем в питоне преобразовывать recordset в объекты? Чем плохи наборы данных в кортежах?
C>>Потому данные сами по себе в отрыве от доменной модели ценности не несут.
КБ>Что есть по вашему "доменная модель" и почему для нее обязательно нужны объекты?
Google в тооооом направлении -->
Объяснять элементарное и базовое не в моих принципах.
C>>O/RM это ведь не просто мэппинг. Это еще UnitOfWork, кеширование, cascading и т.д.
КБ>... и другие костыли,
Костыли? КБ>которые нужны если мы начинаем городить объекты. А если не создавать объекты, то это все и не нужно.
Мда...
Здравствуйте, Константин Б., Вы писали:
КБ>>>А зачем в питоне преобразовывать recordset в объекты? Чем плохи наборы данных в кортежах? F>>например, чтобы работать с объектами, а не с голыми данными.. КБ>А в чем профит-то? Данные они и есть данные, что в виде объекта, что в виде кортежа. Если надо вместе с данными куда-то передать и функции их обработки, то в питоне это не проблема. Даже гибче получается, потому что можно в разных местах разные функции использовать.
профит в инкапсуляции..
еще например, в django можно при объявлении члена класса указать какого типа будет поле, какие у него настройки, указать некоторые настройки для таблицы и т.п.. Потом вызвать один скрипт и всё это будет создано в базе..
Здравствуйте, vit.rsdn, Вы писали:
VR>Согласен, прогнал VR>но, для изучения всех этих ништяков, нужно приложить усилие, в следствии чего, многие lazy developers предпочтут питон,руби
Ну и славно, если так. Значит меньше низкопробных программистов останется на дотнет. Может и индусы перейдут на пайтон... Очень хотелось бы верить.
Здравствуйте, neFormal, Вы писали:
F>>>следовательно, дотнет — это панацея и серебряная пуля современного программирования.. C>>Нет никаких серебрянных пуль. Просто есть пули, которые позволяют бить, как воробья, так и слона. C>>.NET к ним относится.
F>к таким пулям относятся большинство языков.. те же плюсы..
Естественно. Но у плюсов много минусов (извиняюсь за каламбур).
F>тем более применение плюсов возможно более широкое, чем шарпа..
Если речь о рациональном применении, то нет. Конечно не более широкое. Другое — да, более широкое — уж никак нет. F>разница только в том, что плюсы не пихают куда только можно, а шарп пихают..
Это шутка такая?
Здравствуйте, criosray, Вы писали:
VR>>но, для изучения всех этих ништяков, нужно приложить усилие, в следствии чего, многие lazy developers предпочтут питон,руби C>Ну и славно, если так. Значит меньше низкопробных программистов останется на дотнет. Может и индусы перейдут на пайтон... Очень хотелось бы верить.
хочется побыть илитой?.
изучи буст, покажи шаблонную магию им.Александреску.. и все будут тебе завидовать..
Здравствуйте, shrecher, Вы писали:
S>Здравствуйте, Lloyd, Вы писали:
L>>Здравствуйте, shrecher, Вы писали:
S>>>http://en.wikipedia.org/wiki/Conficker
S>>>
S>>>The worm exploits a known vulnerability in the Windows Server service used by Windows 2000, Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008, and the Windows 7 Beta
S>Самый уязвимый браузер — Explorer, самый безопасный — Firefox
Бред в основном эксперты пишут. Я постоянно работаю с разными браузерами, так вот именно с помощью файерфокс большенство XSRF-атак можно выполнять, кроме того FF медленнее всех работает с DOM, очень часто падает на экзотических джаваскриптах.
К IE только две претензии: медленный и не очень соотвествует стандартам (до 8 версии)
Восьмая версия эксплорера вообще в какашки рвет все браузеры по юзабилити, только работает также небыстро.