Будущее программирования

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
image

Никто не знает и не понимает, что такое «программирование» и что такое «компьютер». Какими они задумывались, какими они могли бы быть и какими они могут стать.

Недавно я разговаривал с физтехом и он мне с железобетонной уверенностью выпалил определение: «Программирование — это написание четких инструкций для компьютера». Я же, пересмотрев десятки лекций Кнута, опубликовав десятки переводов Ликлайдера, Ванневара Буша и Дугласа Энгельбарта, немного призадумался о природе его догматичности и отсутствию «сомнений» в своей правоте.

Предлагаю обсудить будущее программирования и рассмотреть взгляды нескольких философов и парочки практиков, которые работают над созданием будущего программирования прямо сейчас.
(Дополняйте своими находками «ростков будущего» и ключевыми статями и лекциями.)


Амджад Масад, 2022


Амджад Масад создает браузерное IDE с целью сократить время от мысли до кода. Недавно он проанонсировал планируемые фичи, на что Пол Грэм восторженно написал:

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


Вот такие фичи хочет внедрить Replit:

image

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

image

Справочные и обучающие ресурсы могут появиться прямо в вашей среде IDE, чтобы вам не пришлось покидать ее и прерывать рабочий процесс.

image

Мы переписываем функцию Explain Code, чтобы сделать ее более полезной. В новой версии вы сможете выбрать свой уровень знаний, а ИИ изменит способ объяснения кода в соответствии с вашим уровнем.

image

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

image

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

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

Джозеф Ликлайдер, 1960


«Любой человек и любая компания, использующие компьютер в интерактивном режиме, должны испытывать благодарность по отношению к Лику»
— Боб Тейлор, основатель Xerox PARC и основатель исследовательской лаборатории DEC


image

  • Джозеф «Лик» Ликлайдер: «Симбиоз человека и компьютера» (1960), часть 1
  • Джозеф «Лик» Ликлайдер: «Межгалактическая компьютерная сеть» (1963 год)
  • Джозеф «Lick» Ликлайдер: «Интергалактическая компьютерная сеть» и «Симбиоз человека и компьютера»


Андрей Ершов, 1982


image

Эта заметка появилась на свет при размышлении о разработке программного обеспечения как человеческой деятельности. Если в этом плане рассматривать работу программиста, то нужно различать два, как мне кажется, весьма разных её вида: к одной из них программист относится как слуга, а к другой — как хозяин.


  • Программирование — вторая грамотность
  • Андрей Ершов: «Два облика программирования»
  • Дональд Кнут: как я занялся анализом алгоритмов и ради этого поехал в СССР (37,91,97/97)


Брет Виктор, 2013 (1973)




Технологии развиваются быстро, мышление людей — медленно.



Брет Виктор выступил на конференции в 2013 году, но он вещал как-будто бы в 1973 году про будущее программирования через 40 лет. Его слайды были на прозрачной бумаге и на световом проекторе (как у меня в универе в 2001 году)
.

image

Беда не в том, что многие через 40 лет удивятся, что в 1973 году были такие идеи насчет программирования, более негативный сценарий в том, что в 2013 году люди будут иметь четкое представление о том, что такое «программирование». И будут обсуждать детали и частные ситуации только одной парадигмы программирования из тех нескольких, что я показал сегодня, и откинут все остальные пути развития программирования. Беда в том, что подавляющее большинство программистов вырастет на догмах.

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

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

Скажите себе: «Я не знаю, что я собираюсь делать. Я не знаю, что такое программирование и каким оно может быть. Я не знаю, что такое компьютер и каким он может быть». И вы станете свободны от догм и начнете мыслить.

Пол Грэм, PyCon 2003


image

Во-первых, язык программирования будущего, в принципе, может быть изобретён сегодня. Во-вторых, такой язык может годиться для программирования и в наше время. Сложно удержаться и не подумать: так почему бы не попробовать написать язык будущего прямо сейчас?


Оригинал: The Hundred-Year Language
Перевод: Языки программирования через сто лет, Язык программирования будущего — сегодня

Основные мысли:

  • Во что эволюционируют ЯП за 100 лет может быть интересно потому, что хотелось бы знать, на какую ветвь «древа эволюции» сделать ставку сегодня.
  • А будут ли через 100 лет вообще писать код?
  • Любой язык программирования можно поделить на две части: некий набор фундаментальных операторов, которые играют роль аксиом, и остаток языка, который, в принципе, может быть описан в терминах этих фундаментальных операторов. Я считаю, что фундаментальные операторы — это самый важный фактор, влияющий на выживание языка в долгосрочной перспективе. Всё остальное может меняться.
  • Языки программирования — это не технологии, а больше похожи на математическую нотацию. А нотации развиваются намного медленнее чем технологии.
  • Если закона Мура сохранится, через 100 лет компьютеры станут в 74 квинтиллиона раз быстрее.
  • Причина существования большинства типов данных — это производительность. С увеличением производительности в миллион раз может случиться фундаментальный сдвиг парадигмы.
  • Можно ли избавиться от массивов?
  • Можно ли избавиться от чисел как фундаментального типа данных?
  • Через сто лет программисты захотят такой язык, на котором можно оперативно и с минимальными усилиями набросать первую, невероятно неэффективно работающую версию программы. По крайней мере, так это можно описать в современных терминах. Они скажут, что им нужен язык, на котором легко программировать.
  • Параллелизм не будет распространен в программах через сто лет.
  • Сейчас вполне возможно изобрести язык, который будет привлекателен для пользователей через сто лет.
  • Если бы мы получили язык программирования будущего, стали бы мы использовать его?


Алан Кей, 2015


Алан Кей, пожалуй, самый радикальный и оптимистичный философ программирования. Он работал и в Xerox PARC и в Disney, был ментором Стива Джобса. Алан Кей стоял у истоков первых персональных компьютеров и разработал проект лэптопа, ввел понятие ООП (по этой теме много споров что оно ушло не туда). У него есть десяток лекций и статей (в том числе и много переводов на Хабре), где он делится своим видением, каким может быть программирование и обучение.

Пожалуй, вот эти две лекции самые содержательные про будущее программирования:



Наш препод сказал — моя задача полностью размазать все ваши представления о том, что такое «компьютеры» и «программирование» — лучший класс который у меня был в универе.
— Алан Кей




Если кратко, то Алан Кей утверждает, что настоящая информационная революция еще не наступила, потому что на сегодняшний день программирование больше похоже на «алхимию», когда люди наугад что-то соединяют и смотрят что получится. Алан предлагает перейти от простого сваливания в кучу кирпичей строк кода к «архитектуре» и строит не египетские пирамиды, а Эмпайр-стейт-билдинг . Кстати, Эмпайр-стейт-билдинг была построена 3000 людей за 1 год с нуля. Есть ли примеры такой же производительности в области построения софта таким же количеством людей?

Кто хочет копнуть про идеи Алана Кея чуть глубже, вот несколько ссылок:

  • Специально для Хабра: интервью с Аланом Кеем
  • Алан Кей: История SmallTalk (Аннотация и Введение)


еще переводы Алана Кея на Хабре:
  • С днём рождения, Алан Кейǃ (или как получить +80 к IQ)
  • Алан Кей: Будущее «чтения» зависит от будущего «обучения сложным для понимания вещей»
  • Алан Кей: «Компьютеры — это инструменты, музыка которых — идеи»
  • Алан Кей: Что сделало Xerox PARC особенными и кто еще сегодня похож на них
  • Алан Кей: крутым концепциям тоже нужна любовь
  • Алан Кей: Как обстоят дела у всего человечества, вид «из космоса»
  • Алан Кей и Марвин Мински: Computer Science уже имеет «грамматику». Нужна «литература»
  • Алан Кей (и коллективный интеллект Хабра): какие книги формируют мышление тру инженера
  • Алан Кей: как бы я преподавал Computer Science 101
  • Алан Кей: Будущее нельзя построить постепенно
  • Персона. Алан Кэй — пророк, автор концепции GUI и языка Smalltalk
  • Алан Кэй, создатель ООП, про разработку, Лисп и ООП
  • Алан Кей в мире компьютеров



Джонатан Блоу, 2019


Создатель игр Braid и The Whitness сейчас занимается разработкой новой игры, которая будет сделана на новом движке, разрабатываемым Джонатоном Блоу, а движок в свою очередь, будет написан на языке программирования тоже созданным Джонатоном.

Джонатан очень недоволен текущим положением дел в программировании и пророчит в ближайшем времени коллапс:



Краткое изложение мыслей Джонатана Блоу есть Никитонкого: Хорошие времена рождают слабаков

  • Кризис программного обеспечения носит системный и поколенческий характер.
  • Знания не передаются следующему поколению автоматически.
  • В программировании мы развиваем абстракции с пугающей скоростью. Когда они накапливаются в достаточном количестве, понимать и контролировать всё что происходит становится невозможным.


PS


Пост «Моё разочарование в софте» набрал 443+, так какое же должно быть программирование, чтобы не быть разочарованным?

«А для завтра что сегодня сделал я?»

Источник: https://habr.com/ru/company/timeweb/blog/660061/


Интересные статьи

Интересные статьи

История разработки одного проекта от начала до MVP модели небольшой командой инженеров без опыта программирования. Описание этапов, трудностей и путей решения задач.Статья еще в процессе написания. С...
Тема обучения была и будет одной из главных тем в IT. Здесь я попытаюсь разобрать два подхода к изучению изучению программирования: "Снизу вверх" и "Сверху вниз".
Корпорация Google довольно часто удивляет новыми проектами. То операционная система Fuchsia, теперь — новый декларативный язык логического программирования Logica. По словам разработчик...
Недавно мы провели первое онлайн IT-шоу, где совместили знания и юмор. Почему всё так странно? Да потому что нам не хотелось делать очередную конференцию с докладами и ответами на вопросы...
Статья о том, как упорядочить найм1. Информируем о вакансии2. Ведём до найма3. Автоматизируем скучное4. Оформляем и выводим на работу5. Отчитываемся по итогам6. Помогаем с адаптацией...