编程是艺术
在这段讨论中,编程的地位在艺术、手艺与工程之间摇摆不定:有人把代码视为个人表达的媒介,也有人坚持其首要目的是解决问题、保证正确性与可维护性。许多人认为 AI 编程工具是一把双刃剑:它们能加速重复性工作并把人类推向更高层次的设计,但也可能侵蚀对代码的深刻理解、代码质量,以及“手工”软件带来的乐趣。对摄影影响绘画、机械化织布的类比,凸显了人们对大量商业编程将被商品化的担忧,而真正仍为热爱而非金钱编码的人,只会在一个小众空间里继续存在。
编程是艺术、手艺还是工程?
- 许多人认为编程可以是艺术:它涉及风格、美学选择,以及代码中可识别的“签名”。
- 另一些人则把它主要看作工程或手艺:正确性、可维护性和是否符合用途占主导,尤其是在职业环境中。
- 也有人加以区分:系统设计/架构才是“艺术”,编码只是实现它的技术。
- 还有少数人说,解决方案或用户体验可能是艺术,但源代码更像画笔,而不是艺术品本身。
- “艺术”的定义差异巨大:从“思想/情感的表达”到“任何涉及想象力和技巧的事物”都有,这正是许多分歧的来源。
爱好者的乐趣 vs 职业现实
- 对编程是出于热爱的人(通常在工作之外)与主要把它当作赚钱手段的人之间,存在明显分裂。
- 爱好性工作被描述为带有游戏性、探索性,不拘泥于严格的用途适配。
- 职业代码则被描绘为受约束、受截止日期驱动、“无聊而标准化”的,往往更像手艺而不是自我表达。
AI、LLM 与创作过程
- 有些人把 AI 看作强大的助手:适合处理样板代码、给出建议、重构,并把人类推向更高层次的设计和产品工作。
- 另一些人则认为它令人失去动力并产生疏离感:它侵蚀对系统的深刻理解、心智地图,以及解决问题的满足感。
- 关于代码质量存在激烈争论:有人声称智能体现在能写出不错甚至更优的代码;也有人看到的是明显的 bug、过度设计,以及难以阅读的“vibe-coded slop”。
- 还有人担心依赖 LLM 会把用户锁定在供应商生态中,并把代码降格为廉价商品。
“工匠式代码”的经济与市场
- 几个人指出,艺术是奢侈品;企业通常想要的是便宜、够用的软件,而不是定制化艺术。
- 类比商业艺术家:大多数有偿工作都是“日常”委托,而不是画廊级艺术。
- 有人认为开源是最接近“工匠式代码”市场的东西。
历史与跨领域类比
- 反复出现的类比包括:
- 摄影对绘画的影响。
- 织布和工业革命。
- 即使有超人类 AI,国际象棋和围棋仍然是“艺术”。
- 这些类比既被用来预测编程的商品化,也被用来论证一种小众、非商业的“编程艺术”会存活下来。
身份、地位与未来
- 讨论中充满了对生计被降格为“爱好”的焦虑,以及对常规程序员即将遭遇“大淘汰”的担忧。
- 另一些人则预期未来大规模软件将由 AI 生成,而人类编码主要作为一种小众手艺或艺术形式继续存在。