Сайт Алексея Муртазина (Star Cat) E-mail: starcat-rus@yandex.ru
Мои программы Новости сайта Мои идеи Мои стихи Форум Об авторе Мой ЖЖ
VB коды Статьи о VB6 API функции Самоучитель по VB.NET
Собрания сочинений Обмен ссылками Все работы с фото и видео
О моём деде Муртазине ГР Картинная галерея «Дыхание души»
Звёздный Кот

Самоучитель по VB.NET
Глава 2.

VB .NET: взгляд без страха и паники

На последнем году учебы в университете я прошел обязательный курс, который назывался «Индивидуальные и организационные аспекты информационных технологий» (или что-то вроде этого). Тогда я не понимал, кому он нужен. Теперь мне ясно, что это был один из самых важных предметов за все время учебы.

Нельзя говорить об изучении новых технологий и забывать о том, как эти технологии влияют на людей.

В конце предыдущей главы я указал на то, что архитектура .NET представляет собой радикальное изменение парадигмы — это путь программирования, который окажется новым для большинства программистов Visual Basic. Хотя я еще не готов к подробному обсуждению технологии, позвольте мне кратко представить те изменения, о которых пойдет речь.

 

Господи, они сломали VB!

В основу архитектуры .NET заложена новая исполнительная среда Common Language Runtime (CLR). Тема исполнительной среды вообще является «больной» для многих программистов VB. Сначала казалось, что Visual Basic является «неполноценным» языком, поскольку он использовал огромную исполнительную среду, которая вроде бы не нужна для программ C++. Потом выяснилось, что многие программисты C++ тоже работают с большими исполнительными средами (например, библиотеками поддержки MFC1). Только программисты, работающие на уровне API (Application Programming Interface), и те, кто способен освоить все тонкости ATL (Active Template Library), создают компоненты и приложения, не требующие исполнительных сред. По своим размерам исполнительная среда CLR значительно превосходит старые среды VB и MFC2. Если верить Microsoft, при разработке CLR были поставлены следующие цели:

1Microsoft Foundation >

2Сравнение усложняется тем, что в этих языках используется не только базовый модуль среды (такой, как 1,3-мегабайтная исполнительная среда VB6 или 1-мегабайтная среда MFC), но и разные вспомогательные DLL поддержки OLE или С. Точный размер .NET мне не известен, но предполагается, что он будет существенно больше и счет пойдет на десятки мегабайт.

Мы еще вернемся к этим и другим целям1, а пока давайте посмотрим, как они повлияли на синтаксис языка.

Язык .NET-программирования должен поддерживать следующие возможности (наряду с другими):

Эти возможности входят в спецификацию Common Language (CLS, Common Language Specification) и должны поддерживаться всеми .NET-языками.

Visual Basic не поддерживает ни одну из этих возможностей.

Перед разработчиками Microsoft встала интересная задача: как «подправить» существующие языки для работы и обеспечить поддержку новой среды CLR, на которой строится вся архитектура .NET. Перед ними открывалось несколько возможных путей.

Затем разработчики Microsoft приняли смелое, но весьма спорное решение. Если уж обратную совместимость сохранить все равно не удается, так почему бы не привести язык в порядок? Под «приведением в порядок» я имею в виду чистку синтаксиса и реализацию новых возможностей (например, жесткой проверки типов), которых так долго не хватало профессиональным программистам. Даже предвзятый поклонник VB не рискнет утверждать, что синтаксис команды Line выглядит логично. Часть 3 этой книги полностью посвящена специфике изменений языка и адаптации готовых программ. А пока я перечислю самое важное, о чем необходимо помнить.

1Microsoft также провозгласила, что приложения, написанные для CLR, будут работать на любой платформе с поддержкой этой исполнительной среды — слышались туманные намеки, что CLR будет существовать в Apple, Linux и даже на карманных компьютерах Palm. Насчет Apple я готов поверить, а что касается остального — там посмотрим.

2Я лишь в общих чертах посмотрел, как эти расширения были реализованы в VC++. Признаюсь, первое впечатление не слишком благоприятное. Выглядит громоздко и неудобно.

3Произносится «си-шарп».

Все, что вы знали, устарело

Я начал эту главу с упоминания человеческого фактора технологии. Вероятно, типичный читатель этой книги программирует на Visual Basic 5 или 6, а его стаж составляет от нескольких месяцев до такого же срока, как и у меня2. Как же отреагирует программист на известие о том, что язык, в котором он достиг определенного мастерства, претерпел столь радикальные изменения? Возникает немало вопросов.

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

1В части 3 я уделяю Migration Wizard значительно больше внимания. То, что я видел, выглядит неплохо, но вряд ли мастер окажется настолько хорош, чтобы преобразование больших или использующих нетривиальные возможности приложений обошлось без существенной дополнительной работы и тестирования.

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

Наверное, многим читателям даже не хочется думать о таких деликатных вещах. А кому-то покажется, что меня заносит — ну какое отношение эта психологическая дребедень имеет к изучению VB .NET?

Самое непосредственное.

Ваше личное отношение к новой технологии сильно влияет на то, насколько быстро и хорошо вы ее изучите.

Если смотреть на VB .NET с затаенным страхом, вам будет нелегко избавиться от балласта устаревших приемов и подходов. Многие нововведения покажутся ошибочными или бессмысленными. Возможно, вы присоединитесь к тем, кто осудит изменения и потребует, чтобы Microsoft вернула язык в прежнее состояние... или даже к противникам всей платформы .NET.

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

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

1. У вас есть время: внедрение .NET сопряжено с глобальными изменениями парадигмы программирования. Освоить такую технологию за день-другой невозможно. В этом заключается одна из причин, по которой Microsoft так широко распространяет сведения о новой технологии и бета-версии программ. Понятно, что освоение .NET потребует немалых усилий. Все остальные находятся в такой же ситуации, как и вы.

2. VB .NET в конечном счете помогает лучше программировать. Эта технология упрощает тестирование и отладку, а также долгосрочное сопровождение приложений. Ваши задачи будут решаться проще и быстрее, чем сейчас.

3. .NET ставит всех в равные условия. Для новичков и программистов средней квалификации, которые не представляли, как им угнаться за экспертами, это бесценный подарок — теперь все начинают примерно с одного уровня. Конечно, кое-кто обладает преимуществами. Например, образование в области компьютерных технологий поможет быстрее усвоить некоторые концепции, но в целом перед всеми открывается замечательная возможность приобщиться к передовым технологиям1.

1Конечно, этот аспект .NET не радует многих сегодняшних «экспертов» и «гуру», — ведь им придется прилежно работать, чтобы достичь мастерства в новой области, не говоря уже о возросшей конкуренции. Я добровольно сложил с себя звание «гуру» в тот момент, когда впервые увидел .NET, но постараюсь снова стать достойным этого титула.

Программирование как бизнес

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

Раскрою небольшой секрет... я получил высшее образование в области компьютерных технологий, но за время учебы в Калифорнийском университете я также получил степень бакалавра в области электроники. Одним из важнейших предметов была инженерная экономика, обязательный курс для всех студентов-электронщиков. Из этого курса я узнал, что профессиональный инженер всегда должен осознавать и учитывать экономические последствия своих решений — то есть видеть за технологией бизнес. Полагаю, это правило в равной степени относится и ко всем программистам1.

История Visual Basic доказывает этот тезис. Почему Visual Basic пользуется такой популярностью, хотя в течение многих лет программисты (особенно программисты C++) называли его «игрушечным языком»? Ответ ясен: потому что на Visual Basic разработка приложений обходится дешевле, чем на любом другом языке. Visual Basic стал самым распространенным языком Windows-программирования по чисто экономическим причинам. Многие программисты C++ (в том числе и я) переходили на Visual Basic, потому что, несмотря на отсутствие некоторых возможностей, которые мы считали важными (например, жесткую проверку типов), написание, отладка и тестирование программного кода происходили на порядок быстрее, чем в C++. Изобилие общедоступных и недорогих программных компонентов VBX2, а затем и ActiveX (OCX) позволяло наделять приложения Visual Basic широкими возможностями при очень малых затратах.

Взгляните на любой продукт или технологию от OS/2 до Windows, от ASP (Active Server Pages) до Webание и успех технологии почти всегда определяется человеческими, политическими и экономическими факторами, а вовсе не технологическими!

Если вы так и не поняли, почему эта книга не начинается с примеров кода или описания возможностей VB .NET, я подведу краткий итог своих рассуждений. Успех VB .NET, ваш успех в освоении этой технологии и ваши решения о том, стоит ли изучать и принимать эту технологию, в основном определяются человеческими, политическими и экономическими факторами. В большинстве технических книг автор обращает все внимание только на технологию, а с остальными проблемами читателю приходится разбираться самостоятельно. В этой книге я хочу с самого начала обсудить эти важные вопросы, еще до того, как вы получите хотя бы первое представление о технологии, чтобы потом ссылаться на них в последующих главах.

Учитывая все сказанное, мы переходим к следующей теме — стратегическим решениям, которые вам придется принимать в отношении VB .NET и архитектуры .NET.

1Кроме людей, программирующих для собственного удовольствия — у них другие критерии и приоритеты.

2VBX - Visual Basic Controls — предшественник современных элементов ActiveX.

Назад   Вперёд

 


Инфо
Сайт создан: 20 июня 2015 г.
Рейтинг@Mail.ru
Главная страница