Сделаю тред, в который буду не очень часто постить старые публикации, которые мне кажутся очень важными работами в истории computer science и программирования.
Начну с лекции Флойда, который он прочел на вручении ему премии Тьюринга про парадигмы программирования и что он понимал под этим словом в уже далеких 70-х ias.ac.in/article/fullte…
И сразу же продолжу текстом «As we may think» 1945 года от Вэнивара Буша, где он предвосхитил появление интернета и веба. theatlantic.com/magazine/archi…
The next 700 programming languages. Питерцы Ландин рассуждает о том, как должны разрабатываться языки программирования в будущем. Оказал сильное влияние на многие функциональные языки (Haskell, ML). cs.cmu.edu/~crary/819-f09…
Я собирался по посту в день, но лайков и ретвитов куча. Так что вот вам работа Джона Уилера «Information, Physics, Quantum: The Search for Links» или также известная как «it from bit». Он рассуждает, что на глубинном уровне наша вселенная состоит из битов. cqi.inf.usi.ch/qic/wheeler.pdf
Это немного в сторону, но не все же про языки программирования читать.
Немного развлекательного контента, но тоже классика. Тони Хоар рассказывает, почему он решил сделать null и почему это была «ошибка на миллиард долларов». infoq.com/presentations/…
Продолжая про труды Тони, всем наверное уже надоевшая Communication Sequential Processes. Но пройти мимо никак нельзя, фундаментальный подход для работы с конкурентными вычислениями, который используется в куче языков (например, Go). cs.cmu.edu/~crary/819-f09…
Если вас интересует реактивное программирование (всевозможные RX), то почитайте одну из основополагающих работ по реактивному программированию. Рассматривается на примере языка ADA. Real Time Programming: Special Purpose or General Purpose Languages.
hal.inria.fr/file/index/doc…
Достаточно современная работа от Luca Cardelli с замечательным вступлением на тему «зачем нужны типы». Крутая классификация полиморфизмы внутри. On Understanding Types,
Data Abstraction, and Polymorphism lucacardelli.name/Papers/OnUnder…
Не уверен в исторической значимости этой работы, поэтому вот в догонку похожая но точно очень влиятельная работа Christopher Strachey, где впервые появилась классификации полиморфизма и referential transparency. Ссылка правда на ревизию 2000 года, сама работа вышла в 1967 году.
При общей похожести, работу Карделли читать значительно проще. Fundamental Concepts in Programming Languages. citeseerx.ist.psu.edu/viewdoc/downlo…
Продолжая тему языков программирования, хотел бы поделиться, на мой взгляд, лучшим выступлением, которое вы когда-либо увидите на подобную тему. Guy Steele с темой Growing a language.
Небольшой оффтопик. Так как на деле я все это затеял, чтобы разгрести пачку пейперов, которые копятся уже пару лет, то поделюсь тем, который дочитал сегодня. По рекомендации @_bravit. A History of Haskell: Being Lazy With Class. haskell.cs.yale.edu/wp-content/upl…
В основном имеет интерес с исторической точки зрения. Читать достаточно легко. Но как обычно, прочитав 1, появляется ещё 2. Внутри много прикольных ссылок на работы, которые являются важными в истории развития языков программирования.
Так как хайп с треда схлынул, пойдём по жести. Многие в курсе квантовые компьютеры на подходе и намечается кризис в криптографии? Как бы не так. Совсем свежая работа на тему пост-квантовой криптографии. Post-quantum key exchange – a new hope, Erdem Alkim usenix.org/system/files/c…
А если вы, как и я, не шарите в квантовой теории алгоритмов, то всегда есть прекрасная (замечательная, удивительная, восхитительная и т.д.) Quanta Magazine, с вполне доступным текстом на ту же тему. quantamagazine.org/quantum-secure…
Ещё одна лекция на тему вручения премии Тьюринга, на этот раз Джону Бакусу. Он выступает с критикой как текущих (77 год) языков программирования, так и фоннеймоновской архитектуры в целом! Can Programming Be Liberated from the von Neumann Style? thocp.net/biographies/pa…
Менее тривиальные публикации закончились, поэтому дальше пока классика. В работе Why functional programming matters John Hughes рассматривает такие свойства языка как ленивость и функции высшего порядка, и почему они так важны для модульности. cs.kent.ac.uk/people/staff/d…
Так как John один из тех, кто стоит у истоков Хаскеля, ему ли не знать!
У Филиппа Уодлера много очень значимых и крутых работ. В конце концов, этот человек придумал использовать монады для IO. Но я выбрал работу Propositions as Types, в которой он рассказывает про связь языков программирования и логики. homepages.inf.ed.ac.uk/wadler/papers/…
Ну и конечно, прекрасное выступление лямбда-мэна на эту же тему.
Отвлечемся немного от темы языков программирования. Следующая работа: Conflict-free Replicated Data Types. В каком-то смысле святой грааль распределённых систем хранения данных. Multi-master replication с strong eventual consistency в статье Marc Shapiro hal.inria.fr/inria-00609399…
Несмотря на большое количество хайпа и надежд, все ещё не так много продакшн-реди решений, которые это использует, но постепенно их становится больше.
Хотел сюда скинуть Theorems For Free того же Уодлера, но начал перечитывать и это слишком скучно.
Наверное, многие слышали про literate programming. Это текст Кнута, где он вводит это понятие и объясняет почему, как ему кажется, такой способ написания программ полезен.
Donald E. Knuth "Literate Programming".
literateprogramming.com/knuthweb.pdf
И снова Дийкстра с Turing Lecture: The humble programmer. Топит за простоту, тотальность и верификацию ПО. Где-то в это же время Жирар уже работает над своей System F. cs.utexas.edu/~EWD/transcrip…
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.
