Vvmebel.com

Новости с мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Создатель языка программирования c

Взял и сделал

Скончался создатель языка программирования C

Восьмого октября скончался Деннис Ритчи. В неспециализированных СМИ о нем писали (если писали) кратко: создатель языка программирования C и один из разработчиков операционной системы UNIX. Даже перечисление наград, которые Ритчи получил за свой вклад в наше компьютерное «сегодня», кажется, не сделало уход этого человека из жизни заметнее. А жаль.

Жаль не потому, что смерть человека должна сопровождаться помпезностью и шумом в СМИ. Но это хороший повод еще раз вспомнить, а кто не знал — узнать о том, насколько большим был его вклад во все то, чем мы пользуемся в нашей повседневной жизни.

Язык C, пожалуй, одна из тех вещей, которые рано или поздно должны были появиться. Это как колесо, только сложнее. Но чтобы он появился, нужно было приложить недюжинные усилия. Как писал о нем другой гениальный программист, создатель языка C++, Бьерн Страуструп: «Все говорили, что это невозможно, а он взял и сделал» («They said it couldn’t be done, and he did it»).

Лучше всего ситуацию, сложившуюся к началу 1970-х годов, описывает один из видных экспертов языка C++, Герб Саттер (Herb Sutter) в записи, приуроченной к смерти Ритчи: «Не было такой штуки, как язык программирования общего назначения, такой, чтобы написанная на нем программа могла работать на различном компьютерном оборудовании и при этом работать достаточно эффективно, чтобы сравниться с программой, написанной именно под это оборудование. Фортран был хорош для написания кода, ориентированного на обработку массивов и чисел, но никто не мог использовать его как язык общего назначения, с помощью которого можно построить все что угодно, вплоть до операционной системы».
box#2094693

«И тут появляется молокосос, который решает в одиночку определить язык, который позволит людям писать программы, которые будут а) высокоуровневыми, со структурами и функциями, б) переносимыми на любую модель компьютера и в) эффективны на этом компьютере настолько, что сравнятся с написанными на ассемблере специально под эту модель программами. Высокоуровневый, переносимый, эффективный язык программирования. Как глупо! Все знали, что это невозможно».

Но Деннис Ритчи вместе с Кеном Томпсоном все-таки сделали это. Изначально C был создан для операционной системы UNIX, которую они разрабатывали. Уже в 1973 году вышла четвертая версия UNIX, полностью переписанная на C. Созданный как менее ресурсоемкий аналог существующей ОС MULTICS, UNIX впоследствии повлиял на целое семейство операционных систем. Такие системы, как Mac OS X и BSD, являются прямыми «потомками» UNIX. А проект GNU, запущенный Ричардом Столлманом в 1983 году, ставил перед собой задачу написать операционную систему, которая была бы как UNIX, только «свободной». Даже само название, GNU, является рекурсивной аббревиатурой от «GNU’s Not Unix».

В дальнейшем, благодаря достижениям Ричарда Столлмана и Линуса Торвальдса появилась система Linux, множество дистрибутивов которой развиваются по сей день, в первую очередь как серверные ОС. Впрочем, на домашних и рабочих компьютерах тоже нередко можно встретить Ubuntu, Debian или какую-нибудь другую Linux-based систему.
box#2094694

Но язык C превзошел даже UNIX. Хоть C и был написан «программистами для программистов» и не был предназначен для новичков, впоследствии его нередко использовали для обучения программированию. Пожалуй, каждый, кто начинал изучать какой-либо язык программирования, пробовал написать программу «Hello, World!», которая выводит на экран приветствие миру. Впервые пример такой программы появился в книге-пособии «The C Programming Language», написанной Деннисом Ритчи и Брайаном Керниганом в 1978 году.

Благодаря широкой применимости C, он использовался не только для написания программ, но и для создания операционных систем. Кроме того, целый ряд языков программирования так или иначе основаны на C: C++, C#, Java, Perl, PHP, Objective-C. Если по-простому, то это Windows, Mac OS, Linux, Android, iOS и Symbian, написанные на C или C++. Это миллионы и миллионы программ на компьютерах и смартфонах. Это миллионы сайтов в интернете.

Неизвестно, как бы все это выглядело, не будь Деннис Ритчи тем, кем он был. Сообщество «программистов» (в широком смысле слова) по достоинству оценило его вклад. Но знали ли о нем «простые пользователи»? Хотелось бы верить. Спасибо Вам, Деннис.

Деннис Ритчи — отец языка программирования С

Деннис Ритчи — это человек создавший очень популярный язык программирования — «C», или как его еще называют — «Отец языка программирования С». Деннис родился 9 сентября 1941 года в Бронксвиле, штат Нью-Йорк. Его отец Алистер Ритчи работал системным инженером в Bell Labalatories.

Немного позже Ритчи с семьей переехали в Нью-Джерси, окончил высшую школу Саммита, затем получил степень бакалавра в Гарвардском университете, в области физики и математики в 1963, а потом Доктора философии математики в 1968.

Деннис — один из ключевых разработчиков ядра Unix, а также соавтор книги «Денис Ритчи Язык программирования С». Он работал с Кеном Томсоном, человеком, который написал оригинальный Unix. Позже он работал над языком Си вместе с Брайеном Керниганом, их вместе еще называли K & R — Керниган и Ритчи. Денис сделал очень большой вклад в Unix. Особенно в то, что Unix была портирована для различных платформ. Его идеи до сих пор живут в центре дизайна операционных систем практически во всех новых языках программирования и в каждом бите информации.

Карьера Ритчи

Деннис Ритчи начал свою карьеру в 1967 году — Bell Laboratories, центре вычислительных исследований. Это один из самых известных центров цифровых инноваций в мире, а также место где родился транзистор.

Джон Ким, президент Alcatel-Lucent Bell Labs, говорил:

Деннис хорошо относился к своим коллегам в Bell Labs, и нам его будет очень не хватать. Он по-настоящему вдохновлял всех нас. Не только своими многочисленными достижениями, а еще и потому что он был другом, изобретателем, скромным и милым человеком. Мы хотели бы выразить глубочайшие соболезнования семье Ритчи и всем кто каким-либо образом был с ним связан.

В Bell Labs Ритчи работал над проектом Multics. Эта то была операционная система, которая должна была совместить идею пакетной обработки и интерактивности. Программа запускалась из карточного стека, и программист, оператор или сам пользователь имел полный контроль над выполнением программы. Тогда Денис встретил Кена Томсона, который позже станет одним из главных сотрудников Ритчи:

Одной из очевидных вещей почему коммерческий успех Multics не состоялся было то что она очень сложна. В ней было слишком много всего — Деннис Ритчи

Вскоре Bell Labs перестали работать над Multics, но Ритчи и Кен решили не отказываться от идеи взаимодействия с пользователем, и начали работать над его приемником — Unix. Теперь это современная операционная система, ее распространение началось в 1973 году.

Язык программирования Си

Разнообразие компьютерных платформ семидесятых годов плохо отразилось на жизни создателей программного обеспечения. Им нужно было либо тратить время и энергию на создание своего программного обеспечения для различных новых платформ, либо ограничить свои программы работой только на одной платформе.

Оригинальное ядро Unix было написано на ассемблере, но Ритчи и Кен решили, что им нужен язык высокого уровня, чтобы получить больше контроля над всеми данными и операционной системой.

Они использовали BCPL (Basic Combined Programming Language) чтобы написать UNIX, сжали его до восьми килобайт и переименовали в B.

Потом Ритчи пошел еще дальше и разработал новый язык программирования, называемый С. Это была модернизация языка B, добавившая типы данных и новый синтаксис. B был интерпретируемым языком, для его выполнения была необходима прослойка между процессором и командами языка, Си же компилируемый. Он сначала переводится в машинный код, а затем уже выполняется непосредственно процессором.

UNIX — простая операционная система, но вы должны быть гением чтобы понять ее простоту. — Деннис Ритчи

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

Читать еще:  Сетевое программирование сокетов

Ритчи и Кен переписали UNIX на Си, и это дало ему возможность переносимости, а также дало возможность программистам использовать одну операционную систему, один язык программирования и небольшой набор инструментов. Поэтому Unix позже и занял свое место операционной системы для экспериментов и создания сетей между компьютерами.

«Очевидно, что человек, который имел наибольшее влияние на мою карьеру это Кен Томпсон.» — Деннис Ритчи

В 1978 году была издана книга Денниса Ритчи и Браена Кенигана — Язык программирования Си. Книга охватывает краткое введение в язык Си, а также различные техники и стили программирования. Эта книга остается практическим руководством для многих программистов до сих пор.

К середине 1980 язык Си стал одним из самых популярных языков программирования в мире. Из-за функциональности и скорости, с которой Си может быть легко использован для создания программного обеспечения и запуска его на различных платформах, многие компании начали использовать Си для разработки своих продуктов.

Язык программирования Си все еще используется в настоящее время как второй по популярности язык программирования в мире для создания прикладных систем, операционных систем, и развития встраиваемых систем. Его влияние все еще заметно во многих современных языках. Так же как и концепции UNIX сейчас считаются вычислительными заповедями.

«С уже был реализован для нескольких совершенно различных машин и операционных систем, UNIX уже распространяется на PDP-11, но переносимость всей системы была совершенно новой.» — Денис Ритчи

Последний важный вклад, который сделал Деннис Ритчи в Unix, это механизм потоков, который используется для соединения устройств, приложений и протоколов.

Windows, Mac, Linux и.

Потомков Unix и языка Си трудно пересчитать, это Linux, Android, Mac OS, IOS, JavaScript, C++ и многие другие, которые используются в мире интернет-технологий, полном разработчиков программного обеспечения.

Многочисленные приложения написаны на С или на его объективно ориентированном потомке С++. Си был стандартизирован ANSI и ISO, потому что на основе него сегодня строится почти каждый аспект информационной индустрии.

В качестве примера языков, которые были созданы позже на основе Си можно привести С++ или JavaScript, кроме того, браузеры написаны на Си. Microsoft Windows изначально была написана на Си, и даже обе операционных системы от Apple основаны на Unix.

Нет никаких сомнений, что вклад Денниса Ритчи значительно изменили ядро компьютерной индустрии.

Стиль программирования, который обеспечивается в Си, вероятно, будет использоваться все меньше и меньше. Но JavaScript и XML будут продолжать становиться все более важными. — Деннис Ритчи

Ричти позже стал руководителем департамента исследований компьютерных систем в Lucent Technologies и стремился сделать компьютеры проще и лучше для пользователей, вплоть до своего выхода на пенсию в 2007 году.

Награды

  • Награда АСМ за выдающиеся успехи в системах и языках в 1974 году.
  • Награда IEEE Emmanuel Piore в 1982
  • Награда сотруднику Bell Labs в 1984
  • Премия имени Тьюринга в 1983 году
  • Награда ACM Software Systems в 1983
  • Был номинирован Национальной академией инженеринга Соединенных Штатов Америки в 1963
  • Медаль IEEE Хэмминга в 1990.
  • Член музея компьютерной истории в 1997 году.
  • Национальная медаль Соединенных Штатов от президента Билла Клинтона за его работу над операционной системой UNIX и языком программирования C В апреле 1999 года.
  • Премия от Industrial Research Institute за его ценный вклад в науку и технологии в 2005 году.
  • Японская премия по информатизации и разработке UNIX в 2011 году.

Все награды, которые получил Деннис Ритчи также получил и Кен Томсон.

Смерть Ритчи

Деннис жил сам в своем доме в Беркли Хайтс штат Нью Джерси. Был найден мертвым 12 октября 2011 года. Причины и точное время смерти неизвестны. Последние несколько лет у него было слабое здоровье после лечения рака предстательной железы и сердечно сосудистых заболеваний.

Он умер через неделю после смерти Стива Джобса, но это не было так ярко освещено прессой. Релиз Fedora Linux 16 в 2012 году был посвящен памяти Денниса Ритчи.

Пол Крези, компьютерный историк, после смерти Ритчи сказал:

Деннис Ритчи – создатель языка программирования Си

Так кто же такой Деннис Ритчи? Его полное имя — Деннис Макалистэйр Ритчи (Dennis MacAlistair Ritchie), годы жизни — 9 сентября 1941 — 12 октября 2011. (Эта дата, когда обнаружили тело, причина смерти и точная дата смерти до сих пор не установлена, по разным сведениям смерть могла наступить в промежутке от 8 октября 2011 года до 12 октября 2011 года, то есть всего на три дня позже Стива Джобса). Родился Деннис в Бронксвилле, город Нью-Йорк, США, там же учился и окончил Гарвард со степенью бакалавра по физике и прикладной математике. И в 1967 году начал работать в лаборатории Bell Labs , где и зародилось будущее зерно всех наиболее известных на сегодняшний компьютерных изобретений.

Именно тогда, для нового ядра операционной системы (UNIX) Ритчи предложил новый язык, получивший название B(Би). Позже, совместно с Кеном Томпсоном они изобрели язык программирования C, что сделало их пионерами современной вычислительной техники. Данный язык программирования до сих пор применяется для написания различных приложений и операционных систем. Юникс (UNIX), в свою очередь, оказал такое же сильное влияние на идеи и принципы, и по сей день используемые в вычислительной технике. Набирающие популярность операционные системы GNU/Linux и Mac OS X, также являются плодами работ Денниса Ритчи, ОС Microsoft Windows также использует инструменты для совместимости с UNIX-подобными системами и компилятор C для разработчиков.

Без его разработок трудно представить сегодняшний цифровой мир, особенно современный интернет. Поскольку всё в web-паутине создано на основе Cи и UNIX. На этом языке программирования написаны интернет-браузеры и веб-сервера. Всё сетевое оборудование также создано на языке Си. А если и на других языках, таких как Java или C + +, то в основе этих языков также лежит язык программирования C. Языки Python и Ruby также имеют под собой основу в виде языка Cи. [original:seо-sеmki.ru]
Но, кроме того, все операционные системы, наиболее популярные в настоящий момент, вышли из этого языка. UNIX лежит и в основе ОС Windows, и в основе настольной операционной системе Apple, и в системах Mac OS X и IOS, на которых работают iPod, iPhone и IPad.
До самой своей смерти Ритчи продолжал исследования в области операционных систем (Plan 9 и Inferno) и языков программирования (Limbo).

Таким образом, подводя итог этой истории, можно сказать, что хотя никто и не умаляет заслуг Стива Джобса в создании и развитии индустрии цифровых развлечений в виде модных и стильных вещичек, но теперь вы знаете настоящую правду, кто на самом деле стоит незримой тенью за всем этим, и можете с полным правом сказать: Платон мне друг, но истина дороже…

И напоследок капля юмора — демотиватор на тему «Дизайн, айфон и apple» о креативности дизайнеров компании Apple.

И не забудьте поделиться ссылкой в социальных сетях с друзьями (их кнопки вверху слева) – вам нетрудно, а мне приятно.

Почему языки C, C++, C# так называются?

На фоне таких названий языков программирования, как Prolog, Pascal, Python названия из одной буквы или буквы со знаками выглядят странно. Но в них есть свой смысл. В этой статье мы узнаем, как эти языки получили свои названия.

Читать еще:  Объект в программировании

1. C это следующая буква после B

В 1969 в компании Bell Labs Кен Томпсон и Деннис Ритчи решили написать язык B, чтобы улучшать операционную систему UNIX.

Кен Томпсон

Изначально ОС UNIX была написана на ассемблере, что сильно замедляло ее доработку.

Деннис Ритчи

Дальше произошла история, которую некоторые считают легендой. Сотрудники Bell Labs Брайан Керниган и Деннис Ритчи любили одну компьютерную игру. Но она запускалась на сервере. Они решили перенести эту игру на компьютер, который стоял у них в офисе. Попытка перенести игру кончилась неудачей, так как операционная система была написана на ассемблере и машинные коды компьютеров не совпадали.

Брайан Керниган

Тогда им пришло в голову, что нужно написать операционную систему на языке более высокого уровня. За основу взяли язык B и назвали новый язык New B. Но это было неудобно и поэтому позже переименовали этот язык в язык C, взяв следующую букву алфавита.

В 1973 язык С уже стал достаточно развит и на нем переписали операционную систему UNIX. С того момента язык С становится основным языком системного программирования.

2. C плюс единичка

В конце 67-х годов появился язык Simula 67, в котором были впервые сформулированы принципы объектно-ориентированного программирования. В 1980 году сотрудник всё той же компании фирмы Bell Labs Бьёрн Страуструп писал на языке Simula программу моделирования телефонных вызовов. Но Simula очень медленно работал. В то время как язык С был намного быстрее.

Бьёрн Страуструп

Тогда Страуструп решил добавить принципы ООП в язык C. Получившийся язык сначала был назван «C with classes» («Си с классами»). Название «С++» придумал Рик Мэсчитти. В название использован оператор «++», что на языке С означает добавить единичку. То есть к множеству возможностей C добавлена еще одна.

При этом в самом начале этот язык не имел собственного компилятора. Сначала текст программы обрабатывался препроцессором, а потом передавался компилятору C.

Первый коммерческий выпуск язык C++ состоялся в октябре 1985 года.

3. C плюс половинка

В 2000 году компания Microsoft подготовила инструментарий для разработки приложений – платформу .NET. Одним из компонентов этой платформы стала технология активных серверных страниц ASP.NET (Active Server Page). Она была написана на языке C#. Читается С Sharp (от англ. sharp — диез). Или на программистском сленге — «Си диез».

Авторами языка программирования C# стали четыре человека. Руководил группой Андерс Хейльсберг, который до этого разработал Turbo Pascal и Delphi.

Андерс Хейлсберг

Возможности C# копируют возможности языка Java, который был выпущен в 1995 году и стал очень популярным.

Основное отличие между C# и другими языками программирования, особенно Java, заключается в том, что мы постарались остаться как можно ближе к С++

Ключевым отличием от C++ (как и в языке Java) стало следующее изменение. Так как в C++ есть множественное наследование, которое приводит к проблеме «Алмаз смерти«, то в C# множественное наследование было убрано. Таким образом, к языку С добавлена уже не единичка, а половинка. В музыке знак # (диез) как раз и означает означает повышение звука на полтона.

Но есть и другая трактовка. Если присмотреться, то диез состоит из четырех маленьких плюсиков. Поэтому C# — это сокращенное название C++++.

После появления этих вариантов языка C каждый из языков стал развиваться самостоятельно. Но популярности С клоны так и не достигли. Это можно посмотреть в рейтингах языков программирования.

4. Существует ли язык C минус единичка?

Да, существует. Только сейчас он по-другому называется. С названием у этого языка вообще не задалось.

В 1992 году компания Nombas начала разработку встраиваемого скриптового языка Cmm (Си-минус-минус). Этот язык потом был переименован в ScriptEase. В апреле 1995 года Брендан Эйх доработал этот язык и назвал его Mocha.

Брендан Эйх

Затем этот язык переименовали в LiveScript, а в декабре 1995 этот язык получили свое окончательное название — JavaScript.

Исходники

Другое

Интервью с создателем языка программирования C++

Сегодня имя Бьерна Страуструпа проходят в университетах. Это живая легенда, человек, создавший язык C++. В интервью CNews он поделился своим видением современной России и перспектив, открывающихся перед ИТ в нашей стране, а также рассказал о новом стандарте языка — C++0x, о возможностях и принципах разработки которого пойдет речь на на конференции CEE-SECR.

CNews: В ближайшее время будет презентован новый стандарт C++. Что изменится в этом языке программирования? Какие новые возможности появятся?

Бьерн Страуструп: У нас уже есть окончательный «черновик» проекта для версии C++0x. Я ожидаю, что он будет скорректирован в соответствии с официальными комментариями и утвержден окончательным голосованием 12 мая 2011 года. После этой процедуры, через несколько месяцев, необходимых на соответствующие бюрократические формальности, он станет официальным стандартом ISO. Никаких существенных изменений в подготовленном проекте не ожидается.
Бьерн Страуструп: Не нужно препятствовать студентам, профессорам, исследователям заниматься предпринимательской деятельностью или сотрудничать с бизнесом

Первое: изменения будут практически полностью совместимы с существующим стандартом. Комитет постарался cделать все возможное, чтобы правильно обработать существующие исходники ISO C++. Нарушения компиляции будут происходить в случае, если в старом коде использованы идентификаторы, которые в новом стандарте являются ключевыми словами. Так что если в вашем коде использованы идентификаторы static_assert, constexpr, или nullptr — мы приносим свои извинения, но существующий код придется изменить. Хорошей идеей было бы начать миграцию с широкоизвестных библиотек, интегрированных в новый стандарт. Это, в частности, thread, unordered_map, и regex.

C++0x был разработан для улучшения языка C++ в области системного программирования и построения библиотек. Также мы хотели сделать C++ более простым для изучения. Думаю, высокоэффективным решением было произвести сотни небольших изменений вместо того, чтобы выпустить одно или два глобальных расширения. Одним из показателей проведенной работы является то, что объем языковых разделов стандартных выражений вырос на 27%, а библиотеки — на 100%, но, вероятно, эти цифры преувеличивают степень внесенных изменений: около половины добавленных текстов являются разъяснениями для разработчиков.

Если говорить о возможностях, то их список вряд ли поможет по-настоящему оценить C++0x. Посмотреть их описание можно в моем my C++0x FAQ . Первое, что приходит на ум – безопасная поддержка традиционного параллельного программирования с использованием threads, locks, и так далее. Привлекательными для многих разработчиков окажутся регулярные выражения, хэш-таблицы, генераторы случайных чисел. В практическом использовании языка появилась возможность объявлять функции с указанием возвращаемого типа в конце (ключевое слово auto), разрешение лямбда-выражений, шаблоны с переменным количеством аргументов. Добавлен конструктор посредством списков инициализации, улучшен конструктор констант, упрощена работа for-loop. Иными словами, стандарту C++0x есть, что предложить, но программистам потребуется время для сочетания новых возможностей с эффективным стилем программирования.

CNews: Как создаются новые версии стандарта языка программирования? Какой вклад в этот процесс могут внести русские программисты?

Бьерн Страуструп: Различные языки имеют различные процессы стандартизации, и значение слова «стандарт» понимается тоже по-разному. C++ использует формальный, медленный и демократический процесс ISO, который считается эталоном для систем стандартизации. ISO категорически отличается от стандартизации языков, принадлежащих корпорациям : там «стандарт» подразумевает последнюю версию продукта.

Комитет по стандарту ISO C++ проводит свои заседания в течение недели трижды в год. Национальные комитеты по стандартизации также принимают участие во встречах и присылают своих представителей. Основная часть работы над стандартом заключается в постоянном общении по электронной почте, обсуждении вопросов и предложений, и работы над рядом документов, представленных в комитет. Их можно найти по запросу в поисковике «WG21» — они находятся в свободном доступе. На моей странице публикаций есть ссылки на те из них, в создании которых я принимал участие.

Читать еще:  Изучение языка программирования си

Любое действие в комитете осуществляется по достижении консенсуса среди нескольких десятков человек из двух десятков стран. Эта мера позволяет предотвратить какие-либо радикальные изменения. Процесс продвигается медленнее, чем хотелось бы, но гарантирует широкое признание конечного продукта. Технические голосования осуществляются организациями (один голос на организацию), и финальное – странами-участниками (один голос на страну).

В принципе, принять участие в этом процессе можно через государственный орган по стандартизации. Россия уже направляла своих представителей ранее, но я не знаю, насколько они активны в настоящее время. Думаю, что неплохой идеей было бы собраться русским программистам вместе, возродить русский комитет C++, принимать участие во встречах (лично, по телефону или через электронную почту), чтобы их голос был услышан. Наиболее эффективное влияние оказывают представители, участвующие в заседаниях (и голосованиях).

Уже слишком поздно вносить существенные изменения в стандарт C++0x («существенные» в том значении, как его понимает большинство), но целью для русских специалистов может стать участие в разработке C++1x.

CNews: Как вы считаете, что произойдет с С++ через 10 лет? 20 лет?

Бьерн Страуструп: При нынешних темпах развития за это время произойдет два или три изменения стандарта. Я ожидаю таких изменений, которые в значительной мере будут отражать потребности большинства групп пользователей, новые лучшие методы программирования. 10 и 20 лет – это весьма длительные периоды в среде ИТ. Язык C++ отметит свой 25-летний юбилей в качестве коммерческого продукта, пока я нахожусь в Москве. Первый релиз (от AT&T) и публикация моей книги «Язык программирования C++» состоялся 14 октября 1985 года.

Какие новые разработки хотелось бы увидеть? У меня нет реальных идей. Надеюсь, что будут поддерживаться модели с более высоким уровнем параллелизма, и что различные стили программирования, которые мы знаем как «мультипарадигмы», будут правильно интегрированы в четко сформулированные системы проектирования и программирования (и получат хорошее описывающее наименование). Я надеюсь на значительное увеличение безопасности в современном коде. В идеале, на появление безопасного типа программирования.

CNews: Существует ли идеальный программист? Если да, то как он выглядит?

Бьерн Страуструп: В действительности, программирование – это кластер из соответствующих навыков и действий. Никто не может быть лучшим во всех аспектах программирования. Я хочу, чтобы мои программисты имели твердые фундаментальные знания (алгоритмы, структуры данных, архитектура, и т.д.) и специализацию (например, графика или приложения для исторических исследований). Хороший программист также должен уметь общаться (устно и письменно) и быть эффективным членом команды. Я думаю, что степень магистра является нужным уровнем образования для разработчика нетривиальных систем. Я написал короткую заметку по этому поводу: «Чему мы должны обучить разработчиков ПО? Почему?»

CNews: 10-20 лет назад новые языки программирования создавались очень часто. Теперь ситуация изменилась – новичков меньше. Существует ли необходимость в новых языках программирования? Какими они должны быть?

Бьерн Страуструп: Действительно ли 10 или 20 лет назад создавалось больше языков? Помню, когда я начинал на С++, общепринятым было мнение, что время новых языков прошло. Старые языки довольно прочно «стояли на ногах», и язык Ада подавлял все новое. Последние 50 лет появлялось около 2 тыс языков в десятилетие, и я не вижу признаков замедления – но у меня нет статистических данных.
Бьерн Страуструп: Настоящий прогресс требует любопытного смешения идеализма и прагматизма

Не думаю, что современные языки близки к совершенству. Некоторые примитивны, некоторые раздуты, некоторые напоминают красочные игрушки, а некоторые зависят от обширной инфраструктуры (часто – собственности), так что я надеюсь, что придут новые и лучшие языки.

Я рассчитываю на разработку более совершенной проверки типов, лучших механизмов абстракции, на совершенствование интеграции между статическими и динамическими проверками, на лучшую адаптацию к утилитам, поддержку параллелизма высокого уровня – и все это в относительно простом языке.

CNews: Вы посетите Москву в середине октября и проведёте выступление и семинар на конференции CEE-SECR. О чем пойдет речь?

Бьерн Страуструп: О возможностях C++0x и, в частности, об общих правилах разработки и направлении применения языка. Я постараюсь убедить аудиторию в том, что C++0x будет лучшим языком для создания инфраструктуры и приложений в случае серьезной нехватки ресурсов. Я попытаюсь показать, чем отличается C++0x от С++, который они знают – ну или думают, что знают. Возможности и библиотеки C++0x входят в основную реализацию С++, так что никаких научно-фантастических бесед не будет.

Также я дам несколько уроков с упором на нынешний С++. В обоих случаях я буду выделять важность гибкой и эффективной абстракции. На уроках будет уделено пристальное внимание использованиям исключений, обсуждению общих вопросов программирования и многому другому.

CNews: Вы работаете над новыми книгами? О чем они?

Бьерн Страуструп: В прошлом году в США вышел мой первый учебник по программированию «Программирование: принципы и практика использования С++». Как понятно из названия, основная цель книги – обучить программированию. Думаю, это лучшая книга для начинающих и для программистов с небольшим опытом работы на С++. Она была написана для первокурсников по специальностям «инженер-электронщик» и «инженер-специалист по компьютерной технике», но вполне подойдет и для студентов других компьютерных специальностей. За последние три года по книге обучились сотни студентов. Сейчас она доступна на английском, польском, немецком, китайском и французском языках. А в середине октября будет доступна и на русском.

Сейчас я работаю над четвертым изданием книги «Язык программирования С++». Это масштабный проект, который я не могу быстро закончить. Мне необходимо не только рассказать о возможностях языка и компонентах стандартной библиотеки C++0x, но и объяснить основы их использования. C++0x выглядит как новый язык, так что эта задача нетривиальна и интересна.

CNews: Сегодня одна из самых актуальных тем в России — высокие технологии и инновации. Правительство поддерживает развитие ИТ, чтобы наша экономика меньше зависела от экспорта нефти и газа. Что бы вы посоветовали правительству для создания прочной высокотехнологичной экосистемы в России?

Бьерн Страуструп: Это сложная тема, и я подозреваю, что правительство не нуждается в непрошенных советах. Однако, раз вы спрашиваете, я поделюсь с вами своим мнением, личным и не основанным на опыте работы в правительстве. Я считаю, что когда политики и топ-менеджеры пытаются выбирать актуальные технологии, они ошибаются, и ошибаются, неся серьезные убытки.

Вам необходимы хорошие университеты и, возможно, научно-исследовательские институты. Они должны иметь стабильное долгосрочное финансирование (на десятилетия), и правительство должно очень постараться не вмешиваться в их работу. Серьезные успехи зачастую происходят там, где руководители их не ждут. Можно посмотреть на истории успеха MIT, Stanford, Bell Labs. Таким образом вы получите квалифицированные научные и технические кадры. Не нужно препятствовать студентам, профессорам, исследователям заниматься предпринимательской деятельностью или сотрудничать с бизнесом. Нужно поощрять сочетание фундаментальных и прикладных исследований, сочетание небольших и серьезных проектов, краткосрочных, среднесрочных и долгосрочных. Не стоит заниматься покупкой технологий, надо разрабатывать что-то свое. Для этого необходимо обеспечить финансирование предпринимателей для поддержки стартапов. Получив шанс, они будут расти и процветать.

CNews: Что бы вы сказали русским программистам?

Бьерн Страуструп: Настоящий прогресс требует любопытного смешения идеализма и прагматизма. Не нужно просто быстро зарабатывать деньги, постарайтесь сделать что-то для совершенствования мира. Однако очевидно, что идеального решения не существует. Постепенные, эволюционные изменения возможны.

Когда я начинал, никто не слышал об объектно-ориентированном программировании, а почти все, кто «знал», о чем шла речь, считали тему невозможной (слишком сложно, слишком трудно изучить, слишком медленно, слишком специализировано и так далее), и все же сегодня мы все пользуемся результатами той идеи. Аналогичная ситуация наблюдается сейчас с парадигмой обобщенного программирования: только представьте, что будет через десять лет. Прогресс возможен – даже если он кажется слишком, удручающе медленным.

Ссылка на основную публикацию
Adblock
detector