Да, проблема... VB.Net на самом деле не такая уж и хорошая среда разработки как предполагал я. Этот вывод сделал после полугода работы в Visual Studio Dot Net.
Идеальный GUI и удобный редактор кода, мощность нового Visual Basic ‘а и в конце концов новизна самого продукта теперь перекрывается одним большим "НО". Это "НО" называется "Framework"…
Я отказался от использования VB.Net, и, думаю, по этой же причине большинство программистов отказываются от программирования в среде VB.Net.
Framework – это очередная крупная ошибка Microsoft первая со времён Windows Me. Теперь у нас не будет чистого компилированного кода exe файла, только набор ресурсов, скриптов и PE заголовков. Можно конечно долго спорить о том, компилирует ли VB6 свои приложения или использует технологию скриптов. В VB6 по настоящему компилировал код, да, программа часто обращается к своей виртуальной машине (MSVBVM60.DLL) за, почти, каждой функцией, но это компилированный код! Теперь Microsoft хватило наглости унизить VB программистов, предоставив ей свою новую "распрекрасную" технологию Framework. Теперь создаваемый Basic ‘ом код компилируется при каждом запуске exe приложения!!! Большая задержка при загрузке программы, но даже не это главное. Главное то, что "откомпилированный" exe ‘шник теперь не будет работать на компьютере без установленного Framework ’а. Что остаётся программисту? Тут есть два выхода. Первый и самый простой отказаться от использования VB 7 и ждать лучших времён, этак до года 2010, когда Microsoft либо откажется от дурацкой затеи либо будет с каждой новой ОС поставлять установленный Framework. Второй вариант трудноосуществимый, особенно если дело касается программы, которая будет выложена в Интернет для скачивания. Он заключается в том, чтобы поставлять вместе с программным продуктом инсталляционный пакет Framework, который, кстати, занимает не много не мало 20Mb!
И что после такого майкросовтовского выпиндрёжа делать разработчикам, отказаться или смериться?
P.S. а чё енто в VC.Net до сих пор MFC? Почему. Не Framework? Ответ один: для себя всё самое лучшее, ведь не будет же Microsoft на Visual Basic .net программировать ;-)
Начнём с конца (насчёт MFC). Как известно, в VS .NET можно писать на
Unmanaged VC++ (с использованием mfc и прочих премудростей, но БЕЗ
изспользования мощи .NET Framework) и managed VC++ (без mfc, но с
использованием .NET Framework).
Кстати, я не вижу смысла отказываться от .NET Framework (это всё ещё в
контексте Вашей мысли о VC++), иначе какой смысл вообще использовать
.NET???
Теперь насчёт распространённости FCL. Моё ИМХО: как показала практика,
к тому времени, как библиотека (-ки) популярной среды разработки
станут достаточно распространены, появится совершенно новая среда и
новые библиотеки (до недавнего времени были очень часты разговоры об
огромном весе msvbvm60.dll, которые не прекратились и до сих пор, но
уже утихли, а сейчсас бац! и появилась FCL).
Ну и насчёт компиляции. В глаза бросается небольшая ошибочка в Ваших
словах: прилодение компилируется не при каждом запуске, а только при
первом запуске!
Могу частично с Вами согласиться, но только в том плане, что проги
становятся более подвержены гм.. так сказать, легче просмотреть
исходный код, потому что IL (intermedate language) хранится в
удобочитаемом виде внутри exe'шника. Но опять же и на это можно найти
свои аргументы. Если Вам будет интересно, выделю на это немного
времени...
>приложение компилируется не при каждом запуске, а только при
>первом запуске!
И то, если ему об этом скажут.
Размеры CLR не будут играть большой роли в обозримом будущем. Напроимер в Windows 2003 Server Framework идет предустановленный, и, между прочим уже версии 1.1.
Если сейчас писать на Васике на старом... относительно старом, то через пару лет это будет анахронизмом. Как сейчас например писать на Fortran. Программист оставшийся на старой платформе будет чувствовать себя ущербным, хотя бы в силу того, что он не сможет использовать (в полном объеме или в частичном) все возможности среды Framework.
На счет того, откажется Microsoft от этой идеи или нет обсуждалось ещё _до_ появления самого продукта. Этот вопрос был обмусолен во всех программистских форумах и практически все результаты/выводы сводились в конечном итоге к одному: Visual Studio=Microsoft & Windows=Microsoft. И если сама Microsoft создала новую технологию, новый подход и новые возможности, то она от них уже наверняка не откажется.
Если раньше все кричали: зачем нам 32 битная система?!, зачем нам 32 битная система!! При переходе с Windows 3.11 на Windows 95. То сейчас по-моему уже никто не сомневается в том, что это было сделано правильно.(честно говоря другого выхода и не было-будь пользуйся новой системой, привыкай к ней, покупай ее и новые под нее приложения, либо оставайся в надстройке для DOS'а). Сейчас тоже вопрос... насколько круче будет 64 битная платформа 32 битной? Фиг знает - время покажет. Отсюда ещё один камень в огород прошлого. Visual Basic < Visual Basic .NET _НИКОГДА_ не будет 64 битным. (из оффициального заявления Microsoft). Visual Basic .NET это полноценный компилятор в отличии от Visual Basic #, который был только интерпретатором. Если бы вы, уважаемый cpukiller это понимали, у вас бы не возникло даже желания покидать .NET платформу и возвращаться к, с виду простому, использованию Visual Basic #. В котором необходимо (на данный момент реально) практически во всех мало-мальски граммотных/коммерческих/серьезных программах прибегать к помощи Win32 API.
Сейчас у программистов VB появилась реальная возможность полноценно конкурировать с программистами использующих другие языки. Microsoft изменила сам язык только в действительно необходимых местах. Остальное строится помодульно. От Namespace до глобальных переменных. Так же на этом выигрывают и разработчики ПО для всякого рода КПК. Если раньше они ограничивались только MVB eMbedded Visual Basic, то теперь они вполне могут писать на своем новом бейсике программы сразу для нескольких платформ. Для тех, где только есть возможность запустить Framework. И это, ИМХО, есть большой плюс.
Ну и в заключение: посмотрите пожалуйста на сколько скуднеют предложения по работе для программистов содержащие строчку VB 6.0....
P.S.: мдя..... и это говорит человек постепенно переползающий на QNX....
Егзешники компилируются один раз? Честно говоря, для меня это новость…
Я не возражаю, что в VC Framework использовать можно, это естественно… Я лишь удивляюсь, нужна ли теперь MFC? Для совместимости со старыми средами? Или в MFC программировать удобней. Чего не знаю, того не знаю, на VC я не работаю…
> Кстати, я не вижу смысла отказываться от .NET Framework (это всё ещё в
>контексте Вашей мысли о VC++), иначе какой смысл вообще использовать
>.NET???>
Нет, я бы не отказался бы от VS.NET если бы не Framework. Сому технологию com , родителя .NET, в Visual Studio Microsoft, на мой взгляд, реализовала неудачно.
Да, с msvbvm60.dll проблемы были всегда… Но эти проблемы были по крайней мери на 20% решимы. Кто-то склеивал её с егзешником, кто-то урезал ASPack ‘ ом и вытряхивал "лишние" ресурсы, а с Framework ни сделаешь ничего…
Посмотрите, что мы имеем на сегодняшний день, пойдёт ли Framework проект на дефолтно поставленной винде XP или Win98? Конечно нет!
>Могу частично с Вами согласиться, но только в том плане, что проги
>становятся более подвержены гм.. так сказать, легче просмотреть
>исходный код, потому что IL (intermedate language) хранится в
>удобочитаемом виде внутри exe'шника. Но опять же и на это можно найти
>свои аргументы.
Да, я согласен есть свои плюсы и свои минусы в использовании MS IL - удобочитаемость дизассемблированного кода, использование реляционной базы мата данных, хипы данных, а теперь подумайте, нужно ли это?........
P.S. получается, что IL построен на базе технологии скриптов – это уже "не то". Надо переходить на Delphi или Builder…
Фактически на машине пользователя выполняется именно машинный код.
Промежуточный IL-код является связным звеном между кодом языка CLS и
машинным кодом. Полученный машинный код исполняется быстрее
аналогичного кода на VB.
Для этого у MS были вполне обоснованные причины - они отказались от
COM.
Ругать MS за .NET Framework просто абсурдно. _ТАКОЕ ОГРОМНОЕ
КОЛИЧЕСТВО КЛАССОВ_ в одной упаковке - такого, пожалуй, ни у кого еще
не было. Огромные возможности - теперь действия программиста не
ограничены набором из 2-х десятков стандартных контролов и сотни
классов - тысячи классов, которые соданы, чтоб служить программистам.
Размер - конечно, проблема, но существующая только в 3-х местах:
- Машины с размером винта значительно меньше 1 гб. Остались ли еще
такие???
- Дискеты
-Dial Up
Все остальные - DSL модемы, спутниковый интернет, CD-диски и
DVD-диски - глотнут такой объем не пережевывая.
Также эта проблема не является проблемой для счастливых обладателей
операционки Windows Server 2003.
VC++ .NET позволяет использовать MFC. Это оставлено исключительно для
совместимости с программистами, которые не пожелают переходить именно
на .NET. В VC++ .NET есть так наызваемые "управляемые расширения" -
это и есть использование .NET.
Так же ПОЛНОСТЬЮ согласен с Павлом! Microsoft .NET - технология будущего! И никогда, не за что Microsoft от неё не откажется (даже не учитывая того, что она потратила на её разработку 80% всех денег, выделенных на разработку ПО). Что касается .NET Framework, размер конечно значительно превышает msvbvm60.dll, но, как говорит русская пословица: любишь кататься - люби и саночки носить. А представим на мгновение, что .NET Framework "зашивался" бы в exe'шник... Какой бы размер приложения получился! Хотя если вам не нравится, то можно перейти на MFC или ATL, и тратить половину времени на создание интерфейса и вызов функций Win API. >Надо переходить на Delphi или Builder... Если вам не известно, то Borland выпустила уже Delphi.NET! >для себя всё самое лучшее, ведь не будет же Microsoft на Visual Basic .net программировать А почему нет? Например многие штуки в Windows Server 2003 реализованы именно на .NET! >а чё енто в VC.Net до сих пор MFC? MFC и ATL - это традиция Microsoft... Эту линию C++ они будут продолжать всегда. Хотя, не смотря на это, есть и C++ .NET, тоже использующий .NET Framework!
>>Хотя если вам не нравится, то можно перейти на MFC или ATL, и тратить половину времени на создание интерфейса и вызов функций Win API.
Вообще для того, чтобы создать _приличный_ интерфейс на основе Windows Forms времени тоже нужно потратить немало. А Explorer-like интерфейс в MFC даже быстрее можно сварганить + тонны гуевых библиотек для MFC, в т.ч. и бесплатных, чего для дотнета в таких количествах пока не наблюдается.
>>Если вам не известно, то Borland выпустила уже Delphi.NET!
Еще не выпустила, а только собирается. В Дельфе 7 есть .NET Compiler Preview - что-то в этом роде. А вообще у них есть некоторая "идеологическая" проблема с портированием VCL, которая отчасти повторяет (хотя хм скорее наоборот) идеологию Windows Forms. Хотя тенденция бесспорно налицо.
>для себя всё самое лучшее, ведь не будет же Microsoft на Visual Basic .net программировать >А почему нет? Например многие штуки в Windows Server 2003 реализованы именно на .NET!
На VB.NET МС и правда вряд ли будет что-то писать. А вот на С# - другое дело. Часть классов FCL написана именно на нем. Плюс продукты вроде ASP.NET WebMatrix.
>а чё енто в VC.Net до сих пор MFC? >MFC и ATL - это традиция Microsoft... Эту линию C++ они >будут продолжать всегда. Хотя, не смотря на это, есть и >C++ .NET, тоже использующий .NET Framework!
Тут как обычно с названиями получает небольшая путаница. C++ .NET - это просто седьмая версия компилятора. Т.е. обычный С++, кстати, куда более похожий на С++, чем VC6. А тот, который "использует" .NET Framework, называют обычно MC++.
Вот и MFC вспомнили. А как его рекламировали. Почти как NET, на поверку оказалось [sensored]. То же будет и с NET. Неужели Вы не можете делать собственные выводы? Ведь от использования NET имеешь только проблемы. А если вспомнить историю Microsoft то вполне логично и появление такой убогости на свет.
Может мне и преснилось, но я где то видел заявление, что .Net
в будущих виндах будет выступать не как виртуальная машина, а как ядро
тех же опрационок... Так что поживем увидим что окажется лучше, но я
за .Net
А что там в MFC на проверку оказалось [censored]? И что, все, кто пишет на VC - идиоты, потому что мне незнакомы люди, которые вообще не знают MFC. Ну дизайн у нее не самый изящный. MFC просто уже очень древняя штука, и по большому счету будущего у нее нет.
А проблемы, они вообще возникают от использования чего угодно. Чтобы не было проблем, надо завязывать с программированием. По крайней мере в лице FCL можно увидеть очень неплохо спроектированную библиотеку - понятно, что местами она не "дотягивает". Windows Forms далеко до VCL, System.Collections далеко до STL - но в конце концов это только начало. Или вас пугает, что на VB теперь можно писать нормальные программы, а не просто клиентов к БД штамповать?
Частью ядра это, конечно, вряд ли Напротив, ядро следующей версии Windows - Longhorn обещают сделать более компактным. Так, одно ядро будет у Windows CE и Windows Server - т.е. налицо явное заимствование принципов архитектуры юниксов и солярки. Однако в том же лонгхорне гуй уже возможно частично будет написан на дотнет - с помощью нового гуйного фреймворка, Avalon, который постепенно заменит Windows Forms. Плюс есть слухи о том, что инициализация рантайм будет происходить при старте винды, что ускорит запуск дотнетовских приложений.
Опять же - вспомните истории про DirectX и OpenGL. То, что МС добьет .NET у меня практически не вызывает сомнений. Речь может пойти вплоть до аппаратной реализации сборки мусора.
Вот я и говорю, что одной из выходов для кодера, ждать лучших времён и наступят они не раньше, пока более 85% ВСЕХ пользователей инета уйдут с XP на последующие версии ОС от Microsoft, а это случится не раньше, наверное, 2010 года, так как вы посмотрите, статистику хотлога, 50% ещё на 98-ой сидят, древней, а ещё, не забывайте, есть 95 винда и проклятый всеми народами WinMe. Так что можно спокойно сидеть на VB6, пока, Microsoft её поддерживает, а потом как-нибудь перебиваться, до полной стандартизации Framework.
И ещё: на сегодня в Интернете подавляющее большинство Dial Up ‘щиков – здесь рулит VB6, На сегодня ADSL, и другие способы выделенки (ISDN, VDSL, порт изернета, радио канал и прочее) у большенства провайдеров предоставляются с оплатой по трафику (2,5р., 3р., 3.5 р. за мегабайт, например…), следовательно не все смогут позволить себе закачку 20Mb ради того, чтобы у них пошла пятистакилобайтная программулинка на VB.Net!!!
Вот и подумайте, что на данный момент лучше… Так как большинство программ интернетчики качают непосредственно из сети, а не идут магазин диск покупать, качать очередное, по сегодняшним меркам скорости, майкросовтовское извращение никто не будет, разве, что чел с халявным инетм удосужится…
Подумайте, а не кричите о том, что, я что-то не понимаю, вам ясно товарищ User Unknown Пупкин?
Товарищи! Ну блин вы всё переиначили!
Ты что из-за размера framework'a комплексуешь?
Разумеется, ни кто не будет качать его из-зи 10 кб программульки, если
она это не стоит.
Но ни кто не будет качать и msvbvm60, если она тоже этого не стоит.
Я полностью согласна с cpukiller - ЗАЧЕМ ЖЕ ИЗДЕВАТЬСЯ ТАК НАД НАМИ???? Вот нафига пользователью программа, при инсталле которой будет написано : "Уважаемый, для того чтобы программа работала, установите, пожалуйста Framework". Я бы на месте пользователя послала разработчика куда подальше и поискала бы такую же прогу которая без всяких дополнительных инсталло работала. Вообще-то я tоже за .NET Я просто в восторге если честно... Но что делать с Framework??????? Наверно надо предложить Microsoft выбрать день, который станет Днем ВСЕМИРНОГО Инсталла Framework на Всех Компах Мира. Тогда программисты на VB.NET успокоются и продолжат свою замечательную жизнь в изучении и использовании сред разработки .NET и не будут думать о том, что прога не пойдет на чьем-то компе..