Vyacheslav Profile picture
Feb 6, 2019 27 tweets 8 min read Read on X
Сделаю тред, в который буду не очень часто постить старые публикации, которые мне кажутся очень важными работами в истории 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 Image
И снова Дийкстра с Turing Lecture: The humble programmer. Топит за простоту, тотальность и верификацию ПО. Где-то в это же время Жирар уже работает над своей System F. cs.utexas.edu/~EWD/transcrip…

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Vyacheslav

Vyacheslav Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(