All streams
Search
Write a publication
Pull to refresh
222
0
Алексей @PsyHaSTe

Зигохистоморфирующий

Send message
Мне не нравится С++ как язык. Мне он кажется перегруженым.

В то время в шарпе я нахожу то, что мне нравится. Не гнушаюсь и фунциональным стилем программирования, linq-ом и прочим, чего в С++ отродясь не было и когда введут в стандарт — не ясно. Не говоря про то, что я не десктоп-разработчик, а ASP.Net/SP.
Несмотря на то, что я C# программист, я считаю, что полезно знать, что сидит внутри, потому что хотя преждевременные оптимизации и зло, при прочих равных лучше выбрать лучший с ТЗ производительности алгоритм, а о критериях этой «лучшести», как правило, приходится судить, учитывая особенности нижележащего уровня.

Если мы можем писать на C# код, который нас устраивает по функциональной корректности, производительности и расширяемости — это даже вредно знать, что там внутри сидит.

А я наоборот считаю, что знать что сидит внутри — никогда не лишне, даже если не пригодится.

Впрочем, я полагаю, конструктивная часть диалога закончилась, а срач в комментах никому еще не помог. Был рад обсудить эту тему. Удачи.
Часть винапи пришлось тащить за собой, но хотя бы не все:
C++ metro application can still access a limited set of Win32 APIs
Вы сначала определите, что такое грамотный уровень, а что такое — неграмотный :)

ИМХО это понятие интуитивно-аксиоматическое, у каждого свое, и как-то конкретно его определить не получится (как точка в геометрии, все множество фигур сводится к точке, но сама точка вводится аксиоматически и определения не имеет).
Гораздо проще здесь опираться на то, что говорит опыт. А опыт говорит мне, что WinAPI в .Net торчит там, куда разработчик залез сам по ошибке.

Согласен, но так ведь случается не всегда.

Самый простой пример — нужно показать что-нибудь на определенном мониторе в многоэкранной конфигурации. Я не спорю, что предусмотреть в .Net весь возможный функционал невозможно, а если бы это и было, то он бы разбух и стал бы похожим на винапи монстром, весом в гигабайты, но потребность в подобном иногда встречается.

Я считаю, что так или иначе винапи отжил свое, и хотя его полуразвалившееся тело запихали под ковер, запах из-под него периодически доносится. Я очень надеюсь на дальнейшее развитие Singularity, Midori и прочих проектов в лице Drawbridge, на C# в качестве системного ЯП и продуманный микроядерный дизайн ОС. Пока что все это лишь в мечтах/исследовательских проектах.
Ну тогда поделитесь опытом, в чем же суть проблемы? Рад буду узнать что-нибудь новенькое. Комментарии за этим же и нужны, не для срача же, право?

А в поток, который задан текущим SynchronizationContext — это раз.

афайк контекст выставляется в таске, но как правило опускается, и используется контекст вызывающего кода — разве нет?
Давайте сначала формально объясним, что такое «закон применим»

Очень просто. Закон применим, в данном случае: «для грамотного проектирования своего уровня разработчику нужно знать уровень ниже (апи ОС) и уровень выше (кейсы использования разрабатываемого слоя).

На счет Silverlight все просто: это не только не WinApi, но и не .Net даже. Поэтому, говорить, что из .Net торчит WinAPI — это неверно.

Из .Net торчит винапи хотя бы в том смысле, что он гвоздями прибит к нему. Конечно, есть Mono, который в этом плане свободен, но в нем 50% функционала обычного фреймворка в стадии coming soon.

Хотя после последних заявлений МС об опен-сорсовости и слухов о покупке Xamarin можно надеяться на постепенный переход в стадию большей мобильности.

При чем тут Silverlight до сих пор не ясно :)
await позволяет ожидать асинхронную задачу, причем если она свалится, то эксепшн будет передан в вызывающий поток, как будто оно произошло синхронно. Подробнее можно ознакомиться тут
Никогда не испытывал проблем с контролем ошибок в многопотоке после появления async/await
Еще раз, закон дырявых абстракций применим к любым абстракциям, а любое АПИ — это набор абстракций, сгруппированных для решения какой-либо задачи.

Насчет Silverlight не очень понял, что имелось ввиду…
Программисты WinAPI обязаны знать об абстракциях ниже WinAPI, по этому же правилу, представлять, что такое HAL и пр.

Ну а прикладные программисты работают с АПИ системы, поэтому лезть глубже него им не нужно, хотя и полезно.

Все это никак не противоречит изначальному утверждению, что на кривом винапи нельзя построить изящного программного интерфейса. А вот на WinRT можно, вопрос только в том, чтобы на него пересадить пользователей.
Он применим к любым абстракциям, а весь прикладной софт и большая часть системного построены на абстракциях. Чтобы система адекватно функционировала, она должна знать об абстракциях, используемых уровнем выше и ниже. Поэтому няшность .Net лишь частично компенсирует кривость винапи.

Одним словом, на кривом фундаменте прочный и красивый дом не выстроить.
Когда-нибудь слышали о законе дырявых абстракций?..
Жаль, что вы не спросили насчет C# в качестве системного ЯП и развитие Singularity. О них-то он наверняка слышал.
Не заменили, а спрятали под ковер.

И да, я .Net-программист. И именно по этим соображениям. Как рекламировала Java: Write once, run anywhere
Это как раз то, что нужно. АПИ очень изящное, все методы, выполняющиеся дольше 50мс обязаны быть асинхронными и не вешать комп… Но, есть один нюанс — все современные хитросделанные программы используют различные костыли этого самого винапи и гвоздями к нему прибиты, поэтому не идут. Сами посмотрите, насколько успешны Surface с WinRT, на которых не идет какая-нибудь KB2. А раз не идет RB2, то система — фигня… Примерно так думает рынок. Я, наоборот, всеми руками ЗА WRT. Но, селяви. Без обратной совместимости с ненавистным апи платформа не взлетит.
Не назовут :) Почти уверен. Нужно же показать, что это «принципиально новая технология (но с возможность запуска старых приложений)™»

но если будет называться также… Я все равно буду считать её не-виндой, как ->NT
То есть винда будет вечной? Потому что это единственное утверждение, противоречащее моему «когда-нибудь винда умрет».

А к тому, что это случится скоро — скажем так, есть симптомы. Тем более, что активно пилятся в research операционки-претендентки.
То есть винапи это круто?

Нет, для пользователей-то может и все равно, только вот для разработчиков это просто ужас. Половина параметров — необязательная, вторая половина — аргументы, в которые нужно передать определенные значения иначе будет ошибка, третья половина — 100500 странных структур, передающихся по указателю. Не говоря про зоопарк функций: почти каждая функция существует в двух вариантах: aaa и aaaEx, кроме того, и это количество удваивается для функций с «юникод» и «не-юникод» строками, из-зачего винапи чуть более, чем полностью использует макросы, чтобы хоть как-то справится с этим адом.

И вы хотите сказать, что все это менять не надо?
Винда не вечна, и скорее на последнем издыхании, чем в начале жизни. Будет принициально новая ось от МС, вопрос только в сроках. Я ставлю что примерно через 5 лет будет отход от винды, как было DOS -> WIN.
Мне очень нравится эта флешка. Очень занимательна, после нее чувствуешь себя еще более ничтожным, чем после просмотра таких вот роликов. Всем любителям космоса в целом и физики в частности посвящается

Information

Rating
Does not participate
Registered
Activity