Почему меня называют «отцом Visual Basic'а»

Полезные статьи и переводы интересных статей
Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16201
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Почему меня называют «отцом Visual Basic'а»

Сообщение Хакер » 10.06.2019 (Пн) 13:50

Автор перевода писал(а):Это мой перевод чужой статьи, которая нужна для более глубокого понимания цикла статей, которые я собираюсь написать.
Автор оригинала: Alan Couper, человек, причастный к созданию VB.
Оригинал находится здесь: https://www.cooper.com/alan/father_of_vb.html


Митчел Вэйт назвал меня «отцом Visual Basic'а» в предисловии к, как я полагаю, первой когда-либо опубликованной книге по VB, называвшейся «Visual Basic How-To». Я подумал, что такое определение было удачным, и часто использую эти слова в качестве сверх-краткого рассказа о себе.

В 80-е моя деятельность состояла в том, чтобы придумывать компьютерные программы и продавать их издателям. В 1986 году я выбрал Microsoft Windows в качества предпочитаемой платформы. И не столько из-за того, что всё, что касалось пользовательского интерфейса, работало как полагается, сколько из-за уникальной и чертовски нужной особенности: используя возможности динамически линкуемых библиотек (DLL), вы могли создавать инструменты, которые бы могли менять свою работу динамическим образом. В момент, когда я это узнал, я понял, что Windows ждёт огромное и успешное будущее. Я узнал и другой очень важный факт, относящийся к Windows в тот момент: её программа-оболочка (shell) была ужасной.

В свободное время я сразу же взялся писать оболочку, которая была бы лучше, чем та, с которой шла Windows. Я назвал её «Tripod». Оригинальная Microsoft'овская оболочка, которая называлась MSDOS.EXE, была чертовски тупой, и это было камнем преткновения на пути Windows к первому успеху. Tripod должен был попытаться решить эту проблему, будучи более простым в использовании и настройке. Но лишь в конце 1987 года, когда я беседовал с одним корпоративным клиентом, у меня в голове возникла ключевая концепция разработки. Когда этот менеджер по информационным системам объяснил мне его потребность в создании и выпуске широкого ряда разнообразных оболочек для его разношерстной клиентской базы, меня осенило, что нет такой вещи как идеальная пользовательская оболочка. Каждому пользователю понадобится своя собственная оболочка, настроенная по его собственным потребностям и уровню умений. В то же мгновение я осознал решение проблемы: это должен быть конструктор пользовательский оболочек — инструмент, с помощью которого каждый пользователь сможет сконструировать себе именно ту оболочку, которая ему или ей нужна для своей уникальной комбинации [используемых] приложений и своих навыков. Не я бы рассказывал пользователям, что представляет собой идеальная оболочка, а они смогли бы сами создать свою собственную персонифицированную идеальную оболочку.

С того момента, когда у меня появилось такое виденье продукта, с подробностями его устройства всё встало на свои места относительно легко. Должна была быть палитра инструментов, и пользователь бы мог создавать «формы» и наполнять их экземплярами инструментов. Набор инструментов включал бы в себя стандартные контролы, такие как кнопки или списки, но также включал бы в себя особые, специфичные для оболочек, виды контролов, такие как списки, которые бы автоматически отображали содержимое директорий.

Я начал работу над этой новой версией Tripod'а, и уже через пару месяцев имел почти завершённый, работающий прототип. Я использовал исключительно Си. Одной из возможностей, придуманных на протяжении этого отрезка времени, была идея о том, что интерфейс должен быть полностью управляемым с помощью drag-n-drop'а. Пользователь мог бы сцепить два контрола — я называл их штукенциями (gizmos) — друг с другом, кликнув правой кнопкой и протащив мышкой от одной штукенции к другой. Визуальная стрелка, идущая от события первой штукенции к методу второй штукенции, соединила бы их логически. В конечном счете Microsoft выкинули эти стрелки, но модель событий и методов осталась.

Поскольку я был задействован в бизнесе по придумыванию программ и продаже их издателям/распространителям, я начал показывать Tripod разным людям из индустрии. Многие компании в Кремниевой долине посмотрели его, но немногие выразили серьёзный интерес. Однако, в марте 1988 я показал этот прототип Биллу Гейтсу, и он сразу же увидел его потенциал. Он заявил, что это «круто» и что это окажет значительное влияние на их линейку продуктов. Билл сказал, что он хочет купить его (Tripod), и через несколько месяцев мы заключили сделку. Поскольку название «Tripod» было слишком заезженным, мы сразу поменяли его на «Ruby». Тем временем я собрал команду из опытных разработчиков, чтобы сделать программу с качеством, достойным релиза.

Команда состояла из Марка Меркера, Гари Краткина, Майка Гири и Фрэнка Рааба. Первое, что мы сделали — это выбросили код моего прототипа и начали с нуля. Он разросся до размера в более чем 25 000 строк кода на Си, и хотя он и содержал много значимых идей, на коде отразилась его роль в качестве тестового полигона для отработки разных идей. Вся команда работала не покладая рук следующие 18 месяцев, чтобы в конце концов породить на свет Ruby. Продукт был проверен командой подтверждения качества в Microsoft, и мы отправили финальный образец в Редмонд (город, где находится штаб-квартира Microsoft — прим. пер.)

Изображение
(Вот фотография команды Ruby, снятая примерно весной 1989. Слева направо: Фрэнк Рааб, Майк Гири, Алан Купер, Гари Краткин, Марк Меркер)

Продукт «Ruby» воплотил в себе множество значимых новшеств разработки ПО, но два из них выделяются отдельно как особо удачные. Как я уже упоминал, возможность динамической линковки в Windows всегда интриговала меня, но иметь инструмент и знать, что с ним делать, — разные вещи. С Ruby я наконец придумал два практических применения динамической линковки, и оригинальная программа содержала оба. Во-первых, язык программирования был доустанавливаемым и мог расширяться динамически. Во-вторых, палитра штукенций тоже могла быть расширена динамически.

Ruby шёл с маленьким языком программирования, предназначенным лишь для выполнения дюжины или около того простых команд, в которых программа-оболочка нуждалась. Однако, этот язык был реализован как цепочка DLL, любое количество которых могло быть установлено в процессе работы. Внутренний парсер идентифицировал действие (команду) и затем передал его по цепочке DLL до тех пор, пока одна из них не подтвердит, что знает, как обработать команду. Если все DLL спасовали, это означало, что у нас ошибка синтаксиса. Начиная с наших ранних обсуждений, и Microsoft, и я лелеяли идею роста этого языка, возможно даже с заменой его целиком на «настоящий» язык. Язык Си был кандидатом, который упоминался чаще всего, но, в конце-концов, Microsoft воспользовался преимуществом этого динамического интерфейса, чтобы отсоединить наш маленький оболочечный язык программирования и заменить его целиком на QuickBasic. Эта новая «женитьба» языка программирования на визуальной внешней среде стала статической и постоянной, и хотя первоначальный динамический интерфейс сделал это совокупление возможным, сам он был утрачен в процессе работы.

С самого начала процесса проектирования я настаивал на идее сделать палитру штукенций динамической. Я представлял себе продукт, к которому сторонний разработчик сможет написать свои собственные штукенции в виде DLL-шек, и пользователи смогут добавить их в свой продукт в «полевых условиях» без необходимости перекомпиляции. Мы определили интерфейс, посредством которого Ruby опрашивал бы рядом лежащие исполняемые файлы с помощью сообщения-запроса. Если файл откликался подобающим образом, Ruby понимал, что с ним взаимодействует штукенция, и продолжал взаимодействие, запрашивая у него иконку для отображения в палитре инструментов. Этот интерфейс в итоге стал известен под именем VBX. Насколько я знаю, это был первый случай практического применения возможности Windows по динамической линковке, не считая использования DLL в самой операционной системе. Выдающийся успех динамической линковки оправдывал и веру в неё со стороны Microsoft, предоставивших её, и веру со стороны меня, искавшего практическое применение для неё.

Поскольку Microsoft обладал исключительными правами на Ruby, они могли поступать с ним как захотят. Первоначальным намерением было выпустить его вместе с Windows 3.0 в качестве новой, более мощной и продвинутой оболочки, почти как та, что идёт с Windows 95 в настоящее время. Вместо этого Microsoft решили выпустить Windows 3.0 с оболочкой, которая выглядела почти так же как оболочка, что шла вместе с OS/2 — продуктом, которым Microsoft владел на то время. Было сделано решение отложить выпуск Ruby и переделать его из инструмента для построения пользовательских оболочек, предназначенный для всех пользователей Windows, в визуальный язык программирования, предназначенный для профессиональных, путём добавления QuickBasic'а. Поначалу я был очень разочарован решением Microsoft и выступал против него. Однако, я был впечатлён мощью мощью получившегося продукта и вскоре стал воодушевлённым приверженцем Visual Basic'а.

На протяжении всего времени, что я работал над Ruby, я был скован жестким соглашением о неразглашении, заключённым с Microsoft, и не мог рассказать никому над чем я работаю. На протяжении почти пяти лет я хранил молчание, хотя и знал, что Ruby произведёт тектонические сдвиги в индустрии программирования. Вскоре после релиза VB, мой друг Митчел Вэйт позвонил мне и спросил, не я ли тот самый Купер, который указан в VB'шном диалоге «О программе». Я сознался, что это я, и он пригласил меня на ланч, на котором бы мог выслушать от меня полную историю из первых уст. Мы встретились в Сан Франциско и я рассказал ему всё то же, что только что рассказал вам. Когда я закончил, он посмотрел на меня с изумлением и сказал: «Стало быть ты отец Visual Basic'а!».

У меня двое сыновей: 9 и 10 лет, и хотя я был причастен к их созданию и по прежнему остаюсь значимой частью их жизни, они — независимо мыслящие люди сами по себе. По мере того, как я смотрю, как они растут каждый по своему и делают свои собственные решения касательно своей жизни, я понимаю, что на самом деле значит быть отцом, и фраза, сказанная Митчелом, поражает меня всё больше с каждым днём. Я создал VB так же, как маленьких Скотта и Марти. Я стою рядом как гордый отец VB по мере того, как он растёт, взрослеет и создаёт собственную культуру вокруг себя.

Изображение
В марте 1994 на конференции Windows World в Атланте Билл Гейтс наградил меня одной из всего лишь семи наград «Windows Pioneer» (первопроходец/новатор Windows) за мой вклад в обеспечение успеха Windows путём создания Visual Basic'а.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Вернуться в VBStreets Knowledge Base

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList