编程与软件工程mcmillen.dev
93% 的油漆飞溅图案都是合法的 Perl 程序(2019)
93% of paint splatters are valid Perl programs (2019)
2021 — 2024,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是 SIGBOVIK(一个以玩笑论文著称的会议)上的小作品:作者用 OCR 识别颜料飞溅图案,发现其中 93% 的字符串恰好是合法的 Perl 程序。文章借此调侃 Perl 语法极其宽松、几乎什么都能被解析成程序。评论则围绕 Perl 的实用与痛苦、OCR 偏差等展开。
为什么经久不衰:它用荒诞实验揭示了 Perl “条条大路通程序”的语言特性,是程序员对 Perl 爱恨交织的经典梗,今天读来仍有趣且引人思考。
HN 评论精选
用自嘲表达 Perl 让人又爱又怕的复杂感情。
有趣的阅读。我曾用 Perl 写过一个完整的 CMS,至今有时还会在梦里惊醒尖叫。(补充:这只是随口玩笑,无意冒犯,抱歉。)
ChrisMarshallNY查看英文原文
That's a fun read. I once wrote an entire CMS in Perl. I still wake up, screaming, sometimes. [UPDATE] It appears as if my flippant remark caused upset. I am sincerely sorry that this was the case. No offense was meant. @peteretep, you have my sincere apology. It was a flippant remark. At the time I wrote it (mid-1990s), Perl was the best way to write portable server-side code. I took the time to learn it, and got fairly good at it. Since then, I have found my muse in other languages, but I sincerely did not want to give offense. I doubt that deleting the comment would help.
Perl 曾赋予初学者自动化日常的强大能力,令人感激。
大学时出于好奇学了 Perl,读完《Programming Perl》后感觉自己有了超能力。我试图用 Perl 自动化生活的一切:早上脚本已经抓取并下载好课件、发去打印,找不到笔记就发邮件提醒,还写爬虫找校园里提供免费食物的活动。这是我第一次感到程序能真正改善生活,也改变了我对程序员能做什么的看法。永远感激 Perl。
debo_查看英文原文
In university, I learned Perl out of curiousity. It was the first scripting language I tried; I was only familiar with Java, C and Scheme at the time. After reading Programming Perl from cover-to-cover, I suddenly felt like I had superpowers. I probably would have felt the same if I'd taken the time to learn bash scripting, but that's not how it worked out. I tried to automate everything in my life with Perl. I'd walk to class in the morning and a script had already scraped and downloaded my lecture materials and sent a print job for me. It emailed me if it couldn't find notes for one of my scheduled classes. Others would manage my assignment submissions. I wrote scrapers to detect what events on campus might offer free food. This was the first time I felt like I could write programs that actually had the power to improve my life. It changed my perspective on what I had the power to do as a programmer. I'll always be grateful to Perl for that. I also learned how to quickly develop a thick programmer skin by asking questions on comp.lang.perl, but that's another topic altogether.
调侃文章标题与示例不符——有些“颜料飞溅”并非颜料。
作为 Perl 程序员兼画家,我必须指出:文中展示的程序并不是涂抹的,也不在墙上,甚至有些根本不是颜料:[链接]
biztos查看英文原文
As a Perl programmer and painter I must point out that the programs show in this article are not smeared, and not on a wall. Nor on a Wall. Some of them are not even paint: https://www.mcmillen.dev/sigbovik/splatters/646f93a2d62ad81932f2971a0d50e03e.jpg
OCR 偏向自然语言字符,导致结果容易成为合法标识符,削弱了“Perl 程序”的特殊性。
这显然只是好玩,但看输出示例,OCR 可能有问题:它似乎针对自然语言字符(字母和空格)优化,而不是代码中常见的运算符。特殊字符输出极少,这会严重偏向生成标识符,而标识符在大多数语言中都是合法的。
lucideer查看英文原文
This is obviously just a bit of fun, but looking at the output examples, I think the OCR used may be flawed in that it's heavily optimised to produce characters used in natural language (alpha & spaces) rather than to produce e.g. operators common in code. The number of "special characters" output is extremely small. This will bias it heavily toward producing identifiers, which will be valid in most common programming languages.
历次讨论
同类还值得读
开源应用架构
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编辑精选