7 Чудес программирования

      Комментарии к записи 7 Чудес программирования отключены

Пользователи сайта Quora постарались выяснить самые немыслимые чудеса программирования. KV.by выбрал самые занимательные ответы.

Ричард Кэннет Энг, трудился с Fortran, Tandem TAL, C/C++, C#, Obj-C, Java, Smalltalk, Python, Go

  1. Smalltalk
  2. C++ – самый большой и самый сложный из когда-либо существовавших языков программирования
  3. JavaScript – самая громадная афера в истории программирования
  4. Go – самый быстроразвивающийся язык программирования в истории: с нуля до вершин менее, чем за 7 лет!
  5. Java – вытеснившая COBOL как единственный язык программирования в сфере предпринимательства; он намного опережает другие языки программирования по популярности и востребованности
  6. Python – как этому относительно медленному скрипт-языку удалось достигнуть таковой популярности при численном подходе, в сферах машинного обучения, науки о данных, интернете вещей, веб-разработки?
  7. Lisp/Scheme – гомоиконическое чудо с прекрасной макро-расширяемостью кода

Не следует забывать о:

  • C – поддерживает всю IT-индустрию (а также Linux)
  • Forth – как такой простой язык возможно таким нужным?
  • Emacs и vim – потрясающие программные редакторы
  • ООП (объектно-ориентированное программирование) – эта парадигма программирования определяла развитие IT-индустрии более трех десятилетий и не похоже, дабы она теряла хватку, кроме того перед лицом ФП (функционального программирования).

7 Чудес программирования

Николас Купер, программирую с 1987

Вот перечень неизменно развивающихся отраслей программирования, каковые, по моему точке зрения, входят в «громадную семерку». Это скорее идеи, популяризируемые при помощи программирования.

Ни одна из этих отраслей, не считая помеченной звездочкой, не развита так, дабы сказать о ее завершенности:

  • Управление данными. Эта отрасль принимает разные формы от виртуальной памяти до файловых совокупностей и баз данных, и все они развиваются. Нетрудно представить мир, в котором все информацию о вас собраны в досье (покинем в стороне вопросы безопасности) и смогут быть использованы, дабы, скажем, доставить вам любимый сэндвич прямо на рабочее место именно в тот момент, в то время, когда вы мало проголодаетесь.
  • Код как эти*. Это то, во что закономерно эволюционировала архитектура фон Неймана, которая, наконец, стала причиной перемещению Лиспа, и в конечном счете будет кроме этого включать данные о тип. [P.S.: Быть может, данный раздел и нельзя считать завершенным, если он будет развиваться и дальше и будет включать в себя данные о зависимом типе …].
  • Зависимые типы. Это эволюция тезиса Черча-Тьюринга в собственного рода теорию, в окончательное познание того, по какой причине программирование и математика сущность одна наука, и как мы можем давать обоснование каждой из них, применяя способы второй. Наконец, мы можем создавать интерфейсы, не только придерживаясь нужных требований (содержащих способ foo), но и универсальных требований (тут foo соединяется с bar). Это указывает, что мы можем писать код без исключений на протяжении исполнения. Это не свидетельствует, что код « », в противном случае, что (в случае, если память согласована) он не «разлетится в щепки», а просто зависнет.
  • Пиши один раз, применяй везде. Все началось как эволюция «высокоуровневых языков программирования» от машинного кода к Ассемблеру, С и, наконец, Java и .NET (и к применению Java в веб-браузерах). Сейчас представьте себе совокупность, в которой независимо от делаемой задачи функционирует всего один код, будь то веб-страница на рабочем столе Windows либо сервере BSD, и все это оптимизировано для типов памяти RAM и Optane и имеет доступ к ресурсам CPU и GPGPU.
  • Адаптивные методы. Генетические методы, нейронные сети, роевые методы и пр. Представьте, каково не осознавать, как трудится совокупность, но сделать так, дабы она делала нужные команды. Легко разрешить ей развиваться самостоятельно. Представьте, каково это больше не тратить время на изнурительное написание кодов. Siri, посмотри на мое лицо и сообщи, слягу ли я с простудой!
  • Интегрированные среды разработки – Я говорю о таких вещах, как исправление багов кода, статический анализ, интеллектуальное завершение кода, покрытие кода, отслеживание рабочих элементов, управление источником и все это в одной среде. Легко подождите, пока адаптивные методы достигнут ИСР. Легко сообщите Siri, что вы желаете создать запись с полями имени, номера и адреса телефона, хранящиеся в реляционной базе данных с внешним ключом к записи менеджера, и с запросом дешёвым в моем окне приложения .NET на вкладке сотрудника, и она напишет целый код шаблона, что вам нужен. О, и я уже упоминал, что она написала для вас все модульные тесты и документацию XML (кто-то все еще применяет XML, разве мы все не используем очередной YAML)?
  • Виртуализация. Возможность разрабатывать и исправлять неточности из одних операционных совокупностей в других, а сейчас Dockers хранит все изолированно в весьма мелких, опрятных пакетах. Это вариант Начала для программистов. В итоге, любая часть ОС будет виртуализирована, и будет давать доступ лишь к нужным ее разделам. В то время, когда это случится, виртуализация будет намного больше похожа на применение зависимых типов для управления ресурсами, и будет сложно сказать об одном, не упоминая второе.

Хороши упоминания:

  • Операционные совокупности. Снова же, это приложение стандартизации для ограниченного количества вариантов типа «пиши один раз, применяй везде» для будущего кода. Они разрабатывались с момента зарождения программирования, но тогда цель была создать ОС, которая разрешила бы нам только запускать на устройстве более одного приложения. Жаль, что мы так же, как и прежде используем ту же разработку с 60-х годов, но снова же, пока мы не достаточно развили разработке из «громадной семерки», стоит еще подождать «громадных трансформаций».
  • Распределенные вычисления. Речь заходит о автоматизации и применении стандартизации для управления данными. Сеть, тогда интернет и сейчас распределенные вычисления являются логическим расширением. Они разрешили нам создать такие вещи, как интернет-валюта, к примеру, биткоины.

Вэйн Кук, дипломированный Scrum-эксперт

Я буду придерживаться иного подхода, чем остальные, и поведаю о 7 прорывах для собственного времени.

  1. Чарльз Бэббидж и Ада Лавлэйс. Первая первая женщина и вычислительная машина-программист. Без их вклада программирование не началось бы так, как оно началось. Ада была такой влиятельной, что в её честь назвали язык программирования (к сожалению, он был одним из структурированных языков и не сочетался с объектно-ориентированными разработками того времени).
  2. Табуляционная перфокарты и машина Холлерита. Созданные для переписи населения 1880 года в Соединенных Штатах. Перфокарты были неотъемлемым элементом зарождавшегося программирования.
  3. Фортран. Первый язык программирования большого уровня, в своё время употреблялся для научных вычислений. Вытеснен Ассемблером и машинным кодом.
  4. Лисп. База баз ИИ. Ввёл рекурсивные вызовы, структура всех данных и программ аналогична.
  5. Алгол (алгоритмический язык) – первые по-настоящему структурированные языки. Такие, как С и Pascal, созданы на базе Алгола.
  6. SmallTalk. Изобретение компании Xerox, которое она вправду недооценила. есть базой всех объектно-ориентированных языков. Стив Джобс был так впечатлен этим языком, что создал ОС Macintosh в среде SmallTalk. SmallTalk был действительно объектно-ориентированным языком. Все объекты, созданные для ОС и для пользовательских программ, были дочерними элементами базисного объекта «Объект». C ++ идеи SmallTalk и постарался добавить их в язык C. Bell Labs достаточно отлично совладали с данной интеграцией, создав основной объектно-ориентированный язык.
  7. UNIX. И опять Bell Labs. Они создали С, дабы иметь возможность создать ОС UNIX. Стивен Борн создал один из первых рабочих языков сценариев командной строки для стремительного управления совокупностью. Так много «языков» обязаны своим созданием командной строчке Борна (sh от shell). Поразмыслите о каком-либо трактуемом языке программирование, он, возможно, обязан своим возникновением sh.

Рагхав Джаджодиа, GSoCer, CodeSprint

Вот мой топ-7 в мире программирования и вычислений:

7. С++ – самый большой и действенный из когда-либо созданных языков программирования.

6. Распределённая совокупность управления предположениями Git – обстоятельство, по которой много разработчиков имеют возможность в один момент трудиться над созданием ПО.

5. Facebook – самое крутое когда-либо созданное приложение социальной сети, употребляется миллиардами людей.

4. YouTube – миллиарды часов видеоконтента, 1000 часов контента каждый день загружается. То, как платформа справляется с этими потоками информации, поражает.

3. Платформа Stack Overflow – программисты не смогут представить жизни без неё.

2. Поиск Гугл – вправду поражает, как Гугл удаётся обрабатывать миллиарды веб-страниц и предоставлять самые точные результаты поиска.

1. Глобальная паутина – WWW либо интернет, определенно обязан возглавлять данный перечень. Сейчас это самое великое творение человечества.

7 ЧУДЕС СВЕТА. Удивительные сооружения


Интересные записи: