Последние 3-5 лет я обновлял страховое приложение и коммерческий инструментарий интеграции на основе Visual Basic 6.0.
Согласно Microsoft "Это просто работает политика", IDE больше не поддерживается после 8 апреля 2008 года.
Он все еще работает для разработки и развертывания приложений Visual Basic 6.0.
Когда станет невозможно поддерживать приложения Visual Basic 6.0 или они будут жить вечно, как приложения Cobol?
Обновление: заявление Microsoft, март 2010: группа разработчиков Visual Basic привержена обеспечению совместимости «It Just Works» для приложений Visual Basic 6.0 в Windows Vista, Windows Server 2008, включая R2, и Windows 7.
Обновление за май 2011 г .:
С 20-м днем рождения Visual Basic!





Я бы сказал, что они в опасности, потому что ОС и оборудование вырастут из-под них.
Вы можете запустить Visual Basic 6.0 в Windows XP, но даже это приближается к концу своего жизненного цикла (он продолжает возрождаться на смертном одре).
Эти приложения Cobol все еще существуют, потому что мэйнфреймы, на которых они работают, никуда не денутся. «Большое железо» было построено в то время, когда компьютеры были дорогими и редкими, и им приходилось работать по 20-30 лет. Не так с приложениями на базе ПК и Windows, которые считаются более одноразовыми.
Не уверен, что согласен. IBM 360 была хорошей разработкой для своего времени. Можно утверждать, что VMWare предвосхитили это. Тогда IBM была солидной технической компанией, а не пустой оболочкой, которая есть у нас сегодня.
@ duffymo.myopenid.com: Дело не в том, было ли инженерное дело хорошим или плохим. Дело в том, что темп инноваций был настолько медленным, а аппаратное обеспечение было настолько ограниченным, что устаревание заняло намного больше времени, чем сегодня. Эти силы сильнее инженерии.
Важное различие между средами мэйнфреймов и ПК заключается в том, что мэйнфреймы изначально разрабатывались для виртуализации. Многие программы Cobol все еще думают, что они работают на устройствах S / 360, и вы можете держать их в рабочем состоянии вечно, если они отвечают той потребности, для которой были разработаны.
@ S.Lott: Отличное замечание, я согласен. @Cruachan: Даже если это Micro Focus Cobol, работающий в Windows. 8)
Приложения VB6 будут работать в Vista x64. Что касается среды разработки, я использую виртуальную машину W2k, и она работает очень хорошо.
В нашей компании мы на собственном горьком опыте изучаем, что GNU становится привлекательной, потому что, несмотря на все недостатки, они не делают ненужным то, от чего вы зависите.
Приложения VB6 "не подвержены риску". Среда выполнения VB6 находится в Win7 и, как таковая, будет поддерживаться по крайней мере еще 10 лет после выпуска Win7. Всего 20 лет. Инструмент VB6 - это совсем другая история. для этого вам нужно купить поддержку, если вы от нее зависите. Пожалуйста, не размещайте слухи и предположения. «Я бы сказал, что это в опасности» - безответственное заявление.
Полностью согласен, Чизо. Есть поддержка среды выполнения, и при необходимости IDE можно запустить на виртуальной машине. Если на то пошло, то же самое могут делать приложения и, по-видимому, текущие предложения ОС от Microsoft настолько непопулярны, что они собираются поставлять XP-in-a-box с w7. Тенденция очевидна. Ретро сработало.
@Mike Dunlavey: сколько лет VB6? Десять лет? Разве Microsoft не имеет права отказаться от него в конце концов?
@John S Нет, вообще-то. Microsoft не имеет права отменять VB6, пока не предоставит достойный путь обновления до новой платформы. Многие из их крупных клиентов имеют миллионы строк рабочего, полезного кода VB6. Переписывать ради забавы не собираются. Microsoft следует купить Партнер по миграции VB или Компаньон по обновлению VB и сделать их доступными бесплатно.
@MarkJ Согласитесь об их "праве". Но сделали это с FoxPro ...
@MarkJ Да, для Microsoft было бы очень полезно предоставить первоклассные инструменты миграции для своих устаревших продуктов.
Вероятно, это будет работать в течение значительного количества лет, но в конечном итоге вы дойдете до того, что вам придется поддерживать старое оборудование, используя старую, не поддающуюся исправлению ОС, для запуска программного обеспечения. Между тем, вы упускаете из виду все разрабатываемые новые фреймворки и языковые преимущества. В конце концов, вам нужно будет что-то исправить или добавить что-то, что невозможно в вашей среде, и тогда вы сможете оплатить счет весь за накопленный технический долг.
Мое мнение: вы уже должны работать над обновлением до новой платформы или заменой приложения. Я почти всегда предпочитаю делать это до того, как меня заставят обстоятельства.
Приложения VB не просто умирают - они попадают в эту странную неопределенность, где возникают бесконечные проблемы, но переписывание обходится слишком дорого, поэтому все просто жалуются. В конце концов оборудование выходит из строя, и вы вынуждены (за большие деньги) все заменять.
Кто-нибудь знает о VirtualPC?
Если у вас все еще есть ОС и Инструменты, их поддержка никогда не станет «невозможной».
Настоящий вопрос в том, ХОТИТЕ ли вы их поддерживать.
Пока оборудование не сломается. Тогда вы обнаружите, что теперь невозможно запустить это старое программное обеспечение на любом новом оборудовании. Кроме того, вы часто обнаруживаете, что не можете установить ОС ни на что слишком новое, даже с установочным носителем.
Я никогда не сталкивался с этой проблемой. С другой стороны, я также не следил за Foxpro 1.0 или VB, если на то пошло. Я думаю, что самый старый материал, над которым я сейчас работаю, - это VC6. Немного скрипит ...
@ S.Lott: В наш век виртуализации о каком «оборудовании» вы говорите? ;) Но вы правы, даже в таком случае рано или поздно у вас будет стек из 20 черепах ^ W виртуальных машин, а тогда что-то сломается, где-то.
Вы всегда сможете разрабатывать на VB 6, поскольку Microsoft не будет посещать ваши компьютеры, чтобы удалить его. Если вы не хотите переписывать свое приложение, вам не нужно / не придется.
Но инструменты, которые вы получаете сейчас, такие же, как и через десять лет. Таким образом, вы можете в конечном итоге отстать по мере появления новых парадигм информатики (при условии, что вы не будете разрабатывать свой собственный компилятор VB).
Придерживаясь текущего VB, ваше приложение всегда будет «возможно» поддерживать, но с каждой секундой становится все труднее.
В одном отношении они будут жить вечно, поскольку среда выполнения vb продолжит работать с ОС Microsoft, которые существуют сегодня. Например, приложения VB6 по-прежнему работают в Vista. Приложения VB6 будут невозможно поддерживать в будущем, когда Microsoft перестанет поддерживать среду выполнения VB6 в своих операционных системах.
Это означает, что они, вероятно, будут продолжать жить вечно, так же как некоторые приложения COBOL все еще существуют сегодня. Однако сейчас новый код почти никогда не должен быть написан на фактически мертвом языке, поэтому рыночная привлекательность навыков VB6 будет постепенно снижаться, пока не останется какое-то низкое, устойчивое состояние.
Если вам нужно продолжать поддерживать VB6, я бы рекомендовал создать виртуальную машину, которая содержит XP и VB 6 со всеми установленными на ней пакетами обновления. Таким образом, вы можете продолжать запускать свою среду разработки, даже если ваш рабочий стол эволюционирует до чего-то, что может быть несовместимо со средой разработки VB 6. Два года назад при установке Visual Studio 6 в Vista возникли проблемы.
Для новых разработок, выходящих за рамки обслуживания, я бы предпочел использовать другую среду. По моему опыту, вам лучше взглянуть на это с совершенно новой точки зрения и не ограничиваться переходом на VB .NET. Достаточно хлопот по переносу, и вам действительно следует заняться новой разработкой в лучшей среде для вашего приложения. Это может быть VB .NET, а может и нет.
Разработка с использованием устаревших технологий никогда не является проблемой, пока не станет проблемой, и тогда уже будет слишком поздно. Вам нужно оставаться в «золотом пятне» кривой, и только вы можете решить, что это такое. Если вы переключитесь слишком рано, вы, вероятно, примете неправильное решение, а если вы будете слишком долго ждать, вы окажетесь слишком далеко позади. Именно такие решения делают эту область веселой и в то же время болезненной.
Я ожидаю, что будет невозможно поддерживать приложения VB6 после Windows 7. (я ожидаю, что среда выполнения VB6 и IDE будут работать в Windows 7, но не в Windows 8)
Обновление: 17.02.12 Заявление о поддержке Microsoft Visual Basic 6.0 теперь включает Windows 8. Они подразумевают, что IDE может работать и в Windows 8. http://msdn.microsoft.com/nb-no/vbrun/ms788708(en-us).aspx
Нет причин предполагать, что следующая версия Windows будет называться Windows 8. Они могут вернуться к использованию года, букв или ландшафтного термина. Что-то вроде Windows 2012 или Windows TR (для потрясающего) или Windows Mesa. Они также могут просто пропустить кучу цифр и использовать Windows 21; o)
или как там называется Windows 7 ++ ...
Есть основания для этого? Я ожидаю, что Windows 8 будет поддерживать среду выполнения VB6. Windows 7 по-прежнему поддерживает приложения 16 бит!
Только мое мнение. В то время я думал, что Windows 8 будет запускать только управляемый код изначально (Midori bit.ly/cRSKb0), но теперь, вероятно, похоже, что он может запускать только код x64 изначально bit.ly/bQdn4Y, но кто знает?
@Booji Интересная теория. Вы предсказывали, что Windows 8 не сможет запускать Word или Excel? Пакеты, которые производят более 25% своего дохода? Не путают исследовательскую деятельность с основным бизнесом.
В этом не было бы особого смысла, если бы он не мог запускать приложения Word, Excel или VB6, если на то пошло. Я просто подумал, что IDE не будет работать, и сложно поддерживать приложение, в которое вы тоже не можете вносить изменения. Тем не менее, всегда есть виртуальные машины, чтобы это понять.
похоже, я ошибся насчет Windows 8. (см. правки в ответе)
С виртуализацией с использованием VirtualPC / VMWare / VirtualBox и т. д. Теоретически должна быть возможна поддержка приложений VB6 при условии, что у вас есть ОС хоста, которая может правильно запускать VB6, которую вы можете виртуализировать, которая может запускать эти приложения.
Я думаю о многих компаниях, которые запускают программное обеспечение, написанное для NT4, в котором отсутствуют драйверы для новых машин в виртуальных машинах.
Существует масса программного обеспечения для вертикального рынка, разработанного на VB6 производителями различных типов оборудования. Использование VB6 элементов управления ActiveX, ActiveX DLL и способность потреблять большинство Win32 DLL привело к тому, что многие производители различных компонентов стали поддерживать VB6.
Использование VB6 и вспомогательных библиотек по крайней мере на порядок быстрее и надежнее, чем старые методы сборки на пользовательских микросхемах или с использованием C.Обратите внимание, что даже разработчикам C / C++ помогли, поскольку они могут использовать новые вспомогательные библиотеки как хорошо.
Многие из этих приложений содержат математические функции, проверенные на совместимость с окружающей средой и оборудованием, для которого они были разработаны.
Поэтому, когда Microsoft сделала VB.NET несовместимым с VB6, для многих из нас это стало БОЛЬШОЙ сделкой. В отличие от перехода с VB3 на VB4-6, мы должны касаться нашего кода во многих местах, чтобы заставить его работать с .NET. На самом деле их так много, что это сводится к тому же, что и переписывание программного обеспечения на новом языке.
По этим причинам VB6 будет жить еще какое-то время, поскольку все эти машины существуют. По-прежнему требуются новые обновления и исправления.
Я начал профессиональное программирование с Visual Basic 3.0 около десяти лет назад и, вероятно, был последним, кто перешел на .NET (я сделал это в 2004 году). Так что большего поклонника платформы, чем я, вы не могли найти.
Я не думаю, что Visual Basic 6.0 скоро уйдет. На нем написано много устаревших приложений. Программное обеспечение для бухгалтерского учета компаний, индивидуальные инструменты, что угодно. Так что приложения будут.
Количество новых приложений Visual Basic 6.0 сокращается по спирали, поэтому, если вы хотите сделать карьеру программиста на Visual Basic 6.0, вы устарели.
Тем не менее, будет довольно большой спрос на людей, которые могут поддерживать / исправлять / обновлять старый код.
У меня есть программное обеспечение, написанное на Visual Basic 6.0, которое насчитывает около 100 тысяч пользователей, и оно все еще хорошо работает. Все мои свежие разработки написаны на C#, но для этого конкретного программного обеспечения, я думаю, я перейду его на C# к концу 2009 г. или началу 2010 г. Так что, по крайней мере, до тех пор я не вижу, чтобы Visual Basic 6.0 не поддерживался Windows.
Вы ни в коем случае не последний, кто перешел на .NET. Я еще не закончил (начало 2009 г.)
Ситуация с программистами на VB, вероятно, будет хуже, чем с программистами на COBOL. COBOL по-прежнему является поддерживаемым языком с множеством реализаций и все еще используется для разработки приложений.
Удалось ли вам перенести это популярное приложение на .Net в середине 2010 года?
@ wqw - Нет. Мы еще даже не начали. Вместо этого мы пошли и сделали несколько сайтов. :)
@wqw @Cyril И почему должен Cyril должен тратить время и деньги на переписывание чего-то, что работает нормально? Microsoft должна открыть свою чековую книжку, купить сторонние инструменты миграции и сделать их бесплатными.
Вау, эта ветка все еще жива. Почти конец 2010 года, а я до сих пор не успел переписать это приложение на .Net. Приложение отлично работает на Win7. Тем временем игра изменилась. Мой бизнес переходит с winapp на webapp. Я уже переместил приложение в онлайн, и доля онлайн-приложения в моих доходах неуклонно растет. Теперь я сосредоточен на расширении веб-приложения и разработке большего количества веб-приложений.
Да, приложение теперь в .Net (Framework 2). Не VB6. Нет, я не помещаю это на рынок в формате приложения ... Вау, это мир экспоненциальных изменений.
COBOL - это общедоступный стандарт, который несколькими поставщиками реализован на нескольких аппаратных платформах.
VB6 поддерживается только Microsoft, и они уже сказали вам, что не будут поддерживать его в новых версиях Windows. Так что в конце концов он будет фактически мертв. То же самое можно сказать и о COBOL, но далеко не так быстро.
На самом деле они поддерживают среду выполнения в Windows 7 и не сказали, что не будут поддерживать ее в новых версиях Windows.
Август 2019 года и Microsoft по-прежнему поддерживают программирование VB6 в Windows 10.
Я подозреваю, что у приложений VB6 будет ограниченный срок службы, потому что Редмонд должен держать своих кодеров занятыми, вытаскивая ковер из-под всех.
Если вы думаете, что переписывание ваших приложений в .NET гарантирует их бессмертие, просто помните DDE, OLE, COM, DAO и т. д. И т. Д.
Если приложение работает, нет ХОРОШЕЙ причины, по которой оно должно перестать работать, пока кто-нибудь не найдет ресурсы, чтобы переписывать его каждые несколько лет, но, к сожалению, причин множество.
Я не только помню DDE, OLE, COM и DAO, но все они все еще работают - и у меня есть программы, подтверждающие это. MS должна уравновесить стоимость обратной совместимости и выгоду для разработчиков Windows. Джоэл писал об этом много лет назад: joelonsoftware.com/articles/APIWar.html
В частности, DAO / Access - серьезная проблема для моей компании, потому что на некоторых сайтах клиентов он работает, а на других - нет. Кроме того, мы допустили ошибку, полагаясь на различные компиляторы от MS для нашего сгенерированного кода, и они имеют обыкновение устаревать их.
Хм, не повезло с DAO. Наши приложения VB6 / DAO / Access по-прежнему отлично работают с сотнями пользователей (коснитесь дерева). Предполагается, что Access время от времени повреждает базы данных, но у нас все в порядке. РС просто всегда делают вещи устаревшими, это бесит.
Я думаю, они останутся там навсегда. Простая причина: MS не может поставлять ОС, которая их не поддерживает, потому что ни одна крупная корпорация не купит эту ОС.
Я думаю, что приложения Visual Basic 6.0 будут жить долго, как приложения COBOL, и по аналогичным причинам. Некоторые продукты моей компании по-прежнему имеют VB6, и они не будут изменены до тех пор, пока не будет веской причины. Мы надеемся, что Microsoft не сможет отказаться от поддержки VB6 на долгое время, потому что слишком многие из их корпоративных клиентов имеют приложения VB6. Они уже были вынуждены продлить период поддержки сверх своих первоначальных планов. Мы надеемся, что Рэймонд Чен победит журнал MSDN - непонятная шутка, которая будет иметь смысл, только если вы вспомните Сообщение Джоэла о дилеммах Microsoft с обратной совместимостью по сравнению с чистотой дизайна.
Если вы планируете обновить или переписать, IMHO этот вопрос и этот вопрос могут дать несколько информативных ответов. Вы можете смешивать новые компоненты .NET с существующим Visual Basic 6.0 с помощью Interop, если вам нужны функции .NET или даже если вы просто хотите изучить .NET.
Группы новостей Visual Basic 6.0 все еще довольно активны, поэтому очевидно, что много старых туманов вроде меня все еще разрабатываются в Visual Basic 6.0 :)
Даффимо, Брюсатк - Visual Basic 6.0 IDE можно заставить работать в Vista с небольшими усилиями.
Думаю, Visual Basic 6.0 еще долго будет работать. Во-первых, .NET потерпела неудачу в качестве платформы разработки для коммерчески массовых распределенных приложений. Кажется, никто не использует его так, как были / используются Visual Basic 6.0 / C++. Среда выполнения .NET ЕЩЕ НЕ НАДЕЖНА (по опыту, мы вытащили приложение .NET и перекодировали его на C++ по этой единственной причине)
Однако я согласен с возможностью трудоустройства.
Потеря Visual Basic 6.0 была серьезной ошибкой Microsoft: они были загипнотизированы всем объектно-ориентированным дизайном. Большинство людей хотят быстрой разработки, а не педантичных споров о красивом коде.
VBA заменил Visual Basic 6.0 в офисах: кто думает манипулировать Office через путь .NET?
Это становится «невозможным» только в том случае, если вы начинаете добавлять машины и ОС в смесь, на которой приложение больше не будет работать.
Vista по-прежнему будет запускать приложения VB6. Я предполагаю, что 7 будет продолжать делать то же самое ... а если нет, то всегда есть виртуализация.
Любой тип обновления оборудования / ОС, который может планироваться вашей компанией, должен учитывать существующие бизнес-приложения. Это ничем не отличается от принятия во внимание вашей текущей версии Office или вашего почтового клиента.
У ПК действительно нет срока годности. Даже если вы застряли с XP, вы можете получить оборудование, которое будет работать с ним, и будет продолжать работать в течение довольно долгого времени. Если вы покупаете готовые машины, вам может потребоваться просто перейти на более раннюю версию установленной ОС. Что не так уж и важно.
Тем не менее, у вас, вероятно, есть еще около 3 лет, прежде чем что-то станет трудным, и еще 1 или 2 после этого, прежде чем люди больше не захотят работать в вашем ИТ-отделе из-за того, насколько все древнее.
Среда выполнения по-прежнему остается кошмаром для .NET.
Я поддерживаю код на 20-30 000 рабочих столах и анализирую их реестр. Количество компьютеров без среды выполнения .NET (не говоря уже о 2+) ошеломляет. Невозможно массово распространять им вспомогательный код (основное приложение - C++), не наняв целую армию сотрудников службы поддержки, которые будут следить за перезагрузками.
C++ - единственный путь для клиентских приложений.
Какой катастрофой был весь мир OO для MS и для нас! Что за инфлятор стоимости!
... и ASP.NET webforms / viewstate ... Я мог печатать ДНЕЙ (наши подрядчики по программированию явно это делали).
Большая часть того, что необходимо для запуска приложений Visual Basic 6.0, также требуется для VBA.
И VBA в ближайшее время никуда не денется - его просто слишком много.
Поэтому, если вы достаточно взрослые, чтобы разрабатывать Visual Basic 6.0, я бы не стал беспокоиться о том, что он перестанет работать при вашей жизни.
@Joe: Есть ли заявление о поддержке (выход на пенсию) для VBA?
Я ни одного не видел. Но .NET / VSTO далек от того, чтобы заменить VBA для типичных "опытных пользователей" макросов. Таким образом, по моему опыту, миграция существующего устаревшего кода VBA еще не началась (в основном в финансовой индустрии).
VB6, вероятно, будет навсегда в организациях страхового / банковского типа. Перемещение оборудования из их области не является проблемой. Они просто получат какую-то форму эмулятора. Я видел приложение для очень старого мэйнфрейма, работающее внутри эмулятора, который находился внутри другого эмулятора.
Обычно для нетехнических специалистов просто не имеет смысла рассматривать возможность перезаписи и повторного тестирования того, что уже работает. -
Добро пожаловать в мир мучительного ада ... уходи сейчас же :-) -
Visual Basic 6.0 работает до тех пор, пока вам не понадобится использовать потоки или пока вам не придется сталкиваться с файлами размером более 4 ГБ.
Вид неуместен в контексте вопроса, поскольку VB6 никогда не поддерживал многопоточность и т. д.
Итак, вы говорите, что VB6 работает до тех пор, пока вам не понадобится использовать потоки, а затем разместите ссылку, чтобы показать, как он может использовать потоки (?) Дело в том, что вы не можете получить настоящую многопоточность в VB6 из коробки, но вопрос в том, как долго VB6 будет существовать, а не в том, какие возможности у него есть или нет.
Программа VB6 - это не что иное, как исполняемый файл Win32, который опирается на ряд сопутствующих COM-ActiveX-библиотек. Так что вопрос просто в создании правильного установочного пакета.
Кстати, VB6 IDE отлично работает на 64-битной машине с Windows 7 (конечно, с парочкой небольших настроек).
PS. К сожалению, моя компания до сих пор поставляет коммерческий и общедоступные продукты VB6, так что я знаю это.
Однажды Microsoft перестанет поддерживать среду выполнения VB6. Возможно, это произойдет не скоро, но однажды это произойдет. И тогда мы обнаружим, что эти сопутствующие библиотеки постепенно перестанут работать. И наш код VB6 станет бесполезным. У моей компании также есть много коммерческого кода VB6. Я не доволен отсутствием маршрута обновления для нашего кода.
Для заинтересованных было продемонстрировано, что VB6 может быть установлен в Windows 10. Пожалуйста, см. codeaholic.blogspot.com.au/2015/09/…
Я должен сказать, что это то, в чем вы не можете обвинить сильно (и справедливо!) Оклеветанный COBOL.
COBOL постоянно поддерживается частыми новыми выпусками от IBM, UNISYS, MicroFocus на нескольких платформах, которые поддерживают такие вещи, как новейшее оборудование, 64-битная адресация, встроенная поддержка XML и т. д. Существует даже версия для Linux (OpenCobol), которая успешно развивается.
Более того, сам язык постоянно развивается (если вы можете назвать те же самые старые ошибки с развитием новых зарезервированных слов: -}), а последняя спецификация языка полностью ОО, посмотрите здесь, если вы мне не верите!
Так что COBOL еще не мертв, просто архаичный. В то время как я думаю, что VB 6.0 действительно мертв и просто немного опоздал на собственные похороны.
Стабильность в мэйнфреймах объясняется не хорошим дизайном. (1) темпы инноваций были медленнее, потому что они были редкостью. (2) аппаратная совместимость была нулевая - у вас был только один поставщик с ограниченными возможностями обновления.