許多開發者社群都問錯了問題。
不是因為他們擔心低品質、低投入的作品是錯的,不是;而是他們所使用的過濾標準,根本無法把持續維護的工程與生成出來的垃圾區分開來。它只是依照創作時用了哪些工具來區分專案而已。
想像一下,你想分享一個自己非常自豪的作品,過程中有 AI 幫忙協助;點子是你自己的,但你的作品卻被標記、被拒絕,或被諸如 「才沒有」、「我超討厭現在到處都是 AI 專案」 這類留言淹沒。某些人在說完這些話之後,一定覺得自己很正義,深信自己是在保護社群免於低投入垃圾的污染。
但實際上,他們保護的根本不是那個。
他們保護的是 一個標籤。
我讀了 @madsendev 的文章,內容是關於 Open Vectorizer。Madsen 想把這個專案分享給其他人,也希望有人願意一起貢獻。
看起來,「AI 生成」與「持續維護的工程」之間的差異,對那些把過濾條件簡化成單一二元問題的守門人來說,已經變得看不見了。
問錯問題了。
「有用 AI 還是沒用 AI?」(他們可能沒有真的這樣問,但實務上就是這個篩選方式。)
原因如下:想像兩個專案。
專案 A: 某人花了兩年重新設計向量化演算法,研究機器學習是否能改善它,最後決定不用,改用可決定性的做法;接著發現自己的基準測試資料被灌高了(但還是修正了),發表了可重現的結果,並且持續維護程式碼。
專案 B: 某人對 AI 提示詞輸入「幫我做一個音樂串流 App」,把跑出來的東西直接發布,沒做測試就消失了。
兩個都用了 AI。兩個都被貼上「AI 生成」的標籤。只有一個適合出現在開發者社群裡。另一個才正是社群應該要過濾掉的東西。
猜猜看哪一個被拒絕?對,兩個都被拒絕。你運氣最好也只是之後才被拒絕,因為守門人正忙著跟你爭辯,然後把社群名稱改成:「我好懷念以前用打孔卡、嘴裡叼根菸寫程式的日子」——啊,沒錯,就是這種身份危機。
這種守門邏輯乍看之下似乎合理,但它其實有很大的問題:
否定式的回應: 「才沒有。」(出自 @deammer)。這種回應必須忽視實際的技術工作,但 Madsen 其實重寫了一整套演算法流程,拿它跟既有工具做測試,還抓到一個讓自己基準結果看起來更好的 bug,然後依舊把較差的數字照樣公布出來。這根本不是某個人把提示詞丟給 Claude 就拍拍屁股走人的那種情況。
更廣泛的顧慮: @blakebeckcoding 指出了一個真實問題:未經審查的 AI 生成程式碼確實引入了安全漏洞。這是對可維護性與責任歸屬的合理擔憂。問題出在,把這點直接當成足以在評估技術價值前,就拒絕 所有 AI 協助專案的理由。對低品質程式碼的擔心是合理的,但「依工具選擇直接拒絕」這個簡化規則,其實無法真正解決問題。
換個角度想: 我們不會因為 Rust 讓記憶體安全更容易,就拒絕所有 Rust 套件;也不會因為 C 可能產生記憶體錯誤,就假設所有 C 專案都不安全。語言選擇會影響機率,但它不決定品質。AI 也是一樣。
懷舊牌: 「Dev.to 以前比較好」(還是那位仁兄,你知道是誰,老哥就是在懷舊)。這裡潛藏著一種假設:在 AI 工具出現之前,開發者社群的品質比較高。但人類自 1980 年代以來就一直在發布糟糕的程式碼,亂貼亂發一直都是問題,也不是什麼新鮮事;AI 只是讓這件事更容易、更便宜而已。
開發者社群確實正被大量內容淹沒,但問題不是特定的 AI 生成專案,而是 低投入專案,就這樣。而且就像前面說的,因為 AI 讓產出成本變低,這波洪水正在以驚人的速度上升。
那解法呢?不是「封殺 AI 專案」。
而是要理解,什麼才是真正能把訊號和雜訊區分開來的東西:
這些問題對人寫的程式碼同樣適用。而且它們很 難驗證,需要真正閱讀、思考與判斷。
「有沒有使用 AI?」很便宜。勾個選項而已。看起來很有原則,也讓版主可以趕快往下做。
「這是不是可維護的工程?」就需要真的去理解作品。
在留言串裡,@unitbuilds 提出了最合理的觀點:
「軟體開發是一個編排過程,最終的價值是能運作、經過稽核與測試的軟體——而不只是人手打字的時間。」
然後又說:
「如果你只會留這種留言,就去 X 加入那個糞坑吧,或是去 Reddit,他們會很歡迎你。請讓 Dev.to 保持為所有開發者都安全的空間。」
講得很好,不是嗎?這並不是在抽象地替 AI 辯護,而是在捍衛 社群仍然是社群:一個可以分享作品、獲得回饋的地方,而不是一個因為使用了哪種工具就要接受純潔性測試的地方。
那位說自己用 99% AI、在全職工作的情況下做出一款 3000 行的遊戲的人,理應有資格分享作品。用 GitHub Copilot 來補完成常見程式碼的人也是。Open Vectorizer 的作者也是——他在 AI 協助下做出架構決策,但不會拿自己無法解釋的東西去發表。
他們都不該因為一個無法反映作品品質的標籤而被否定。
這一點看似離題,其實不然:軟體開發一直都是這樣運作的。
我們從組合語言轉到 C,沒有人會說 「你根本沒在寫程式,因為你用了編譯器。」 我們從手動記憶體管理走到垃圾回收。從原始 SQL 走到 ORM。從手寫 Dockerfile 走到樣板。從複製貼上 Stack Overflow、到 IDE 重構、再到 GitHub Copilot 自動補全。
每一步都提高了抽象層次。每一步都引發擔憂:開發者會不會變懶、標準會不會下降、工藝會不會被稀釋。
但每一次,真正重要的問題從來都不是 「你用了什麼抽象層級?」,而是 「你是否理解產生出來的東西?你能不能為它辯護?你會不會維護它?」
這才一直以來都是真正的標準。
AI 只是這條演進路徑上的下一步。它更激進、更顯眼,產生平庸輸出的速度也更快。但本質上,它並沒有和其他讓開發者把重複性工作交出去、專注在真正重要決策上的工具有什麼不同。
問題不是 AI 應不應該被接受。
簡單來說,自從第一個高階程式語言被發明以來,人們就一直說軟體開發要完了……只是這種焦慮循環不斷繞圈重演而已。
不,不是要「全面開放」。重點在於你到底在篩選什麼。
好的版主管理應該:
糟糕的版主管理,就是現在正在發生的事:
DEV 轉向要求揭露、而不是直接禁止 AI 協助內容,這點很好。它把誠實的責任交給創作者,然後讓社群根據實際作品來判斷。
@unitbuilds 說得對:開發者社群的工作是分享作品並獲得有實質內容的回饋,而不是去管方法論本身。
把好工程和垃圾內容區分開來的問題其實很直接:
不論程式碼是人手打的、由 Claude 生成的,還是混合而成,這些問題都適用。因為它們關乎理解與責任——也正是一直以來決定品質的東西。
工程應該根據理解、正確性、可維護性、測試與責任感來評估,而不是看敲了多少鍵。
原文出處:https://dev.to/adamthedeveloper/understanding-over-origin-4685