Forwarded from 404 KIDS SEE GHOSTS (生产力之王版 (志筑仁美)
没有银弹丨Fred Brooks 关于软件开发困难论述的经典论文
No Silver Bullet—Essence and Accident in Software Engineering
最近 Fermat’s Library 解析了 Fred Brooks 关于软件开发过程中困难论述的经典论文 No Silver Bullet(没有银弹),这篇技术论文让人兴奋,我过去比较喜欢的两篇技术写作是 Andy Matuschak 关于革命性思维工具的理解 How can we develop transformative tools for thought? 以及 Conor 关于作为革命性思维工具出现的 Roam Research 白皮书 Roam White Paper.
这是一篇 1986 年的论文,Fred Brooks 探讨了软件工程开发复杂度困难的内在根源以及如何处理,他的根本论断是「没有银弹」,即没有任何一种技术或管理上的突破能承诺在10年内使软件项目的生产力提高一个数量级(生产率、可靠性、简洁性)。「银色子弹」,欧洲中世纪传说中针对狼人吸血鬼等魔物的银制特效子弹,隐喻最强杀招/王牌(名侦探柯南剧场版中也经常被提起)。「没有银弹」平移我前面提到过的「索洛悖论」( Solow Paradox),生产力延宕,技术革新的时候我们都无法保证生产力增加,更不用说技术本身的迭代承诺(银弹)。
论文中,Fred Brooks 将软件复杂度分为本质复杂度(Essential Complexity)和偶然复杂度(Accidental Complexity),即软件自身带来的困难:复杂性、符合性、可变性及不可视性,不可能通过现在或者未来技术完全解决;以及技术及其它局限所带来的困难,如编程语言、开发工具等限制,可以通过技术进步改善,比如 Conor 使用 Clojure 作为革命性思维工具 Roam Research 的开发。
---
Fred Brooks,图灵奖得主,《人月神话》(The Mythical Man-Month)的作者,编程类书籍中的经典,之前我看的一个 Thread 分享其爬取的最受推荐的编程书籍,「人月神话」为 TOP 6.
Fermat’s Library,是个解析、注释并分享学术论文的网站,过去我分享的另一篇有趣论文「印象派绘画反映 19 世纪空气污染的现实主义元素」也来自该网站,值得关注。
Reference
为什么 logseq、roam research 等 web app 都选择了 clojure
#technology #tools
No Silver Bullet—Essence and Accident in Software Engineering
最近 Fermat’s Library 解析了 Fred Brooks 关于软件开发过程中困难论述的经典论文 No Silver Bullet(没有银弹),这篇技术论文让人兴奋,我过去比较喜欢的两篇技术写作是 Andy Matuschak 关于革命性思维工具的理解 How can we develop transformative tools for thought? 以及 Conor 关于作为革命性思维工具出现的 Roam Research 白皮书 Roam White Paper.
这是一篇 1986 年的论文,Fred Brooks 探讨了软件工程开发复杂度困难的内在根源以及如何处理,他的根本论断是「没有银弹」,即没有任何一种技术或管理上的突破能承诺在10年内使软件项目的生产力提高一个数量级(生产率、可靠性、简洁性)。「银色子弹」,欧洲中世纪传说中针对狼人吸血鬼等魔物的银制特效子弹,隐喻最强杀招/王牌(名侦探柯南剧场版中也经常被提起)。「没有银弹」平移我前面提到过的「索洛悖论」( Solow Paradox),生产力延宕,技术革新的时候我们都无法保证生产力增加,更不用说技术本身的迭代承诺(银弹)。
论文中,Fred Brooks 将软件复杂度分为本质复杂度(Essential Complexity)和偶然复杂度(Accidental Complexity),即软件自身带来的困难:复杂性、符合性、可变性及不可视性,不可能通过现在或者未来技术完全解决;以及技术及其它局限所带来的困难,如编程语言、开发工具等限制,可以通过技术进步改善,比如 Conor 使用 Clojure 作为革命性思维工具 Roam Research 的开发。
---
Fred Brooks,图灵奖得主,《人月神话》(The Mythical Man-Month)的作者,编程类书籍中的经典,之前我看的一个 Thread 分享其爬取的最受推荐的编程书籍,「人月神话」为 TOP 6.
Fermat’s Library,是个解析、注释并分享学术论文的网站,过去我分享的另一篇有趣论文「印象派绘画反映 19 世纪空气污染的现实主义元素」也来自该网站,值得关注。
Reference
为什么 logseq、roam research 等 web app 都选择了 clojure
#technology #tools
Fermat's Library
Fermat's Library | No Silver Bullet - Essence and Accident in Software Engineering annotated/explained version.
Fermat's Library is a platform for illuminating academic papers.
👍5
Walles.AI:一款支持GPT4、Notion和Youtube视频摘要的浏览器插件
💻 支持功能
- ChatGPT问答对话
- ChatPDF智能问答
- 网页内容解释、翻译、总结
- 生成高质量的文章
- 与Notion等工具协同
- 解析YouTube视频内容
⬇️ 插件下载:点击安装
💻 支持功能
- ChatGPT问答对话
- ChatPDF智能问答
- 网页内容解释、翻译、总结
- 生成高质量的文章
- 与Notion等工具协同
- 解析YouTube视频内容
⬇️ 插件下载:点击安装
Django 5.0 的 beta 版本已发布,稳定版预计 12 月发布。这个版本只支持 3.10+,不兼容旧版本。
新增特性及版本变更说明:
https://docs.djangoproject.com/en/5.0/releases/5.0/
新增特性及版本变更说明:
https://docs.djangoproject.com/en/5.0/releases/5.0/
Python软件基金会获得了 GitHub 颁发的“Wonderfully Welcoming”奖!
“Python Software Foundation(@psf)不仅仅是 Python 开发的中心;这是一个以多样性和包容性为核心的社区。通过 PyCon Charlas 等举措,PSF 打破了语言障碍,为讲西班牙语的贡献者提供了一个平台。它还通过支持开创性的 PyLadiesCon 来支持性别多样性。”
“更重要的是,PSF 致力于提供尊重和安全的社区体验,并通过强有力的行为准则得到加强。它还通过字幕扩展了可访问性,并对健康和安全措施保持警惕。在 PSF,它不仅仅是关注代码;更关心背后的人。”
https://pyfound.blogspot.com/2023/11/psf-wonderfully-welcoming-award-github.html
“Python Software Foundation(@psf)不仅仅是 Python 开发的中心;这是一个以多样性和包容性为核心的社区。通过 PyCon Charlas 等举措,PSF 打破了语言障碍,为讲西班牙语的贡献者提供了一个平台。它还通过支持开创性的 PyLadiesCon 来支持性别多样性。”
“更重要的是,PSF 致力于提供尊重和安全的社区体验,并通过强有力的行为准则得到加强。它还通过字幕扩展了可访问性,并对健康和安全措施保持警惕。在 PSF,它不仅仅是关注代码;更关心背后的人。”
https://pyfound.blogspot.com/2023/11/psf-wonderfully-welcoming-award-github.html
Python Software Foundation Blog
The Python Sofware Foundation receives the Wonderfully Welcoming Award from GitHub!
[November 9th, 2023] - The Python Software Foundation is delighted to announce that we are a recipient of a GitHub Award under the Wonderful...
👍1🥰1
PyScript 2023.11.1 版本已发布
这是对 PyScript 的彻底重写,增加了大量新功能、更小的文件大小、更快的加载速度等等。
https://jeff.glass/post/whats-new-pyscript-2023-11-1
这是对 PyScript 的彻底重写,增加了大量新功能、更小的文件大小、更快的加载速度等等。
https://jeff.glass/post/whats-new-pyscript-2023-11-1
jeff.glass
What's New in PyScript Next (2023.11.1)
What's new and what's changed in the newest PyScript release
❤2
#Python潮流周刊
Python 潮流周刊#26:requests3 的现状
🦄文章&教程
1、Kenneth Reitz:迟来的道歉,以及 requests 3 的进展
2、grequests:异步的 HTTP 请求
3、开发一个 Python 编译器和解释器
4、使用 Python+ChatGPT 开发一个书籍摘要 AI
5、数据库生成的列 :Django & SQLite
6、你能用 Python 的 bisect 模块做到这些事
7、为什么说在 Windows 上为 Python 3.12 构建的 SciPy 是一个小奇迹?
8、使用 AI 进行网页抓取实验(使用 GPT-4 解析 HTML)
9、Django vs Flask:哪个是最好的 Python Web 框架?
10、在 Mac 上安装 Python 的正确方法
11、用 Python 开发简单的 Android 数据分析应用
12、改进 Numpy 的 Python API,为 2.0 版本准备
🐿项目&资源
1、pyvideotrans:视频的语言翻译,并添加配音
2、pyink:Google 内部修改 Black 而成的代码格式化工具
3、sqlmodel:Python 中的 SQL 数据库
4、wagtail:一个 Django 内容管理系统
5、NBA-Machine-Learning-Sports-Betting:使用机器学习的 NBA 比赛预测
6、Python_EBook_Free:Python 电子书和资源
7、pathway:高吞吐量和低延迟实时数据处理框架
8、prefect:一个工作流编排工具,构建数据管道
9、VideoCrafter:生成高质量视频模型
10、程序员值得看的 42 个学习资源
11、networkx:Python 的网络分析库
12、PythonFrameworks:Python 的各种框架汇总
🐢播客&视频
1、core.py:一档新的 Python 播客
2、为什么静态类型又流行起来了?
3、《Boost your Git DX》作者的两期播客
👀 全文 👀 合集 🤝投稿 🐱频道
订阅:微信 (可加群) | RSS | 邮件 | Twitter
Python 潮流周刊#26:requests3 的现状
🦄文章&教程
1、Kenneth Reitz:迟来的道歉,以及 requests 3 的进展
2、grequests:异步的 HTTP 请求
3、开发一个 Python 编译器和解释器
4、使用 Python+ChatGPT 开发一个书籍摘要 AI
5、数据库生成的列 :Django & SQLite
6、你能用 Python 的 bisect 模块做到这些事
7、为什么说在 Windows 上为 Python 3.12 构建的 SciPy 是一个小奇迹?
8、使用 AI 进行网页抓取实验(使用 GPT-4 解析 HTML)
9、Django vs Flask:哪个是最好的 Python Web 框架?
10、在 Mac 上安装 Python 的正确方法
11、用 Python 开发简单的 Android 数据分析应用
12、改进 Numpy 的 Python API,为 2.0 版本准备
🐿项目&资源
1、pyvideotrans:视频的语言翻译,并添加配音
2、pyink:Google 内部修改 Black 而成的代码格式化工具
3、sqlmodel:Python 中的 SQL 数据库
4、wagtail:一个 Django 内容管理系统
5、NBA-Machine-Learning-Sports-Betting:使用机器学习的 NBA 比赛预测
6、Python_EBook_Free:Python 电子书和资源
7、pathway:高吞吐量和低延迟实时数据处理框架
8、prefect:一个工作流编排工具,构建数据管道
9、VideoCrafter:生成高质量视频模型
10、程序员值得看的 42 个学习资源
11、networkx:Python 的网络分析库
12、PythonFrameworks:Python 的各种框架汇总
🐢播客&视频
1、core.py:一档新的 Python 播客
2、为什么静态类型又流行起来了?
3、《Boost your Git DX》作者的两期播客
👀 全文 👀 合集 🤝投稿 🐱频道
订阅:微信 (可加群) | RSS | 邮件 | Twitter
❤6👍1
Requests 库作者 Kenneth Reitz 在 2023 年 11 月 9 日发了文章:迟来的道歉
他回应的是 Trio 库作者 Nathaniel J. Smith(下称 NJS)在 2019 年 5 月发的文章:为什么我不与 Kenneth Reitz 合作
我很好奇,这 4 年以来,他发生了什么事?为什么在这么久之后,做出这份略显短促的回应?
查阅资料时看到 KR 在2016年2月发的 MentalHealthError: an exception occurred,诊断出患有“双相情感障碍伴精神病”(Bipolar Affective Disorder with Psychosis)
2019年3月的 MentalHealthError: three years later,加重成精神分裂情感障碍(情感亚型)(Schizoaffective Disorder (Bipolar subtype))+“边缘性”PTSD
非常同情 KR。
NJS 的文章也提到 KR 的精神问题,但他说“疾病并不能消除某人对他人造成的伤害,或他们对自己行为的责任。许多人在不伤害他人的情况下控制自己的病情,当他们搞砸时,他们会像我们其他人一样做出弥补。如果有人做不到这一点,那么作为一个社区,我们可以有同情心,但不应该给他们权力和影响力。”
他回应的是 Trio 库作者 Nathaniel J. Smith(下称 NJS)在 2019 年 5 月发的文章:为什么我不与 Kenneth Reitz 合作
我很好奇,这 4 年以来,他发生了什么事?为什么在这么久之后,做出这份略显短促的回应?
查阅资料时看到 KR 在2016年2月发的 MentalHealthError: an exception occurred,诊断出患有“双相情感障碍伴精神病”(Bipolar Affective Disorder with Psychosis)
2019年3月的 MentalHealthError: three years later,加重成精神分裂情感障碍(情感亚型)(Schizoaffective Disorder (Bipolar subtype))+“边缘性”PTSD
非常同情 KR。
NJS 的文章也提到 KR 的精神问题,但他说“疾病并不能消除某人对他人造成的伤害,或他们对自己行为的责任。许多人在不伤害他人的情况下控制自己的病情,当他们搞砸时,他们会像我们其他人一样做出弥补。如果有人做不到这一点,那么作为一个社区,我们可以有同情心,但不应该给他们权力和影响力。”
❤1🤔1
《软件工程是关于思考,而不是打字》
“工程师越缺乏经验,这对他们来说可能就越奇怪。毕竟,他们的工作是写代码,那么 thinking 怎么可能比实际 doing 更有价值呢?”
“Weeks of coding can save you hours of planning.
数周的编码可以为你节省几小时的计划时间。”
https://jordankaye.dev/posts/thinking-not-typing/
“工程师越缺乏经验,这对他们来说可能就越奇怪。毕竟,他们的工作是写代码,那么 thinking 怎么可能比实际 doing 更有价值呢?”
“Weeks of coding can save you hours of planning.
数周的编码可以为你节省几小时的计划时间。”
https://jordankaye.dev/posts/thinking-not-typing/
jordankaye.dev
Software engineering is about thinking, not typing | Organizing Chaos
Weeks of coding can save you hours of planning
👍5🥰1
《关于软件工程师工作,他们不会告诉你的 10 个难以接受的真相》
https://www.mensurdurakovic.com/hard-to-swallow-truths-they-wont-tell-you-about-software-engineer-job/
https://www.mensurdurakovic.com/hard-to-swallow-truths-they-wont-tell-you-about-software-engineer-job/
Mensur Duraković
10 hard-to-swallow truths they won't tell you about software engineer job
Last weekend I had a chance to talk with some students who just got their degree. They are pursuing their first software engineer job. In conversation with them, I learned that they have a pretty wrong perception of this job. This is because the reality for…
👍1
#信息源
《79 个技术博客,提升你的系统设计水平》
https://open.substack.com/pub/bytebytego/p/79-engineering-blogs-to-level-up
《79 个技术博客,提升你的系统设计水平》
https://open.substack.com/pub/bytebytego/p/79-engineering-blogs-to-level-up
Bytebytego
79 Engineering Blogs To Level Up Your System Design Skills
Manage GraphqQL APIs Using the Postman GraphQL client (Sponsored) The Postman GraphQL client offers a simple yet powerful way to work with GraphQL APIs. With Postman's GraphQL client, you can: Explore GraphQL schemas easily Create code-ready queries
❤1
PSF 一年一度的年终筹款活动和会员活动🎉
参与方式:
- PyCharm 7 折优惠,所有收益将捐给 PSF,活动持续到 11 月 27 日
- 直接捐赠给 PSF
- 注册成为 PSF 的支持成员
https://pyfound.blogspot.com/2023/11/support-python-q4-2023.html
参与方式:
- PyCharm 7 折优惠,所有收益将捐给 PSF,活动持续到 11 月 27 日
- 直接捐赠给 PSF
- 注册成为 PSF 的支持成员
https://pyfound.blogspot.com/2023/11/support-python-q4-2023.html
👍3
#Python潮流周刊
Python 潮流周刊#27:应该如何处理程序的错误?
🦄文章&教程
1、将 Python 错误作为值:比较 Go 和 Rust 的使用模式
2、调试 Django 中的 CSRF 失败/403 禁止错误
3、对 Python 环境和包管理工具的公正分析
4、让我们一起创建一个 Python 调试器
5、揭开 Python 3.12 的面纱:Python 世界有哪些新东西?
6、Python 的哈希表指南
7、运行不可信的 Python 代码
8、了解 Linux cp 命令并用 Python 编程实现
9、初学者应该用 Django,而不是 Flask
10、PEP-733:对 Python 公共 C API 的评估
11、让我们做一个类 JSON 语法的解析器
12、一门编程语言应该有多大?
🐿项目&资源
1、CogVLM:多模态预训练模型
2、movis:用于生成与编辑视频的库
3、mirror:基于摄像头内容,实时回答问题
4、vimGPT:使用 GPT-4V 和 Vimium 浏览网页
5、twitter_user_tweet_crawler:无需调用 Twitter API,爬取用户推文
6、RSS-OPML-to-Markdown:将 OPML 文件转化为易读的 Markdown 格式
7、MyHeyGen:视频翻译工具
8、awesome-python-repo-stats:统计“awesome-python”列表中项目的信息
9、outlines:引导式文本生成
10、marimo:下一代 Python notebook
11、Finance:150+ 量化金融 Python 程序
12、tacticalrmm:一个远程监控和管理工具
🐢播客&视频
1、CPython 的 JIT 编译器
2、The Python Show 第 21 期:Sanic - 异步 Web 框架
👀 全文 👀 合集 🤝投稿 🐱频道
订阅:微信 (可加群) | RSS | 邮件 | Twitter
Python 潮流周刊#27:应该如何处理程序的错误?
🦄文章&教程
1、将 Python 错误作为值:比较 Go 和 Rust 的使用模式
2、调试 Django 中的 CSRF 失败/403 禁止错误
3、对 Python 环境和包管理工具的公正分析
4、让我们一起创建一个 Python 调试器
5、揭开 Python 3.12 的面纱:Python 世界有哪些新东西?
6、Python 的哈希表指南
7、运行不可信的 Python 代码
8、了解 Linux cp 命令并用 Python 编程实现
9、初学者应该用 Django,而不是 Flask
10、PEP-733:对 Python 公共 C API 的评估
11、让我们做一个类 JSON 语法的解析器
12、一门编程语言应该有多大?
🐿项目&资源
1、CogVLM:多模态预训练模型
2、movis:用于生成与编辑视频的库
3、mirror:基于摄像头内容,实时回答问题
4、vimGPT:使用 GPT-4V 和 Vimium 浏览网页
5、twitter_user_tweet_crawler:无需调用 Twitter API,爬取用户推文
6、RSS-OPML-to-Markdown:将 OPML 文件转化为易读的 Markdown 格式
7、MyHeyGen:视频翻译工具
8、awesome-python-repo-stats:统计“awesome-python”列表中项目的信息
9、outlines:引导式文本生成
10、marimo:下一代 Python notebook
11、Finance:150+ 量化金融 Python 程序
12、tacticalrmm:一个远程监控和管理工具
🐢播客&视频
1、CPython 的 JIT 编译器
2、The Python Show 第 21 期:Sanic - 异步 Web 框架
👀 全文 👀 合集 🤝投稿 🐱频道
订阅:微信 (可加群) | RSS | 邮件 | Twitter
👏7❤1👍1
关于编程语言对错误的处理,分享四篇文章:
1. Error handling patterns
https://andreabergia.com/blog/2023/05/error-handling-patterns
译文:https://pythoncat.top/posts/2023-05-08-error
2. Python errors as values: Comparing useful patterns from Go and Rust
https://www.inngest.com/blog/python-errors-as-values
3. 两种风格的错误处理
https://frostming.com/error-handling/
4.Musings about error handling mechanisms in programming languages
https://www.amazingcto.com/best-way-to-handle-errors-for-a-programming-language/
1. Error handling patterns
https://andreabergia.com/blog/2023/05/error-handling-patterns
译文:https://pythoncat.top/posts/2023-05-08-error
2. Python errors as values: Comparing useful patterns from Go and Rust
https://www.inngest.com/blog/python-errors-as-values
3. 两种风格的错误处理
https://frostming.com/error-handling/
4.Musings about error handling mechanisms in programming languages
https://www.amazingcto.com/best-way-to-handle-errors-for-a-programming-language/
👍2
CPython Steering Council 提名 (2024 任期)
将于 2023-11-22 00:00:00 AoE 结束(美国东部时间 2023-11-23 07:00:00)
目前提名情况:
1. Steering Council Nomination: Thomas Wouters (2024 term)
2. Steering Council Nomination: Pablo Galindo Salgado (2024 term)
3. Steering Council nomination: Emily Morehouse (2024 term)
4. Steering Council Nomination: Donghee Na (2024 term)
将于 2023-11-22 00:00:00 AoE 结束(美国东部时间 2023-11-23 07:00:00)
目前提名情况:
1. Steering Council Nomination: Thomas Wouters (2024 term)
2. Steering Council Nomination: Pablo Galindo Salgado (2024 term)
3. Steering Council nomination: Emily Morehouse (2024 term)
4. Steering Council Nomination: Donghee Na (2024 term)