Как я отношусь к .NET


21 0

Когда .NET только анонсировали, то многие считали, что Microsoft просто придумывает альтернативу Java и хочет задавить конкурента непонятно зачем и почему. Я не увидел в этой разработки ничего гениального и удобного с точки разработки программ. Код, созданный в Visual Studio .NET выглядел не эстетично, и главной причиной было то, что все находилось в одном файле – сгенерированный дизайнером код и написанный программистом. Это было ужасно.

Первая версия .NET действительна была похожа на то, что ее делают ради кроссплатформы и Джоел на своем блоге даже написал знаменитую заметку о том, что Microsoft теряет контроль над самым главным своим состоянием – над API. В интернете быстро появился открытый проект Mono, который реализовал .NET для Linux. Если я не ошибаюсь, то первую версию он реализовал полностью. Сейчас я могу сказать, что Microsoft не потеряла контроля над API, а постепенно получает над ним контроль и компания не создала конкурента для Java, она создала хорошего помощника для неуправляемого кода, написанного на C++ или Delphi.

Разработчики и архитекторы Microsoft наверно тоже поняли ошибку или просто мы не поняли их начальной задумки, но курс .NET резко изменился после 1.1. Нет, язык остался тот же, но я увидел.NET по новому, его начали по другому позиционировать. Начиная с .NET 2.0 платформа не стала уже направляться на кроссплатформенность и стала больше направляться на разработку приложений для Windows. Об этом говорят и появившиеся в третьей версии такие технологии как WCF и главное WPF (Windows Presentation Foundation о котором я писал на Hackish Code) . Технология Windows Presentation Foundation направлена на создание ... как это сказать по русски ... (по английски часто пишут stunning interfaces), наверно ошеломляющих интерфейсов для Windows и использования всех преимуществ платформы Avalon.

Именно WPF и Avalon будут серьезные проблемы при портации приложений в Mono. И чем больше будет приложений с WPF, тем хуже будет портация, потому что Avalon – это движок, присущий Windows и его портировать будет проблематично. Да и не нужно портировать, его нужно использовать в той системе, для которой технология и создавалась.

Обратите внимание на новость Более глубокий взгляд Visual Studio 2010, которую я писал опять же для Hackish Code. В последнем абзаце я указываю явную направленность Microsoft при создании среды разработки следующего поколения Visual Studio 2010. Компания уже не конкурирует с Java и не пытается перетягивать этих разработчиков, она конкурирует сама с собой, т.е. с VC 6.0 и хочет завоевать лояльность своих же пользователей и перевести их на C#, чтобы создаваемые приложения были лучше и безопаснее.

Зачем компании Microsoft нужно поощрять разработчиков писать под .NET? Я могу только догадываться, и мои догадки связаны со всеми последними инициативами Microsoft. Компания борется за создание безопасных и надежных приложений не только внутри компании и не только своих продуктов, но и всех продуктов на платформе Windows. Мне кажется, это главная причина. Ведь когда у пользователя зависает XXX программа, то пользователь ругается матом не на производителя программы XXX, а на Microsoft. Плюс, если программы для Windows будет надежны, то можно говорить о надежности и самой платформе. Именно поэтому компания помогает разработчикам и даже конкурентам.

Вторая причина - она хочет, чтобы не было проблем при переходах с одной версии на другую. В каждой версии Windows есть недокументированные возможности или какие-то черные ходы, которые могли быть оставлены по ошибке, по случайности или просто из-за банальной спешки. Недокументированные возможности остаются не потому, что компания пытается скрыть что-то от нас и не нужно использовать эти возможности, потому что в следующей версии ОС этих возможностей может не быть. Когда Microsoft пытается убрать мусор, который оставался в ОС, то программы, в которых программисты зачем-то использовали недокументированные возможности перестают работать и опять ругают Microsoft.

C++ предоставляет слишком много возможностей, а в управляемом языке система может управлять кодом и если какая-то возможность не нужна или ее посчитали небезопасной, ее проще исключить и это будет выгодно как сторонним разработчикам (их программы будут работать и в будущих версиях Windows), так и компании Microsoft (будет меньше мата в их сторону). Да, мы все еще можем в C# вызывать через маршалинг систему и использовать недокументированные возможности напрямую, но я еще раз говорю – НЕ ДЕЛАЙТЕ ЭТОГО. Не создавайте проблем себе и компании Microsoft. Компания ничего не скрывает от нас. Если что-то не включено в официальный API, значит на это были причины и когда причины изменятся, описание будет включено в MSDN и SDK.

Да, C++ заменить на все 100% не получиться и он будет жить. Точно так же, как Assembler будет жить еще долго в сердцах программистов. Но эти платформы могут дополнять друг друга, и программисты получат максимум преимуществ от ОС Windows.

Насколько плохо я воспринял первую инициативу по созданию .NET и первую реализацию, как насколько контрастно и положительно я воспринял вторую версию и удобство ее реализации. Код оформлять теперь намного удобнее, благодаря partial классам, оформление свойств стало удобнее и проще. .NET Framework 3.0 и 3.5 продолжили традицию делать разработку удобнее и проще, а не пытаться заменить Java.

Платформа .NET не пытается заменить Java, чтобы захватить мир, с ее помощью компания хочет сделать разработку под Windows проще, а создаваемые программы безопаснее. Если кто хочет портировать CLR на другие платформы, никто не запрещает. Приложения Win32 тоже можно выполнять в Linux из эмулятора, но это же не говорит о том, что Microsoft потеряла контроль над своим API! А то, что приложение .NET можно будет выполнить в Linux благодаря Mono, тоже ничего плохого не сделает, от этого все только выиграют. И этот подход мне импонирует и нравится.

А свое первоначальное негативное отношение к .NET я связываю с тем, что его неправильно позиционировали в прессе, да и сама Microsoft писала непонятно что в релизах, только общие слова и никакой конкретики.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Overdrive

22 Ноября 2008

Примерно месяц назад проходила акция от MS. Подпишись на подписку и получи 8 книг. Так большая часть этих книг про NET.


мальчик из MicroSoft

22 Ноября 2008

А вы бы хотели разрабатывать не на платформе дотНЕТ, а реализовывать функционал САМОЙ этой платформы?


Михаил Фленов

22 Ноября 2008

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


MasDen

22 Ноября 2008

Платформа .NET заменила для меня Delphi. Благо теперь на одном языке можно писать различные приложения. Да, для их исполнения нуен установленный .NET Framework, но как мне кажется у многих он стоит, а в Vista он уже предустановлен. Так что в этом проблем не вижу. .NET отличная вещь, с каждым разом Microsoft выпускает все более качественную платформу, так что .NET будет жить, а лично я буду на нём разрабатывать свои приложения, чего и вам всем желаю.


Alexo

23 Ноября 2008

Благо теперь на одном языке можно писать различные приложения.


намек на то, что ни один язык не позволяет разрабатывать различные приложения?)


pat

24 Ноября 2008


Первая версия .NET действительна была похожа на то, что ее делают ради кроссплатформы

Сам понял, что написал? Хотя конечно, есть даже разработка от MS для FreeBSD (Rotor)


Вторая причина - она хочет, чтобы не было проблем при переходах с одной версии на другую.

Я прав, что между версиями .NET нет обратной совместимости?


Платформа .NET не пытается заменить Java, чтобы захватить мир, с ее помощью компания хочет сделать разработку под Windows проще
, чтобы захватить мир.... :)


Зачем компании Microsoft нужно поощрять разработчиков писать под .NET?

Элементарно! Чем больше программистов приманит к себе платформа, тем больше программ для Windows, тем популярнее ОС. Это конечная цель MS.


Вообще платформа .NET - это копия платформы Java, как ИДЕИ! Сама платформа Java собрание идей, существовавших до ее появления. .NET очень стремительно развивается и это не может не радовать, может не радовать замены WinForms на WPF (но это в стиле MS).


Михаил Фленов

24 Ноября 2008

1. Я то прекрасно понял

2. Обратная совместимость у .NET есть, только причем тут это? Перестань выдерать слова из текста, а читай текст. В абзаце прекрасно написано уже в следующем предложении про ОС, значит имеется ввиду переходы с одной версии на другую именно ОС, а не .NET.

3. "Чем больше программистов приманит к себе платформа, тем больше программ для Windows". С точностью наоборот - чем больше программ под Windows, тем больше приманит к себе платформа. А программы под Windows разве пишутся на .NET? Почему нельзя писать на Delphi или C++?

Вообще платформа .NET - это копия платформы Java, как ИДЕИ


Как идеи? Идея - виртуальная машина, тогда можно сказать, что .NET - это копия PHP как идеи, потому что там тоже что-то есть виртуально машинистого. И Java копия, как идеи. Ты тут же пишешь, что Java сама является собранием идей. Я тебе уже говорил, не нужно сравнивать Java с .NET. Ты уже пытался это делать, но это бессмыслено.


pat

24 Ноября 2008

1. Сам подумай чем грозит MS кроссплатформенность....

2. Я ничего не выдерал... Просто спросил, насколько я знаю .NET 2.0 не совместим с .NET 1.1. Поэтому и задал вопрос... Я про ОС не спрашивал, спросил про платформу.

3. А откуда же возьмутся программы, если нет программистов? А программы под Windows так же пишутся на .NET. Писать можно и на asm'e, только что-то это не очень распространено. Все дело в инструментах.

Следуя твоей логике можно сказать, что тачка это копия Mercedes. Я же говорю, что Mercedes копия BMW, копия именно набора ИДЕЙ. Т.к. наличия у тачки колеса не делает ее крутой машиной! а вот собрание идей типа, коробка автомат, abs и тд дает хороший результат.

Блин, я не пойму почему не нужно? Это во-первых, во-вторых я ничего не сравниваю... Мне конечно больше нравится ездить на BMW, но если хотят дать Mercedes я не откажусь....

У меня складывается такое, ощущение, что если я скажу, что-то против, то ты воспринимаешь это как покушение на твой авторитет или что-то в этом роде. Ну конечно можешь опять не публиковать этот пост.


Михаил Фленов

24 Ноября 2008

1. Если любую программу можно выполнить на любой ОС, зачем тогда платить за Windows?

2. Ты выделил кусочек текста с помощью quote

3. Вот и вдумайся, что ты сам же и написал. Главное - программисты, а не платформа. С тем же успехом, можно затягивать в программирование Win32 и результат будет тот же. Зачем затеивать такой дорогостоящий проект как .NET?

Проблема в том, что ты даже не сказал против. Давай по пунктам:

1. ты просто спросил, я просто ответил

2. ты тоже просто спросил, просто зачем-то вырвал кусок из моего текста. Если не относится к тексту, а просто хотел спросить про переносимость, то зачем выдерать отрывок. я сразу начинаю думать, что у меня там лажа и ищу ошибку

3. вот самое главное, где ты высказываешь свое мнение, очень корректное и интересное, просто я считаю, что не нужно сравнивать с Java. Идеология в корне у всех одинаковая - создать программу, но это не значит, что их нужно всех под одну гребенку. Я тебя уверяю, что пропасть между Java и .NET слишком большая.

Я не пытаюсь тебя ущемить в правах, пиши и высказывайся. И тут я могу твои же слова направить в твою сторону:  У меня складывается такое, ощущение, что если я скажу, что-то против, то ты воспринимаешь это как покушение на твой авторитет или что-то в этом роде. :) Раз ты пишешь на моем блоге, то мне нужно же как-то отвечать, или мне просто игнорировать твои сообщения?


pat

24 Ноября 2008

1.3. Подожди, программисты же не быдло! иначе, я же говорю, все пользовались asm'ом до сих пор. Ты же пользуешься VS, а не XDeveloper, т.к. первый дает больше возможностей с меньшими телодвижениями. Я просто уверен в том, что основная цель - это привлечь программистов к Windows, зачем тогда раздавать VS (express вроде).

2.2 Во-первых, если бы была лажа я бы так и написал :). Во-вторых, я спросил про совместимость .NET исходя из того, что я чаще обновляю платформу, чем ОС. В итоге, что получается, ну не трудно мне поставил я на XP 2.0, но потом же появилась 3.0, 3.5 скоро 4. И все это мне пришлось ставить. ОС у меня так и осталась XP. Так что мне как пользователю пофиг, что этот софт работает и на 95 и на Vista.

2.3 Я тебе говорил про идею. Что значит просто? Вот опять ты утрируешь, все мы состоим из молекул. Ты ответишь, что из-атомов, я что из кварков... Суть не в этом...

Ну последнее ко мне не относится, т.к. это твой блог, а не мой. Я это написал для того, чтобы у тебя не возникло ощушение, что я это моя цель. Я просто выссказываюсь, когда не согласен в чем-то. Не вижу смысла писать, что-то типа: "Да! согласен на все 100%! Зайцы самые красивые". Ну да ладно это к теме не отностися.


Михаил Фленов

24 Ноября 2008

1.3 Я до сих пор не увидел связи. C++ тоже раздают на халяву. Для чего же тогда тратить деньги на создание .NET и притягивать еще каких-то программистов? На самом деле я даже не понимаю каких, когда большинство так пишут под Windows, а остальных не затянешь пряником?

2.2. Ну а зачем же ты выдирал отрывок из текста? Это вводит лишние заблуждения.

2.3. То есть до твоего уровня абстраеции можно опуститься, а до моего нельзя? Поэтому чтобы не определять уровень абстракции, я и предлагал тебе не сравнивать языки.

Так и высказывайся дальше я с удовольствием читаю. Если по теме я никогда не удаляю и не по теме тоже стараюсь отвечать. Раз мне пишут, значит я отвечаю.

Ну последнее ко мне не относится, т.к. это твой блог, а не мой.


Ну а почему тогда пишешь мне такое? Если ты не хочешь, чтобы я отвечал на твои сообщения, не пиши или скажи, я не буду отвечать.

Ты заметь, ты ни в одном вопросе не имел точки зрения, противоположной со мной. Самое противоположное в нашем суждении - это твое высказывание Чем больше программистов приманит к себе платформа, тем больше программ для Windows, тем популярнее ОС и с ним спорить в целом нельзя. Я согласен с ним. Но проблема в том, что ты отошел тут от темы. Ты говоришь о программистах вообще, но заметка про .NET и я говорю с точки зрения разработки .NET и это пункт 1.3. Да, программисты - главное, но они уже были у MS и тратить деньги на дорогостоящий .NET только ради привлечения еще кого-то бессмысленно и не выгодно. Можно развить существующую среду разработки и С++ или VB, который тоже по своей идее - виртуальная машина.


pat

24 Ноября 2008

На халяву раздают компилятор C++, а среда разработки это не компилятор! Подожди а зачем, тогда MS предлагает изучать VS и .NET в университетах. Каких программистов??? Тех, которые еще учатся в школе, институте... .NET уже 8 лет, большое распространение на desktop'е он не получил (пока), зачем тогда тратить деньги? Безопасность?

Я не сравниваю языки я сравниваю платформы! Платформы - это в полне нормальный уровень абстраеции. Не убедил, короче. Так я и не понял почему нельзя сравнивать две платформы.

В чем я отошел от темы? .NET что в вакууме существует?? ОС, программисты, IDE - это все очень связано с самой платформой. Короче все что я хотел сказать, что безопасность - не есть первоцель .NET.


Ты заметь, ты ни в одном вопросе не имел точки зрения, противоположной со мной.

Я сказал в общем, не только про этот пост.


Сергей

24 Ноября 2008

pat

Сам подумай чем грозит MS кроссплатформенность....

Я так понимаю, ты созываешь всех на революцию против Майкрософт?

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

Элементарно! Чем больше программистов приманит к себе платформа, тем больше программ для Windows, тем популярнее ОС. Это конечная цель MS.

Пример с блокнотом: если я напишу блокнот намного удобнее и функциональнее, чем Notepad++, то есть шансы что моя прога станет еще популярнее. Так и с платформами: программеры выбирают удобство для себя и пользователей.


Михаил Фленов

24 Ноября 2008

Короче все что я хотел сказать, что безопасность - не есть первоцель .NET.


Ну не только это, иначе бы ты не писал так много, но я отвечу только на это, раз это самое главоне. И тут опять же невозможно поспорить с тобой, потому что я не говорил, что только безопасность. Я говорил только:

и мои догадки связаны со всеми последними инициативами Microsoft


То есть я говорю только о последних деяниях компании, а не вообще. Конечно же, помимо этого существуют:

1. Удобство разработки

2. Скорость разработки

3. Сделать скачок вперед за счет того, что создается новый язык, в котором отбрасывается весь мусор, который накопился в С++ и береться все лучшее от С++ и добавляется лучшее из других языков


notez

24 Ноября 2008

2pat

привлекать новых программистов смысла нет, заманить удасться единиц, а затраты максимальны :). большинство Java кодеров остануться на java и большинство сишников в linux остануться сишниками. их сложно перетянуть даже пряником. разые что золотым пряником.


pat

24 Ноября 2008

2notez
я же не пойму программистов существует определенное количество??? Новых не появляется?


pat

24 Ноября 2008

2Сергей


Я так понимаю, ты созываешь всех на революцию против Майкрософт?

Это ты между чьих строк прочитал? Я лишь сказал, что MS кросплатформенные приложения не нужны...

Пример с блокнотом как-то противоречит тому, что я сказал? Ты же будешь делать блокнот еще лучше для чего??? Либо получение опыта, либо привлечение клиентов.


мальчик из MicroSoft

24 Ноября 2008

Михаил, а вы в курсе на каком ЯП создана платформа ДОТНЕТ? И если да, то насколько хорошо владете этим ЯП?


Михаил Фленов

24 Ноября 2008

2мальчик из MicroSoft

Очень странно, что ты не пишешь в обратную связь мне на мыло


Alexo

24 Ноября 2008

[qoute]Я лишь сказал, что MS кросплатформенные приложения не нужны...[/qoute] Тыж вроде говорил, что МС яву копирует? А Это уже расхождение.


pat

25 Ноября 2008

2Alexo
Читай Маркса! не будет расхождений в 2 словах...


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне