19 августа 2010 г.

Важные инновации в области ПО. Часть I

Жара в Москве идет на спад и наконец-то возвращается работоспособность :).  Те, кто читал мой предыдущий дневник, наверное, помнит серию переводных статей о наиболее важных инновациях в мире ПО. Потом я затеял перенос блога сюда и эти статьи оттуда удалил. Но сюда их не выкладывал потому, что еще раз прочел и ужаснулся качеству перевода :). По мере наличия свободного времени я буду вычитывать тот самый текст и выкладывать его тут по частям. Пока готова самая первая часть. По мере вычитывания остального текста, я буду этот пост дополнять ссылками на остальные части. Итак, поехали...


David A. Wheeler
Первая версия от 1 августа 2001 с дополнениями от 26 мая 2009

Введение

В последнее время слишком многие путают термин «инновации в области ПО» с другими факторами, такими как увеличение скорости работы компьютеров и сетевого оборудования. В этой статье я попытался положить конец этой путанице, выявив наиболее важные нововведения в области ПО, путем отсева тех из них, которые относятся к сфере аппаратного обеспечения (hardware), и таких программных продуктов, которые не привнесли ничего нового. Также представлены критерии оценки и определение понятия наиболее важных инноваций в ПО, источники информации, что именно привнесли эти инновации, обсуждаются патенты на ПО и почему некоторые из инноваций в ПО не упомянуты в этой статье. В заключение статьи представлены выводы.
Результаты вас могут удивить.

Критерии оценки

В этой статье приводится список наиболее важных инноваций в области ПО, поэтому в первую очередь необходимо дать точное определение каждому из этих слов:
  • Чтобы удостоиться звания наиболее важной, инновация должна заключать в себе идею, которая очень широко используется и/или имеет большое значение для той области, где применяется. То, что не получило широкого распространения, не было включено в такой список.
  • Инновация в области ПО (software) — это то, что привносит технологические новшества, которые оказывают непосредственное влияние как на процесс программирования, так и на использование компьютера.  Я намеренно не упоминаю инновации в аппаратном обеспечении (innovation in hardware), которые не связаны с инновациями в области ПО. Например, согласно судебному решению, John Vincent Atanasoff является изобретателем электронной вычислительной машины, поэтому к инновациям в ПО это изобретение не относится. По той же причине я также не включил в список другие нововведения, такие как транзисторы (1947) и интегральные микросхемы (1958), а также стандарт Ethernet, разработанный Бобом Меткалфом (Bob Metcalfe) в 1973. Я пропустил изобретения, которые не являются технологическими (например, социальные или правовые нововведения), даже если они имеют важное значение для технологии программного обеспечения и/или широко распространены. Например, концепция copyleft - это инновационный подход к лицензированию программного обеспечения, который разрешает модификацию ПО с невозможностью затем сделать его опять проприетарным. Она используется широким спектром ПО, благодаря General Public License (GPL). Первая такая лицензия (Emacs Public License) была разработана Ричардом Столлманом в 1985 году - но, поскольку copyleft это все-таки инновация в социальной и правовой сфере (а не в сфере технологий), она не включена в этот список. Кроме того, также сюда не включено изобретение смайлика ":-)". Безусловно, он широко используется повсюду, однако его существование не критично для компьютерной сферы и больше относится к социальной сфере.
  • Также тщательно нам необходимо определить само понятие инновация. Инновация - это не просто объединение двух функций в одном продукте (это интеграция, а не инновация, и требует для своей реализации только значительного объема работы). В частности, интеграция множества функций в один продукт для предотвращения использования клиентами конкурирующих продуктов - это хищничество, а не инновация. Инновация это НЕ конечный продукт, хотя, конечно же, этот продукт может содержать или воплощать какую-то революционную идею. Новая реализация существующего продукта для того, чтобы он делал то же самое, но на другом компьютере или операционной системе, также НЕ является новшеством. Инновация это новая идея. И применительно к данному документу это означает новую идею в области ПО.
В результате вы удивитесь тому количеству событий в компьютерной истории, которые НЕ входят в этот список. Большинство программных продуктов - это не инновации в ПО, поскольку они просто повторяют реализации других идей. Например, WordStar стал первым текстовым процессором для персональных компьютеров, но он не был первым - WordStar всего лишь новая реализация уже существовавшего продукта для других компьютеров. Более поздние текстовые процессоры (такие как Word или Word Perfect) также представляли собой следующие реализации аналогичных продуктов, а не инновации. Ряд значительных событий в компьютерной индустрии - это просто презентация новых продуктов или оборудования и не имеет никакого отношения к инновациям. Хотя появление IBM PC и Apple было важно для компьютерного мира, оно не представляло никаких инноваций в области ПО - это просто было очередное снижение стоимости компьютеров, с некоторым количеством ПО, написанным специально для них с использованием уже хорошо известных в то время технологий.
Иногда продукт является первой реализацией какой-либо инновации (например первая программа работы с электронными таблицами), в этом случае дата релиза продукта является датой публичного объявления какой-то идеи. Некоторые инновации порождают технологии, которые хотя и не являются явными для пользователей программного обеспечения, но они оказывают чрезвычайно важное влияние на разработку ПО (например, подпрограммы и объектно-ориентированное программирование), и тогда они включены в приведенный ниже список. В спорных случаях я привожу свои комментарии, поясняющие, почему тот или иной пункт присутствует в данном списке.
Я пытался определить дату и первую публичную презентацию идей, а не их воплощение в некоторые продукты. По возможности я пытался разделить даты первого внедрения и широкого признания инновации. "Публичность" в данном случае означает, по крайней мере, объявление для широкой аудитории. В некоторых случаях определить конкретную дату или событие трудно, и я буду рад, если кто-то укажет мне на более ранние работы. К примеру, иногда бывает трудно установить первую презентацию, поскольку с каждой последующей реализацией идея постепенно меняет форму.

Источники информации

Поскольку я не нашел никакого общепризнанного единого мнения о том, какие инновации наиболее важные, я составил данный список, проанализировав несколько источников. Я старался использовать много источников, чтобы не пропустить ничего важного. В частности, информацию об истории компьютеров IEEE (за последние 50 лет), виртуальный музей вычислительной техники, интернет-историю Гоббса, «A History of Modern Computing» Paul E. Ceruzzi и «A Brief History of the Future» John Naughton. Для описания некоторых инноваций я также использовал «Inventing the Internet» Janet Abbate, тщательно перепроверяя данные из этого источника, т.к. к сожалению Abbate иногда ошибается, что делает его использование в качестве авторитетного источника затруднительным. Например, Abbate (стр. 22) не понимает, что хотя Strachey и John McCarthy для описания своих идей использовали один и тот же термин ("timesharing" - разделение времени, см.ниже) - он обозначает разные понятия. Я также проверил ряд других источников, таких как «History-Making Components» James Durham  и «A History and Future of Computing». Стоит также отметить, что большинство источников смешивают события из области ПО аппаратного обеспечения. Другим источником является конференция “Software Pioneers” (28-29 июня 2001 года, Бонн). Также было проверено множество специализированных источников, таких как “OSI and TCP: A History” by Peter H. Salus.
Со времени первой публикации этого документа я получил ряд дополнительных сведений, которые вошли в данную статью. Я благодарю тех, кто предоставил мне эту информацию. В то же время, вполне возможно, что в ней обделены вниманием некоторые важные инновации. Поэтому, если у вас есть замечания или дополнения, пожалуйста, свяжитесь со мной (dwheeler at dwheeler.com).

Наиболее важные инновации в области ПО: 

Часть 1 (1837-1960) 

Часть 2 (1960-1970) 

Часть 3 (1970-1980) 

Часть 4 (1980-2004)

 

Патенты на ПО

Какие инновации в ПО не самые главные?

Выводы

Приложение: Инновации в ПО, которые стоит принять во внимание




Оригинальный текст: Copyright © David A. Wheeler
Перевод: Copyright © Чернышов Антон, УЦ R-Style

Комментариев нет:

Отправить комментарий