Как стать автором
Обновить

История Visual Studio. Часть 0,5

Время на прочтение 5 мин
Количество просмотров 3.7K
Автор оригинала: Rico Mariani
Единой «Истории возникновения Visual Studio» нет и быть не может: у каждого человека, вовлеченного в ее создание, есть своя версия. Если приспособить известную цитату, то «В Обнаженном Городе ходит множество историй...».

Вероятнее всего, история Visual Studio началась в 1975 году, когда Билл и Пол приняли решение создать BASIC. Возможно, можно было начать и раньше, но я думаю, что 1975 год — это самое дальнее, о чем можно говорить, все еще имея в виду Visual Studio. То было время, когда Microsoft решила иметь программы для разработчиков, а не заниматься, скажем, автоматизацией тостеров.

Старожилы типа меня использовали MS-BASIC на различных микрокомпьютерах; лично я пользовался Commodore PET (я начал на модели PET 2001, чье название было особенно ироничным учитывая то, как он был непохож на компьютеры 21 века… Но я отвлекся). MS-BASIC можно было использовать на Apple или TRS-80, и многие из нас опробовали свои силы именно на этих компьютерах. Немедленная обратная связь и некий личный опыт программирования — все это оставило на нас неизгладимое впечатление.

Те же, кто действительно хотел узнать, что заставляет «тикать» (да, буквально) эти компьютеры, проводили бесчисленные часы, разбирая по частям программы, ими управлявшие. С гордостью могу сказать, что Билл Гейтс научил меня ассемблеру для 6502 и подготовил меня тем самым к работе в Microsoft.

80-е годы были эрой невероятного разнообразия в компьютерах, и, как следствие, в средствах разработки. Множество людей создавали языки программирования, но я не буду перечислять здесь никаких имен и названий, дабы избежать проблем с владельцами торговых марок. Однако же, я уверен, что вы сможете вспомнить несколько различных систем того времени — я сам сходу вспомнил около 5 штук.

Если вы занимались созданием средств разработки для PC, который начал доминировать в середине 80-х годов, ваша жизнь была особенно сложна. Набор инструкций x86 не был особенно красивым; архитектура с сегментами памяти по 64 Кб уже своим существованием причиняла головную боль; попытки же выдавить всю возможную производительность из существовавших тогда процессоров принимали форму причудливых конструкций в языках программирования.

На дворе 1988 год и я, только что из колледжа, попал в Microsoft. В загашнике у меня был компилятор Pascal (разработанный совместно с 4 моими друзьями), а в добавок — ассемблер и линкер. Но я был ну никак не готов к

char _near * far pascal GetString(char far * far * lplpch)

* This source code was highlighted with Source Code Highlighter.


Для начала, какого дьявола ключевое слово pascal делало в написанной на C программе? Единственной визуальной (Visual, см. тему) вещью во всем этом разгулье near и far («ближний» и «дальний») была нужда в бифокальных линзах.

Здесь следует немного вернуться в прошлое.

Компилятор, который я использовал в Microsoft в 1988 году, был Microsoft C 5.1 — славный небольшой такой язык; возможно, один из наших самых удачных релизов. До того времени Microsoft была в зените славы в сфере языков программирования, но потом на этот пирог покусилась некая компания с названием, начинающимся на B. Хорошие продукты, хорошие цены — все это очень способствовало мотивации людей из Зданий 3 и 4 в кампусе Microsoft в Редмонде.

Итак, у Microsoft C уже был 5 большой релиз. Компилятор же BASIC’а, BC6, был только-только выпущен на рынок, и Quick Basic “QB4” был уже на подходе.

Вы могли уже заметить, что я даже не упоминаю о C++. До него нам еще предстоит дойти.

Где, бишь, я? А, да, 1988 год. Проект, над которым я работал, был закрыт после нескольких месяцев разработки (и тут я нахожусь в неплохой компании). То был проект по разработке небольшого миленького варианта языка C, явно приспособленного для инкрементальной компиляции. Назвался этот язык… гм… C#. Но что странно: если посмотреть на него сквозь призму 2009 года, он был удивительно похож на язык, который получился бы, попробуй вы разработать C.NET.

Мейнстримовым проектом того времени был Microsoft C 6.0. Куча нововведений, новые оптимизации, улучшенная отладка. Его основной платформой была операционная система под названием OS/2 — о ней вы могли слышать — но он должен был работать и под DOS. Та еще задачка.

Я работал над средой для разработки; точнее — над браузером исходников. Я занимался этим в основном потому, что я уже работал над подобным браузером для C#, он нравился моим коллегам, да и многие из идей уже нашли применение в Microsoft C 6.0. Я думаю, никто не удивится, если я скажу, что среди первых моих задач было улучшение производительности этой штуки.

Как бы то ни было, среда для разработки — вероятно, самая первая IDE нами выпущенная — называлась PWB или Programmer’s Workbench. Целиком и полностью использовавшая псевдографику, она использовала эти ништячные Character Windows, которые преобладали во флагманских продуктах Microsoft того времени. CW, или, как мы любя ее называли, COW (корова), была замечательной средой, которая обеспечивала всевозможные подмены кода (но не данных) для того, чтобы позволить вам, работая на PC, иметь больше 640 Кб исходного кода. Эта система очень похожа на ту, что использовалась в настоящей Windows того времени (если мне не изменяет память — что-то в районе Windows 2.4.x).

Следствием того, что у вас было всего 640 Кб памяти, и вы хотели использовать IDE было то, что вы, вообще говоря, не могли иметь эту IDE запущенной в тот момент, когда вы либо компилировали код, либо его отлаживали, либо делали что-то, отличное от редактирования: банально не хватало памяти. Посему этой красотке приходилось использовать всякие хитрые штуки. К примеру, для того, чтобы откомпилировать проект, она сначала определяла, какие шаги необходимо выполнить, потом записывала их в файл, прерывала свою работу, оставляя в памяти лишь небольшую заглушку, контролирующую весь процесс, выполняла эти шаги и, в конце концов, восстанавливала себя именно в том виде, в котором вы ее оставили. Это создавало иллюзию того, что IDE резидентной все это время, тогда как на самом деле это все было далеко не так.

Для отладки же нужна была еще большая ловкость рук.

Я думаю, что отладчик CodeView из-за своего влияния был одним из важнейших (если не самым важным) приложением, использовавшим режим DOS Extended Mode. Отладчик, знаете ли, находится в очень сложном положении: ему необходимо иметь в памяти кучу данных (для поддержки отладки) и одновременно с этим должна была быть запущена отлаживаемая программа. Это было довольно непростой задачей, особенно учитывая известную стесненность в объеме оперативной памяти, но там была лазейка. Уже, скажем, в 1989 году, вы могли использовать возможности 386 процессора (если он у вас был) для того, чтобы получить доступ к памяти выше отметки в 640 Кб. Подобные махинации назывались «использовать DOS Extender» и я думаю, что в отладчике CodeView был, вероятно, один из первых подобных Extender’ов и, думаю, он послужил вдохновением для написания подобной системы в другом продукте, с которым вы, возможно, знакомы — в Windows 3.0. Но это совсем другая история.

Ну и вот. Значит, текстовый отладчик, использующий расширенный режим DOS и система сборки, которая завершает работу этого продукта перед тем, как сделать что-нибудь полезное. Устранить все ошибки и — вуаля! — появится первая IDE от Microsoft.
На основе PWB были созданы IDE для множества других языков. Я точно знаю, что браузер исходников поддерживал символы для Basic, Pascal, Fortran, Cobol и C.

То была весна 1990 года и тогда был Microsoft C 6.0. Его IDE стала на несколько лет базовой для компилируемых языков.

Время же не стояло на месте.

С++ уже начал завоевывать мир, а наличие высококачественного оптимизирующего компилятора для C уже не было ни для кого в новинку. К счастью, все это время мы не сидели сложа руки. В то время, как одни были заняты выпуском Microsoft C 6.0, другие работали над С++-фронтендом для нашей системы компиляции. Я думаю, почти все были уверены, что компилятор C++ будет выпущен за очень короткий срок (я говорю «почти», потому что таки были люди, знавшие побольше нашего).

И как же мы ошибались. Нет, на самом деле. Мы ошибались невероятно, фантастически; в стиле «да о чем же мы вообще думали-то!».

От переводчика
Я намеренно разбил исходную «Part I» на две части: текст большой, читать неудобно. Продолжение-окончание первой части — здесь.


Теги:
Хабы:
+52
Комментарии 26
Комментарии Комментарии 26

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн