«Я написал огромное количество полезных программ. И совсем немного бесполезных» — Андерс Хейлсберг
У некоторых людей есть потребность создавать что-то новое. Когда эта потребность реализуется в полной мере, появляются произведения искусства, научные открытия, прорывные технологии. Таким человеком является Андерс Хейлсберг, создатель Turbo Pascal, Delphi и C#.
Для многих студентов ВУЗов Turbo Pascal до сих пор остается первым языком, с которого начинается знакомство с программированием. В свое время он был своеобразным прорывом в разработке программного обеспечения. Недаром «в народ» пошел не Pascal, а именно Turbo Pascal.
Однако Хейлсберг на этом не остановился. Благодаря его неугасающей потребности создавать новое появились Delphi и С#. Поэтому для многих Андерс является одним из «супергероев» ИТ-индустрии.
Первые шаги
Андерс Хейлсберг (Anders Hejlsberg) родился в 2 декабря 1960 года в самом крупном городе Дании – Копенгагене, который по совместительству является ее столицей.
Хейлсберг хотел получить инженерное образование в Техническом университете Люнгбю, но так его и не сумел закончить.
Юноша был увлечен программированием с самого детства. В университете Андерс писал программы для машин Nascom.
«В 1979 году я основал в Дании компьютерную компанию PolyData. Это было время, когда персональных компьютеров еще не существовало. Мы продавали компьютерные комплексы и писали для них программное обеспечение. Я написал ассемблер, дизассемблер, небольшую операционную систему и несколько расширений для Microsoft ROM-Basic5.
Моим самым первым большим проектом стал компилятор с языка Pascal и редактор, который мог заменить ROM-Basic» – вспоминает Хейлсберг.
Turbo Pascal
В 1980 году, когда Хейлсбергу было двадцать лет, его увлечение вылилось в собственноручно написанный компилятор языка Pascal. Первоначально это был Blue Label Software Pascal for the Nascom-2. Затем он портировал компилятор под CP/M и популярную операционную систему тех лет MS DOS. В результате компилятор получил название Compas Pascal, а позже – PolyPascal.
В 1983 году мы объединились с ребятами, которые только что основали компанию Borland; они лицензировали наш компилятор Pascal и добавили туда собственный редактор.
Borland выпустила IDE, известную в настоящее время как Turbo Pascal.
TurboPascal 2.0 был некоторое время чуть ли единственным продуктом, который позволял запускать скомпилированные программы и делать бинарники (в .com формате) прямо из редактора без запуска внешнего компиллятора. Это был огромный шаг в плане ускорения разработки, так как программы запускались с дискет и каждый прогон занимал целую вечность.
С версии 3.0 в ТурбоПаскале появился встроенный отладчик. Но только с версии 4.0 (скриншот в начале статьи), которая по интерфейсу полностью отличалось от предыдущей, мы получили то, что в последствии многие годы было стандартом де-факто «турбопаскаль».
Если найдутся желающие попробовать «настоящий турбопаскаль», то он есть здесь — http://penzin.info/retro/
Я помню, как думал, что они сумасшедшие: эти парни продавали новый продукт по цене $49, 95, в то время как он стоил $500! Но достаточно быстро выяснилось, что я ошибался: Turbo Pascal стал очень популярным. Мы продали столько его экземпляров, сколько в начале было невозможно и представить.
Данную версию интегрированной среды разработки Borland поддерживала до 1995 года.
Чтобы решить финансовые проблемы, в 1987 году Андерс переехал в Калифорнию (США), где стал главным инженером фирмы Borland.
Delphi
В 1996 году Хейлсберг и его команда выпустили среду разработки под названием Delphi. В качестве базового языка программирования использовался Object Pascal, который также был разработан этой же командой.
Когда в компании Borland начали работу над Object Pascal, его прародитель (Pascal, созданный когда-то Виртом) находился в довольно запущенном состоянии. Было пересмотрено и переработано множество функций, многое было добавлено и написано с нуля. И в итоге изменения оказались столь колоссальными, что разработчики создали, можно сказать, новый язык программирования.
Своё имя новая IDE Delphi получила в честь древнегреческого города Дельфы. Название было выбрано неспроста: город Дельфы связан с именем бога мудрости и покровителем искусств Аполона. Согласно легенде главное святилище Аполлона находилось именно в этом городе. Его жрицы-сивиллы изрекали пророчества желающим узнать свою судьбу.
«Если вспомнить о предыдущих продуктах Borland, нужно отметить, что Turbo Pascal был весьма успешен — продукты с интегрированными средами разработки существенно повышали производительность труда программистов. Однако первая версия Turbo Pascal для Windows все же не решала самые существенные проблемы, с которыми сталкивались разработчики Windows-приложений, и нам довольно быстро стало ясно, что именно мы должны сделать для решения этих проблем. Создание Windows-приложений должно было начинаться с проектирования пользовательского интерфейса, и это явилось ключевой идеей нового продукта.Когда мы выпустили Delphi, он стал первым средством быстрой разработки приложений, основанным на компилируемом языке программирования, тогда как существовавший в то время Visual Basic мог лишь создавать p-код и был, по существу, основан на интерпретаторе. Я могу сказать, что именно создание Delphi стимулировало появление компилятора в машинный код в последующих версиях Visual Basic», – рассказывает Хейлсберг.
Новая среда разработки охотно запускалась и достаточно быстро работала на машинах под управлением операционной системы Windows. В корпорации Microsoft не могли обойти вниманием этот факт и талантливого инженера Хейлсберга.
Каждый год появлялась новая версия Delphi, но после пятой периодичность нарушилась. Оказалось, что параллельно с разработкой новой версии Delphi, велась разработка нового, Delphi-подобного языка программирования для Linux. Новый продукт получил название Kylix.
Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Этого следовало ожидать, потому что Андерса Хейлсберга все-таки переманили в Microsoft.
Microsoft и C#
В 1996 году Андерс перешел работать в Microsoft: вместо $200 тысяч, которые он получал на старом месте, Билл Гейтс предложил $2,5 миллиона. Там он сначала работал с такими проектами, как J++ и Foundation Classes. Но потом он возглавил команду разработки языка С#. Под его руководством трудились такие программисты, как Скотт Вилтамут и Питер Гольде.
Я был главным архитектором языка. Команда состояла из четырех человек. Мы встречались на два-три часа три раза в неделю.
Microsoft решила отметить новое тысячелетие выпуском новых программных продуктов. К 2000 году компания подготовила промышленные версии новых компонентных технологий и решений в области обмена сообщениями и данными, а также создания Internet-приложений (COM+, ASP+, ADO+, SOAP, Biztalk Framework). В поддержку этих новшеств Microsoft выпустила инструментарий для разработки приложений – платформу .NET. Она также объединяла «под одной крышей» несколько языков программирования, что было в новинку для того времени.
Еще одним новшеством платформы .NET была технология активных серверных страниц ASP.NET (Active Server Page). С её помощью можно было относительно быстро разработать веб-приложения, взаимодействующие с базами данных.
Язык программирования C# был создан специально для ASP.NET. На C# полностью была написана и сама ASP.NET.
«По моему мнению, основное отличие между C# и другими языками программирования, особенно Java, заключается в том, что мы постарались остаться как можно ближе к С++», – объяснял Андерс Хейлсберг.
Когда мы создавали язык C#, у нас было несколько целей. Прежде всего — создать первый компонентно-ориентированный язык из семейства C/С++. Если вспомнить, как производилась разработка приложений пять и даже десять лет назад, мы увидим, что многие разработчики уже тогда создавали специальное окружение для того, чтобы организовать запуск приложения по требованию, выполнение им определенной задачи и его остановку.
С появлением феномена Web и архитектуры «клиент-сервер» природа приложений изменилась. Сейчас нередко создается набор компонентов, выполняющихся под управлением того или иного процесса, — бизнес-объектов для приложений среднего звена, хранимых процедур в серверах баз данных, и именно совокупность таких компонентов сейчас называется приложением.
Кроме того, мы имели в виду и то, каким образом разработчики сейчас проектируют и создают программное обеспечение. Современный подход к проектированию приложений (в том числе и HTML-страниц, и бизнес-объектов) обычно подразумевает использование концепции свойств, событий и методов компонентов или объектов, а также инспектора свойств для их изменения.
Отсюда следует, что для компонентно-ориентированного программирования и для всей индустрии в целом чрезвычайно важно встроить в языки программирования поддержку концепции компонента. Это и была одна из ключевых целей создания С#.
Нашей целью было также создание более продуктивной версии С++. Известно, что разработчики любят этот язык за его мощь и практически неограниченные возможности, но проблема применения С++ заключается в том, что его мощь используется в течение 1% времени, а 99% времени уходит на то, чтобы понять, какую конструкцию языка применить для решения той или иной задачи. Мы решили создать упрощенную версию С++, чтобы повысить производительность труда разработчиков.
Что дальше
В 2012 году Хейлсберг объявил о новом проекте TypeScript, который развивается под эгидой Microsoft.
TypeScript является обратно совместимым с JavaScript и компилируется в последний. Фактически, после компиляции программу на TypeScript можно выполнять в любом современном браузере или использовать совместно с серверной платформой Node.js.
С тех пор, как я занимаюсь компьютерами, мы только и делали, что поднимали уровень абстракции все выше и выше. Уже пройден путь от машинного кода до ассемблера, далее к С, потом С++ и теперь до среды, управляющей исполнением кода, такой как .NET или Java. Пока я не вижу никаких признаков того, что этот список нельзя продолжить. На мой взгляд, интересно, сможем ли мы поднять уровень абстракции выше, чем императивное программирование.
В интервью RSDN Андерс рассказал о том, кем больше ощущает себя.
Андерс, кем вы себя считаете: программистом, проектировщиком, архитектором, теоретиком?
– Думаю, всем понемногу. Хотя мне приходится заниматься высокоуровневым проектированием, я все равно время от времени пишу код, чтобы поддерживать себя в форме.
По материалам https://habrahabr.ru/post/314616/ Автор: Семен Гринштейн