НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

По поводу совместимости версий языков программирования

Небольшое упоминание о Фортране вызвало не только ностальгические воспоминания о "старых добрых временах", но позволило вспомнить о некоторых проблемах сегодняшнего дня. А именно о совместимости версий языков программирования и возможности унаследованного исходного года.

По этому поводу я получил письмо от приятеля:
[spoiler]
Я провозился с попытками перевода кода Visual Basic 6 в Visual Basic 2008 и понял, что это большая проблема, по крайней мере для меня. Явное декларирование переменных - это только цветочки. Изменений довольно много! Там и массивы теперь с только нуля начинаются, и тип переменной (например A$ неявно не A$ а STRA), нет теперь PUT и GET и др. А те средства, что в Студио есть для конвертации VB6 в VB2008 годятся только для самых простых и очевидных текстов. написанных на VB6. В связи с этим у меня два вопроса:

1. Риторический - почему тексты, написанные, например, на Фортране в 1977 году (а то и в 68) идут на современных компиляторах, а в BASIC они берут и запросто меняют синтаксис, не поддерживая более ранние версии. Что за идея? Я понимаю интерактивная среда, графика, интепретатор, но ведь в Студио есть для VB2008 console application. Так почему для нее не поддерживается стандарт (например VB6) и его расширения типа VB2008, 2010 и др. Есть этому разумное объяснение?
2. Практический. А у тебя дистрибутив VB6 есть?

То, что переход от VB6 к VB.NET – это проблема, было известно еще 10 лет назад, как только Microsoft объявила про намерение выпустить VB.NET (могу привести большой список статей, опубликованных тогда же).
Именно поэтому VB6 у меня сохранился…
Колесов Андрей
Тогда у нас нет предмета для спора, поскольку я давно не работал...
Вы хотите сказать, чт можете просто загрузить VB-приложение в среду VBA и он заработает?

Не отдельные подпрограммы, а весь исходный код.

Возможно, я что-то забыл, но я уверен (и много писал по этому поводу), что это невозможно. Отличий очень много, начиная с того, что формы в VBA и VB - разные.

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

Ладно, останемся каждый при своем мнении.
Я просто не уверен, что проблема поддержки VB6 настолько актуальна, чтобы спорить по этому поводу.
Legio
Просто загрузить -- конечно нет. Перенести исполняемое приложение с гораздо меньшими, чем при переносе на .NET, затратами по части времени и нервов -- скорее всего, да.
Колесов Андрей
С такой постановкой вопроса могут только согласиться. Разумеется, все зависит от сложности (размеров) приложения и самое главное - для чего выполняется перенос.

А зачем вообще, нужно переносить приложение из VB6 в VBA?
Работает себе в VB6 и пусть работает?

Вы получили приложение в исходных кодах VB6, а самой системы VB6 нет?
Это уже задача. Но опять же, ее решение зависит от того - что вы собираетесь делать с этим приложением в исходный кодах. Как-то его запустить, чтобы что-то посчитать, а потом через месяц забыть?
И ли вы собираете его серьезно эксплуатировать и развивать?

Ответ зависит от постановки целевой задачи.