![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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. Он слишком отличается от других языков. Он сложен. А где найдешь программистов на нем? И кто будет этим пользоваться? Кучка энтузиастов?
Любую корпорацию, даже связанную с высокими технологиями, технологии не интересуют. Ее интересует стабильность и финансовые потоки.
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. Он слишком отличается от других языков. Он сложен. А где найдешь программистов на нем? И кто будет этим пользоваться? Кучка энтузиастов?
Любую корпорацию, даже связанную с высокими технологиями, технологии не интересуют. Ее интересует стабильность и финансовые потоки.
no subject
Date: 2011-01-19 06:13 am (UTC)кстати, забыл еще - паскали, и, мельком - окамль(оказалось - говно, а сколько шуму!) и пролог еще.
и хаскель. но я его довольно смутно понимаю в области монад.
no subject
Date: 2011-01-19 06:14 am (UTC)и этот самый - лого, вот
no subject
Date: 2011-01-19 06:18 am (UTC)>Схему r5rs
...которой уже дохера лет. Ага. Тот самый синдром утёнка.
А вот это вот
>окамль(оказалось - говно, а сколько шуму!)
>и хаскель. но я его довольно смутно понимаю в области монад.
вообще пушка. Хаскель, как и окамл, ты только на имаджбордах видел, ИКСПЕРТ.
no subject
Date: 2011-01-19 06:31 am (UTC)попытался написать даже чето вроде качалки картинок с сайта.
Потому забил болт, потому что не увидел смысла в дальнейшем его изучении, и в практическом применении.
это конечно круто, по фиксированной декларативной спецификации четототам сгенерировать, но
1) это можно и на CL
2) это лежит вне области моих интересов, мне интересны состояние и взаимодействие, а не статические спецификации, а это хаскель затрудняет
no subject
Date: 2011-01-19 06:50 am (UTC)Конечно, можно. Поинт thesz в данном случае состоит в том, что тебе придется писать верификацию руками, а у него это делает компилятор. Причем то, что ты напишешь руками, будет скорее всего медленным, плохо продуманным и далее по правилу Гринспуна.
no subject
Date: 2011-01-19 06:29 am (UTC)> r5rs
Делать выводы по r5rs, в которой даже syntax-case нету - это лютый пиздец.
no subject
Date: 2011-01-19 06:32 am (UTC)no subject
Date: 2011-01-19 06:38 am (UTC)no subject
Date: 2011-01-19 06:50 am (UTC)Только я нихуя не забыл, что Racket это не схема, это Racket, и она со схемой обратно не совместима(не считая #lang).
no subject
Date: 2011-01-19 07:00 am (UTC)