Здравствуйте, AndrewVK, Вы писали:
AVK>Цитаты в студию.
Ладно, попробую наконец сформулировать свои мысли более четко. Начнем по порядку.
1. Меня беспокоит то, что в скорейшем времени мы будем лишены языка для быстрого создания простых приложений. VB.NET, хоть и старается изо всех сил предстать нам в таком качестве,
все же вряд ли подходит на эту роль. Не могу, конечно, сказать, что факт скорой кончины старого доброго VB6 причиняет мне огромные страдания, однако все же неприятно как-то. Ну да
ладно, переживем. В конце концов новая платформа обладает большим количеством "плюсов" (я не C++ имею в виду).
2. Как могла бы выглядеть новая версия Visual Studio, если бы Microsoft не пыталась привести её хоть в какое-то соответствие со старой? Прежде чем разводить долгие (и по сути своей —
бессмысленные) дискуссии на эту тему, следует все-таки признать, что такая "попытка" бесспорно имела место быть. Вряд ли вы будете спорить с тем, что VS.NET — это принципиально
другая среда по сравнению с VS6, и, конечно же, корпорация Microsoft пыталась как могла упростить переход на новую платформу. Рассуждать, делалось ли это из благих
побуждений (чтобы "облегчить" нам жизнь), или же из корыстных (чтобы воспользоваться старым раскрученным брэндом), на мой взгляд бессмысленно хотя бы потому, что не имеет
никакого отношения к программированию. Я лишь хотел подчеркнуть здесь следующее. К примеру, тот же самый графический редактор форм, — бесспорно, полезная утилита, однако
лишь "утилита" и не более того. В новой среде в принципе можно было бы обойтись и без него. Я не утверждаю, что нужно отказываться от редактора, я, если честно, и сам им пользуюсь,
однако его наличие теперь уже не является необходимым. И опять-таки "в принципе" его могло бы и не быть. (Дело все в том, что мы просто привыкли к этому редактору, а если бы переходили
на VS.NET не из "визуальных" языков, то наверняка сочли бы его чем-то оскорбляющим наше достоинство). Так же умиляет меня некоторая попытка сохранить определенную дифференциацию
между формами, модулями и классами в VB.NET. Это тоже нужно, чтобы упростить переход? Уж что-что, а тут и вправду лучше было бы сделать простеньких "мастеров" по генерированию
кода с наследованием форм, к примеру. Конечно, я могу и сам макросы написать и затем использовать их вместо стандартного способа, чтобы создавать формы, но дело опять-таки не в этом.
Просто забавно теперь смотреть на все эти архаизмы. Да и потом, долгие бессонные размышления по этому поводу постепенно склоняют к мысли, что вообще многое в .NET оставили лишь
"по просьбе трудящихся", — например, Visual Basic, или, вернее, тот странный и забавный язык, который они теперь так называют. Но об этом чуть позже.
3. Я лично предпочитаю спецификацию языков, а не генерализацию, которую предлагает нам VS.NET. Конечно, теперь программист сможет свободно переходить от одного языка к другому,
что бесспорно впечатляет. Однако что вам мешало поступать так раньше? Писать простые "дежурные" приложения на VB6, а что посложнее — на С++. К тому же я весьма сильно сомневаюсь
в том, что, к примеру, переход от VB.NET к С# даст вам что-то принципиально иное. Таким образом, именно в силу "генерализации" всех языков в составе VS.NET, в силу того, что границы
между ними стали куда более расплывчатыми, чем раньше, это переход теряет смысл. Я не удивлюсь, если скоро вместо "студийного триумвирата" мы получим один-единственный
язык, и будет называться он просто — C.NET, без всяких "visual", "шарпов" и "плюсов" (хотя это всего лишь мои "подозрения", так что можете их просто проигнорировать).
4. VB.NET и С#. Проблема позиционирования данных языков все же является проблемой, что бы там ни считали лично вы. Если даже просмотреть все сообщения по этому поводу на форуме,
то мы уже столкнемся с определенным разногласием — а этом о многом говорит. Заявление вроде "Microsoft позиционирует VB.NET как один из двух основных языков на новой платформе"
я нахожу довольно забавными. Смешнее было бы только сказать, что Microsoft позиционирует VB.NET как один из трех основных языков на новой платформе. В любом случае "один из основных
языков" — это очень содержательное высказывание. Термин "позиционирование" означает указание предметной специфики и, думаю, не стоит говорить о том, что приведенное выше заявление
никакого отношения к "предмету" не имеет. Заявления вроде "VB.NET оставили, чтобы упростить переход VB-программистов на новую платформу" вызывают у меня недоумение, так как если
бы Microsoft и правда так заботилась о несчастных VB-программистах, то выпустила бы "альтернативную" версию VB, полностью совместимую со старой. В любом случае смысл подобных
заявлений сводится к следующему — если можете, то лучше сразу осваивать C#. Теперь, собственно, о VB и C#. Сколько я лично ни высказывал свои "подозрения" о том, что VB в новой версии
VS.NET исчезнет, ничего кроме предложений держать их при себе, да однозначных ответов ("Будет!"), не получал. А хотелось бы все-таки какой-то аргументации. Если будет, то почему, зачем
он так нужен в VS.NET и пр. Опять-таки подчеркну, что я лично не против его присутствия — просто хочу разобраться в том, какую роль теперь играет данный язык (раньше-то с этим все было
понятно). VS.NET, что заметил не я один, очень похож на С#. Притом если говорить об их отличиях, то результат будет не в пользу VB.NET. В VB.NET до сих пор сохранились элементы линейного
программирования, что само по себе довольно забавно, учитывая, что теперь он стал полноценным объектно-ориентированным языком. Понятно, что линейные структуры не особенно
благотворно влияют на скорость исполнения кода и также понятно, что никто не заставляет вас их использовать. Однако возникает вопрос, зачем они все-таки остались в VB.NET? Иногда
вообще создается впечатление, что Microsoft просто-напросто издевается. Архитектура языка была изменена в принципе — до такой степени, что он стал по сути новым языком — однако, для так
называемой "backward compatibility" и, само собой, для "упрощения перехода", сохранили ряд доисторических функций. Например, панельку с сообщениями теперь можно вызывать и по-
старому (MsgBox) и по-новому (MessageBox) с несколько иным синтаксисом, соответственно. В общем, смешно да и только. Скажу по секрету, что VB-программист, которому в старой версии
языка нечасто приходилось работать с классами, будет несколько дней ломать голову над тем, как теперь из одной формы другую вызывать и как из вызванной формы к контролам на основной
форме обращаться — зато сможет без проблем выводить всякие MsgBox'ы и логические конструкции на доисторический манер писать. Анекдотическое программирование, так сказать.
В итоге создается впечатление, что VB.NET — это просто упрощенная версия C#, с прежним линейным синтаксисом, наверняка более тихоходная, без четкой структурации и прочего и прочего.
А в этом случае бессмысленно осваивать VB.NET и надо действительно сразу переходить на C#. Итак, спрашиваю, если VB сохранится в составе VS.NET, то в каком же качестве?
Со всеми своими "рудиментами" — или без них? Если без них, да еще и код сделают более структурным, то последние черты собственно VB окончательно из этого языка исчезнут (и тогда
уж он точно ничем не будет отличаться от С#).
Вот, собственно, и все. Скажу напоследок, что моя цель заключается не в том, чтобы выдвигать разные "подозрения", критиковать VS.NET и пр. Просто хотелось бы услышать и ваше мнение
по этому поводу — и не однозначные возражения, но чуть более подробные высказывания.