编程与软件工程worrydream.com编辑精选
编程的未来
The Future of Programming
2013 — 2017,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
Bret Victor 的著名演讲《编程的未来》:回顾 1960-70 年代编程先驱们的各种探索(可视化编程、直接操作数据等),指出许多好想法被抛弃而非被解决,我们狭隘地把少数几种范式当成了编程的全部。演讲呼吁重新质疑这些历史选择,探索编程本可以是什么样子。
为什么经久不衰:它把'编程为什么是现在这个样子'变成一个可以质疑的历史问题,多年来反复引发共鸣,对任何想突破现有编程范式的人仍是必看的思想起点。
HN 评论精选
演讲的核心不是怀旧,而是指出好想法被抛弃了,我们应质疑历史选择
为什么大家都以为这个演讲是说这些问题'几十年前就被解决了'?我的理解恰恰相反:这些问题不是被解决了,而是被抛弃了。我们视野变窄,把一小撮想法当成了编程的全部。这个演讲不是在说早期程序员什么都更好,恰恰相反——我们应该质疑他们的决定,不要把任何东西视为理所当然。为什么这些好想法都出现在 60 年代到 70 年代初?因为那时技术刚好进步到能做点事,但还没人知道编程'应该'是什么样子,而他们知道自己不知道,所以什么都试了。
fasquoika查看英文原文
Why does everyone seem to believe this talk is about the fact that these problems were "solved" decades ago? My takeaway is that, no, these things weren't solved, they were abandoned. We got tunnel vision and decided that a handful of ideas were what programming is, rather than just a tiny subset. This talk isn't about how the early programmers were better at everything, if anything it's the opposite, that we should question their decisions and not take anything for granted. "Do you know why these ideas, and so many other good ideas came about in this particular time period, the 60's-early 70's? Why did it all happen then? It's because it was late enough that technology kinda got to the point where you could actually kinda do things with computers, but it was still early enough that nobody knew what programming was. Nobody knew what programming was supposed to be. And they knew they didn't know, so they tried everything."
可视化编程被放弃是因为它是一堆未解难题,文本有不可替代的工具生态
我很喜欢这个演讲,但可视化编程那部分相当不成熟。我做过专业可视化编程。人们几十年来一直在尝试攻克'画图编程',这不是被遗忘的想法,维基百科上列着几十年的各种尝试。我们仍用文本写代码,是因为可视化编程不是一个难题,而是一堆难题:导航、搜索、格式化、版本管理、调试、编译、分析、审查……文本是方便的序列化格式,可以借助 Unix 哲学组合最好的工具,而图形没有这样的通用语言。用文本不是教条或懒惰,而是让这些工具在图片上工作比在文本上难几个数量级。
humanrebar查看英文原文
I very much enjoyed Bret's talk, but the visual programming part of his talk was rather half-baked. I say this as someone who has done visual coding professionally in the past. People have been trying to crack the "drawing programs" nut for decades. It's not a forgotten idea. It's so not forgotten that there is a wikipedia page listing dozens of attempts over the years: http://en.wikipedia.org/wiki/Visual_programming_language. The reason we still code in text is because visual programming is not a hard problem -- it's a dozen hard problems. Think about all of the tools we use to consume, analyze, or produce textual source code. There are code navigators, searchers, transformers, formatters, highlighters, versioners, change managers, debuggers, compilers, analyzers, generators, and review tools. All of those use cases would need to be fulfilled. Unlike diagrams, text is a convenient serialization and storage format, you can leverage the Unix philosophy to use the best of breed of the tools you need. We don't have a lingua franca for diagrams like we do for text files. It's not due to dogma or laziness that we use text to write code. It's because the above list of things are not trivial to get right and making them work on pictures is orders of magnitude harder than making them work with text. EDIT: Wordsmithing
演讲是'今不如昔'的错觉,真正的创新一直在研究前沿发生
2040 年会有人发现 Haskell,痛哭为什么业界流行的是 C#++.cloud,并以此哀叹世界的糟糕状态。别拿 50 年前论文里的东西和今天商业界在用的比,应该和现在论文里的比——概率编程、范畴论在函数式编程中的应用、类型理论、软件事务内存,一直都有有趣的东西在进行。这就像《午夜巴黎》:每个时代的人都以为最好的时代在过去。这个演讲就是这种情绪蒙蔽了清醒的判断。
stiff查看英文原文
In 2040 someone will discover Haskell, shed tears on why C#++.cloud is so widespread instead in the industry, and use it to conclude the sorry state of the world. Seriously, don't compare what was published in papers 50 years ago with what business uses today, compare it with what is in papers now, and there are lots of interesting things going on all the time, when was the last time you even checked? Probabilistic programming? Applications of category theory to functional programming? Type theory? Software transactional memory? Woody Allen did this great movie some time ago, "Midnight in Paris", where the main character, living in present times, dreams of moving back in time to the 1920s as the best time for literature ever. When the occasion to really go back appears though, he discovers the writers of the 1920s thought the best literature was done in 1890s, and so he has to go back again, then again, ... This talk is like this, sentiment blinding a sober assessment.
演讲为重新设计编程工具提供了概念基础,现状远非极限
这是 Bret 的一场精彩演讲,呼应了社区里近来的许多讨论。有趣的是他从完全不同的角度抓住了我们一直在琢磨的同样核心问题:我从'什么让编程变难'的数据入手,他则从历史看是什么让编程与众不同。这个演讲为下一步——提出解决方案——打下了很好的概念基础。我在 Light Table 上的工作至少证明了一点:我们现在拥有的离我们本可以达到的还差得很远。编程是坏的,我已经开始理解如何系统地解决这种坏。
ibdknox查看英文原文
It's a fun talk by Bret and I think he echoes a lot of the murmurings that have been going around the community lately. It's funny that he latched onto some of the same core tenants we've been kicking around, but from a very different angle. I started with gathering data on what makes programming hard, he looked at history to see what made programming different. It's a neat approach and this talk laid a good conceptual foundation for the next step: coming up with a solution. In my case, my work on Light Table has certainly proven at least one thing: what we have now is very far from where we could be. Programming is broken and I've finally come to an understanding of how we can categorize and systematically address that brokeness. If these ideas interest you, I highly encourage you to come to my StrangeLoop talk. I'll be presenting that next step forward: what a system like this would look like and what it can really do for us. These are exciting times and I've never been as stoked as I am for what's coming, probably much sooner than people think. EDIT: Here's the link to the talk https://thestrangeloop.com/sessions/tbd--11
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选