love5an: (Default)
Dmitry Ignatiev ([personal profile] love5an) wrote2011-01-19 12:00 am

WPF

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. Он слишком отличается от других языков. Он сложен. А где найдешь программистов на нем? И кто будет этим пользоваться? Кучка энтузиастов?

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

Re: ЧТО БЛЯДЬ

[identity profile] love5an.livejournal.com 2011-01-20 03:48 am (UTC)(link)
>Например? На что бОльшее способно железо?

Ну придумай, например, для чего можно пользовать мультисегментную адресацию.
Например, если лисп-систему запилить - каждому объекту - сегмент(ну может и не каждому, а допустим, каждому пакету).

А для юникс-подобных ОС проблема не в том, даже, что разработчикам ОС лень ворохом сегментов управлять, или что они не могут придумать, куда потенциально это можно прилепить. Проблема в том, что юникс - это сишка, как в терках по ссылке сказали. А Си что предполагает? Тупую линейную память на весь возможный адресспейс. Вот потому, что некоторые(гг) до сих пор любят на Си, и подобном, пописать - мы и имеем такое ограничение. Но то, что ОС подстраиваются под модель сей - говна сорокалетней давности, вынуждает, опять же, на этих самых сях писать. Курица и яйцо, блин.


>Твои лисповые поделки - хуйня того же порядка, ибо тоже оупенсорс. Продать свои поделки ты не можешь, ибо они никому не нужны, поэтому вынужден делать их открытыми, чтобы хоть как-то ЧСВ повысить ;)

На самом деле лет 10 назад мог и продать, гг. Тут проблема не в том, что они хуйня и не нужны никому - я думаю, не хуйня, просто я еще не до конца допилил. Но может и хуйня.
Проблема в другом, если о "продать".
Вот почему дельфя(и борланд вместе с ним) сдохла, как ты думаешь?

>Большинство ОС работает на совершенно разном железе, у которого, обычно, только два уровня привелегий. Поэтому нет смысла заморачиваться с 1 и 2, когда 0 и 3 достаточно, и всё везде выглядит похоже.

Ага, одинаково уебищно. Суть в самой сути юникса, на самом деле, и в сишке как основе юникса. Юникс предполагает что есть кернел-спейс, а есть юзерспейс - а куда в этой модели девать 1 и 2? Ну можно в дровах уровни привилегий сделать разные, но смысла не особо много - только лишные сложности, в контексте юникс-подобных ОС(и винды в т.ч. - кстати она то и работает только считай на x86[-64] - а та же хрень, ч.т.д.).

>По-настоящему крупного бизнеса и не было никогда.
Всмысле? Xerox - не крупный?

Re: ЧТО БЛЯДЬ

[identity profile] alex bubnoff (from livejournal.com) 2011-01-20 11:13 am (UTC)(link)
>>А для юникс-подобных ОС проблема не в том, даже, что разработчикам ОС лень ворохом сегментов управлять
а вот тут конкретный гон. вот сходи, почитай описания архитектур, и скажи, где еще кроме x86 есть сегментная модель памяти. afair - нигде. везде флэт.

>>Ага, одинаково уебищно.
венда, если что, тоже использует только ring 0 и ring 3. и вообще, я не понял, что тебе не нравится. и что тебе в таком случае понравилось бы я тоже не понял.