Visual Basic (VB) до .NET , иногда называемый классическим Visual Basic , [1] [2] — язык программирования третьего поколения , основанный на BASIC , и интегрированная среда разработки (IDE) от Microsoft для Windows, известная поддержкой быстрой разработки приложений (RAD) с графическим пользовательским интерфейсом (GUI), событийно-управляемым программированием , а также потреблением и разработкой компонентов с помощью технологии Component Object Model (COM).
VB был впервые выпущен в 1991 году. Последним релизом стала версия 6 (VB6) в 1998 году. 8 апреля 2008 года Microsoft прекратила поддержку VB6 IDE, переведя ее в статус устаревшей . Команда Microsoft VB по-прежнему поддерживает совместимость приложений VB6 с помощью своей программы «It Just Works» на поддерживаемых операционных системах Windows. [3]
Microsoft значительно изменила VB для технологии .NET и переименовала его в Visual Basic .NET (VB.NET), а затем позже переименовала его обратно в Visual Basic . Таким образом, Visual Basic может относиться к классической версии, версии .NET или к обеим. Эта статья о версиях до .NET.
Так же, как BASIC изначально задумывался как простой для изучения, Microsoft подразумевала то же самое для VB. [4] [5]
Разработка приложения VB поддерживается исключительно через интегрированную среду разработки (IDE) VB — приложение в наборе инструментов Visual Studio того времени. В отличие от современных версий Visual Studio , которые поддерживают множество языков, включая VB (.NET), IDE VB поддерживает только VB.
В 2014 году некоторые разработчики программного обеспечения по-прежнему предпочитали Visual Basic 6.0, а не его преемника Visual Basic .NET . [6] Visual Basic 6.0 был выбран в качестве самого страшного языка программирования респондентами ежегодного опроса разработчиков Stack Overflow в 2016, 2017 и 2018 годах. [7] [8] [9]
Как и предполагалось в старых вариантах BASIC , VB должен был иметь низкую кривую обучения . Кроме того, IDE должна была способствовать повышению производительности; даже для сложных приложений с графическим интерфейсом . Программирование включает в себя визуальное размещение компонентов или элементов управления на форме , указание атрибутов и действий для этих компонентов и написание кода , который управляет поведением. Поскольку компоненты имеют атрибуты и действия по умолчанию, программист может разработать простую программу, не написав много кода.
Программы, созданные с использованием более ранних версий, страдали от проблем с производительностью, но более быстрые компьютеры и компиляция собственного кода сделали эту проблему менее существенной.
Поскольку программа VB компилируется как исполняемый файл собственного кода , а не интерпретируется как старые варианты BASIC, она выполняется относительно быстро и требует относительно небольшого дискового пространства. Но, начиная с версии 5, она требует загрузки относительно больших файлов библиотеки во время выполнения; около 1 МБ. Основные библиотеки времени выполнения включены по умолчанию в Windows 2000 и более поздние версии, но расширенные компоненты времени выполнения требуют дополнительных усилий по установке. Более ранние версии Microsoft Windows (95/98/NT) требуют, чтобы библиотеки времени выполнения распространялись вместе с исполняемым файлом.
Формы создаются с использованием методов перетаскивания . Инструмент используется для размещения элементов управления (например, текстовых полей, кнопок и т. д.) на форме (окне). Элементы управления имеют атрибуты и обработчики событий , связанные с ними. Значения по умолчанию предоставляются при создании элемента управления, но могут быть изменены программистом. Многие значения атрибутов могут быть изменены во время выполнения на основе действий пользователя или изменений в среде, обеспечивая динамическое приложение. Например, код может быть вставлен в обработчик событий изменения размера формы, чтобы изменить положение элемента управления так, чтобы он оставался по центру формы, расширялся для заполнения формы и т. д. Вставляя код в обработчик событий для нажатия клавиши в текстовом поле, программа может автоматически переводить регистр вводимого текста или даже предотвращать вставку определенных символов.
Разработка в IDE организована как проект , который можно настроить для вывода в виде программы ( EXE ), библиотеки динамической компоновки (DLL) или библиотеки элементов управления ActiveX (OCX), которая представляет собой специализированную DLL.
Элементы управления обеспечивают графическую функциональность приложения GUI, а программисты прикрепляют код к обработчикам событий для выполнения действий. Например, раскрывающийся элемент управления отображает список элементов. Когда пользователь выбирает элемент, автоматически вызывается обработчик событий, который выполняет код, который программист прикрепил к обработчику.
Для DLL код VB обычно не предоставляет пользовательского интерфейса, а вместо этого предоставляет объекты COM другим программам. Это позволяет использовать такие возможности, как обработка на стороне сервера или модуль надстройки.
С помощью технологии COM неиспользуемая память восстанавливается для повторного использования с помощью подсчета ссылок ; восстановление происходит, когда счетчик достигает нуля. VB уменьшает счетчик, когда переменная выходит из области видимости или когда ей присваивается Nothing
. Такая конструкция предотвращает утечки памяти , которые преследуют некоторые старые языки, такие как C и C++. Она существенно отличается от более современного подхода к сборке мусора .
VB предоставляет большую библиотеку служебных объектов и обеспечивает базовую поддержку объектно-ориентированного программирования .
В отличие от многих других языков программирования, код VB не чувствителен к регистру , хотя IDE преобразует ключевые слова в стандартный регистр, а имена переменных — в соответствии с регистром, используемым в других местах проекта. Следует отметить, что сравнение строк по умолчанию чувствительно к регистру.
Компилятор VB используется совместно с другими языками пакета Visual Studio, C и C++. Тем не менее, по умолчанию ограничения в IDE не позволяют создавать некоторые цели (DLL-файлы моделей Windows) и потоковые модели, но с годами разработчики обходят эти ограничения.
Visual Basic обладает примечательными особенностями и характеристиками, которые в некоторых случаях отличаются от других вариантов BASIC или от других распространенных языков:
' This is a comment
A = B = C
не приводит к равенству значений A, B и C. Булевский результат «равно ли B C?» сохраняется в ATrue
имеет числовое значение −1. VB хранит Boolean как целое число со знаком в формате дополнения до двух , где все единицы в двоичном формате соответствуют true, а нули — false. Это становится очевидным при выполнении (побитовой) Not
операции над значением дополнения до двух 0, которая возвращает значение дополнения до двух −1, другими словами True = Not False
. Эта неотъемлемая функциональность становится особенно полезной при выполнении логических операций над отдельными битами целого числа, например And
, Or
, Xor
и Not
. [18] Это определение True
также согласуется с BASIC с начала 1970-х годов, когда Microsoft реализовала BASIC, и также связано с характеристиками инструкций ЦП того времени.Option Base
Оператор может использоваться для установки нижней границы по умолчанию, но некоторые утверждают, что его использование приводит к путанице при чтении кода и лучше всего избегать его, всегда явно указывая нижнюю границу. Эта необычная языковая черта существует в Visual Basic .NET , но не в VBScript .OPTION BASE
был представлен ANSI вместе со стандартом ANSI Minimal BASIC в конце 1970-х годов.Round
функции. [19] ? Round(2.5, 0)
дает 2, ? Round(3.5, 0)
дает 4./
), так что деление одного целого числа на другое дает результат, который может показаться более интуитивным с математической точки зрения. VB предоставляет оператор целочисленного деления ( \
), который выполняет усечение.variant
. Однако это можно изменить с помощью операторов Deftype, таких как DefInt
, DefBool
, DefVar
, DefObj
, DefStr
. Всего в Visual Basic 6.0 предлагается 12 Deftype
операторов. Тип по умолчанию может быть переопределен для конкретного объявления с помощью специального символа суффикса в имени переменной ( #
для Double, !
для Single, &
для Long, %
для Integer, $
для String и @
для Currency) или с помощью ключевой фразы As (type)
. VB можно настроить на требование объявлений переменных с помощью Option Explicit
.BYTE сообщила в 1989 году, что, основываясь на своем опыте разработки программного обеспечения для Macintosh, Microsoft «хочет предоставить среду разработки, которая имитирует среду доставки». Обработка строк BASIC была предпочтительнее C, сказал Грег Лобделл из компании, при разработке приложений, в основном обрабатывающих транзакции, которые Microsoft ожидала от инструментов объектно-ориентированного программирования . [20] Visual Basic 1.0 был представлен в 1991 году. Дизайн перетаскивания для создания пользовательского интерфейса получен из прототипа генератора форм, разработанного Аланом Купером и его компанией под названием Tripod . [21] [22] [23] Microsoft заключила контракт с Купером и его коллегами на разработку Tripod в программируемую систему форм для Windows 3.0 под кодовым названием Ruby (никакого отношения к более позднему языку программирования Ruby ). Tripod вообще не включал язык программирования. Microsoft решила объединить Ruby с языком Basic, чтобы создать Visual Basic. Генератор интерфейса Ruby обеспечивал «визуальную» часть Visual Basic, и это было объединено с движком Embedded BASIC «EB», разработанным для заброшенной системы баз данных «Omega» от Microsoft. Ruby также обеспечивал возможность загрузки динамически подключаемых библиотек , содержащих дополнительные элементы управления (тогда называемые «gizmos»), которые позже стали интерфейсом VBX . [24]
Microsoft разработала множество производных от VB (классика), в том числе:
Версии до 5 компилировали код в P-Code , который интерпретируется во время выполнения. Преимущества P-Code включают переносимость и меньшие размеры двоичных файлов, но он обычно замедляет выполнение, поскольку интерпретатор добавляет слой в среду выполнения. Приложения VB требуют среду выполнения Microsoft VB MSVBVM##.DLL, где ## — это номер версии, либо 50, либо 60. MSVBVM60.dll входит в стандартную комплектацию Windows во всех редакциях от Windows 98 до Windows 11, хотя некоторые редакции Windows 7 не включают ее. Однако для Windows 95 процесс установки приложения требует DLL, необходимую программе. VB 5 и 6 могут компилировать код как в собственный код, так и в P-Code, но среда выполнения по-прежнему требуется для встроенных функций и управления формами.
Критика VB (до VB.NET) включает: [32]
Все версии Visual Basic IDE, от 1.0 до 6.0, больше не поддерживаются корпорацией Microsoft. Связанные среды выполнения также не поддерживаются, за исключением среды выполнения ядра Visual Basic 6, которую компания Microsoft официально поддерживает на протяжении всего срока службы Windows 10 [35] и Windows 11. [ 36] Компоненты сторонних разработчиков, поставляемые с Visual Studio 6.0, не включены в это заявление о поддержке. Некоторые устаревшие компоненты Visual Basic могут по-прежнему работать на новых платформах, несмотря на то, что они не поддерживаются корпорацией Microsoft и другими поставщиками. Документация по Visual Basic 6.0, ее интерфейс прикладного программирования и инструменты лучше всего освещены в последнем выпуске MSDN перед Visual Studio.NET 2002. Более поздние выпуски MSDN были сосредоточены на разработке .NET и имели значительные части документации по программированию Visual Basic 6.0, удаленные по мере развития языка и прекращения поддержки старого кода. Хотя поддержка поставщика Visual Basic 6 закончилась, и продукт никогда не поддерживался в последних версиях Windows, ключевые части среды по-прежнему работают на новых платформах. Можно получить подмножество среды разработки, работающее на 32- и 64-разрядных версиях Windows Vista, Windows 7, Windows 8, Windows 10 и Windows 11. [37] Благодаря его сохраняющейся популярности [38] существуют попытки сторонних разработчиков и далее поддерживать его, например, Rubberduck. [39]
Следующий фрагмент кода отображает окно сообщения с надписью «Hello, World!» при загрузке окна:
Private Sub Form_Load () ' Выполнить простое окно сообщения с надписью "Hello, World!" MsgBox "Hello, World!" End Sub
Этот фрагмент создает счетчик, который увеличивается на 1 каждую секунду (чтобы это работало, в форму необходимо добавить метку и элемент управления таймером) до тех пор, пока форма не будет закрыта или не произойдет целочисленное переполнение :
Option Explicit Dim Count As Integer Private Sub Form_Load () Count = 0 Timer1 . Interval = 1000 ' единиц миллисекунд End Sub Private Sub Timer1_Timer () Count = Count + 1 Label1 . Caption = Count End Sub
Вы можете выбрать язык, основываясь на том, насколько легко его изучить. Для новичков Visual Basic — хороший выбор. [~snip] Большим преимуществом Visual Basic является то, что это популярный язык, поскольку его легко изучить.
Резюме положительных моментов: Visual Basic прост в изучении и широко доступен.
{{cite web}}
: CS1 maint: постскриптум ( ссылка )Купер ... получил признание в отрасли как «отец Visual Basic». (Юристы Microsoft однажды направили Куперу приказ о прекращении противоправного действия, требуя, чтобы он прекратил использовать это звание. Но после того, как Купер пожаловался, Гейтс все исправил и даже назвал его «пионером Windows» на отраслевой конференции.)