metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-08-04 10:14 am

DLR, IronPython, etc

Наткнувшись в процессе проектирования проги на то, что мне одновременно необходимы фичи обычного C# со статической типизацией и фичи динамических языков, полез смотреть на IronPython/DLR и тому подобное. Ну, с ходу того, что меня интересует (адекватная интеграция с DBMS) я не нашел, GUI сложнее чем MessageBox("Hello, world"); тоже и в связи с этим возник вопрос:
На кого рассчитаны все нововведения в .NET 3.5/4.0?
Всякие там LINQ to SQL/Entity Framework/Expression Trees/DLR и прочее, причем production статус этого всего совершенно непонятен, неизвестно, что отомрет, что будет использоваться, итд. Все примеры для этого, которые я видел, они, мягко выражаясь, на уровне "select * from Customers -> УРА, Я ЗНАЮ SQL".

DLR, Expression Trees - рассчитаны на дизайнеров языков, причем в проекте IronScheme от DLR отказались ("but decided to abandon this idea because the DLR branch the project used became out of sync with the trunk, and also because the DLR, according to the developers, could not support the majority of the Scheme's requirements"). Как будто и так языков мало.

В общем, это все выглядит каким-то откровенным гиковством со стороны Microsoft, похоже там всякие выпускники CS факультетов затрахали в мозг менеджмент до состояния "пусть теребят свои монады как хотят, абы нас не трогали".


Это все при том, что высокоуровневые фичи в .NET как были кривые, так и остались, типа медленной отрисовки DataGridView или over-architected мрака в System.ComponentModel.

[identity profile] w00dy.livejournal.com 2010-08-04 10:48 am (UTC)(link)
Вообще-то expression trees очень вкусная штука. Например в LINQ-2-SQL на пару с IQueryable они используются для построения запросов и выполнения их на стороне сервера. Также они могут использоваться в различных ORM-ах для более эфективной работы с данными. Тобишь умный ORM на запрос new Query ().Where (c => c.Name.StartWith ('i')).Select (c => new {c.Id, c.Name}) ; на сервере будет выполнять что-то аля select Id, Name from Customers where Name like 'i%'; вместо банального select * from Customers с фильтрацией и разбором на стороне клиента.

> медленной отрисовки DataGridView

Этих гридов для wf/asp.net/wpf как собак не резаных, выберите что-то себе по душе уже :)

[identity profile] craneop.livejournal.com 2010-08-04 02:04 pm (UTC)(link)
C# вообще не кошерная вещь. Я к нему вообще прикасаться опасаюсь.

[identity profile] anatoly borodin (from livejournal.com) 2010-08-05 11:19 pm (UTC)(link)
http://en.wiktionary.org/wiki/orm#Danish

По датски, шведски и норвежски "orm" значит "червь". Символизирует.