WPF

Jan. 19th, 2011 12:00 am
love5an: (Default)
[personal profile] love5an
WPF охуенно. WPF круто, нереально круто.

GTK+ - говно. Qt - говно. wxWidgets - говно. Tk - говно. Pure Winapi, MFC, ATL, WTL - говно. Windows.Forms - говно. Cocoa - говно. SWT - говно. Swing - говно. Все это блевотное говно.

А WPF пиздато.

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

И, да, это проблема не только WPF - это проблема практически всех продуктов и технологий Microsoft.

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

MS, например, прямым текстом признается, что семантика .NET-языков, и самого дотнета - слишком примитивна, убога и нерасширяема, и недостаточна для красивой реализации dataflow gui-фреймворка:
http://msdn.microsoft.com/en-us/library/ms750441.aspx#System_Windows_DependencyObject
Отсюда все эти костыли типа DependencyObject и прочая.

Кроме того, рефлекшн, и вообще, динамика - один из ключевых столпов WPF, в самом дотнете совершенно неюзабельны. Объектная система невероятно убога и примитивна. Интроспекция - очень сильно ограничена и неудобна в использовании. Система типов скорее мешает разработке, чем помогает. Про функциональное программирование я вообще промолчу(хотя где-то версии с третьей дотнета с этим стало получше, конечно).

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


На Common Lisp парадигмы event-driven и dataflow программирования ложатся идеально.
http://common-lisp.net/project/cells/

И динамичности в нем предостаточно.

Но Microsoft никогда бы не стала реализовывать свой передовой фреймворк на платформе типа CL. Он слишком отличается от других языков. Он сложен. А где найдешь программистов на нем? И кто будет этим пользоваться? Кучка энтузиастов?

Любую корпорацию, даже связанную с высокими технологиями, технологии не интересуют. Ее интересует стабильность и финансовые потоки.

Date: 2011-01-18 11:42 pm (UTC)
From: [identity profile] love5an.livejournal.com
Разумеется, не гениальность. Вернее, я бы сказал, ее не видно за лесом кривых костылей.

Сама идея dataflow gui - гениальна. И поэтому WPF охуенно.

>Хорошие инженерные решения помимо прочего отличает простота достаточная для достижения всех поставленных целей.

Вот тут согласен. Но это если с нуля все писать. У MS была некая точка отсчета, и она и привела к лесу костылей и сложности. Гениальность столкнулась с реальностью, так сказать.


На CL, я подозреваю, оно все выглядело бы гораздо приятнее и проще в использовании.

Date: 2011-01-19 02:46 am (UTC)
From: (Anonymous)
> я подозреваю

Вот это пиздец. Полностью согласен с началом поста, ничего не имею против CL, но вызывают искреннее недоумение вот такие тезисы из разряда: "оно все хуево, но вот только взяли бы CL (Haskell, еще какую-нибудь ЙОБУ) и все сразу стало бы пиздато". Аргумент один - "я подозреваю".

Date: 2011-01-19 05:42 am (UTC)
From: [identity profile] rigidus.livejournal.com
давай пост о нем :)

Date: 2011-01-19 05:18 pm (UTC)
From: [identity profile] jtootf.livejournal.com
неплохая, кстати, штука. было бы здорово увидеть сравнение с Etage и вообще FRP (раз ты уже взялся сравнивать реактивные модели)

Date: 2011-01-19 09:57 am (UTC)
From: [identity profile] 7ocb.livejournal.com
Разумеется, не гениальность. Вернее, я бы сказал, ее не видно за лесом кривых костылей.

Да. Это как если бы кто то назвал гениальным изобретение электроинструмента. Да, электроинструмент - это очень клево. До тех пор, пока мы не извлекаем это из контекста современной реальности с электричеством в розетках и помещаем это в контекст в котором не существует электростанций а существуют только велосипеды генераторы.

До перемещения в другой контекст: "электроинструмент это практически гениально!"
После перемещения: "боже, какой идиот придумал это? вместо того, чтобы просто пилить, теперь нам надо сначала крутить педали и потом пилить?".

То есть во втором случае гениальное нечто перестает быть гениальным из за того, что получение пользы от него становится достаточно сомнительным.

Метафора не идеальна, но с большего она отражает мою мысль.

Profile

love5an: (Default)
Dmitry Ignatiev

June 2020

S M T W T F S
 123456
78910 111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2025 07:49 pm
Powered by Dreamwidth Studios