自從有了 AI,世界變得太快了
前言
AI 崛起也在不知不覺中已經過了兩三年的時間,它也逐漸在方方面面都開始對我們產生了很大的影響,不過我沒有要展開討論這點,我只想針對自己的老本行來抒發下最近的想法。
老實說,AI 對於軟體開發人員來說,應該是又愛又恨的存在吧
像上述這類因為導入 AI 而裁員的新聞,這一兩年來相信都已經見怪不怪了吧(今年還是繼續砍…),但習慣跟能不能接受還是兩回事,前幾年不斷被傳講的「Software is eating the World」現在看起來更顯諷刺(結果自己先被吃掉了 😢),雖然有千言萬語不過這個時間點,大概都是抱怨的話,所以就不展開了~
既然世界已經演變成這樣,也只能強迫自己去接受它,不過值得慶幸的是鄙司也是大力推動(但還沒裁員)的那一派。能夠遊刃有餘的使用各家 AI 其實也是一種奢侈的事,也在逐漸摸索中有了自己的一些體會跟感想。
玩具變工具
記得 GPT 剛火熱起來的時候,雖然當時有不少軟體開發者悲觀論出現,不過大多數的開發人員我猜應該都沒有很認真的看待它,畢竟做做玩具或 one time only 的小東西或許沒什麼問題,但真的拿去能無痛接入到平常的開發工作中應該不多。
不過隨著不斷飛速的成長,最近也開始看到一些很不一樣的言論:
Google 的資深工程師透過 AI 在短時間完成以往一年的工作。
DHH 也提到最近他對 AI 徹底改觀,在開發中開始大量使用
甚至連 torvalds 也跳進來玩了(對,我知道只是玩玩而已),也還有很多很多第一線的資深開發者都開始對 AI 有更積極的觀點。Redis 的作者也在日前寫下了他近期對 AI 的看法 - Don’t fall into the anti-AI hype,雖然有部分不樂觀、不確定的成分,不過還是說到了:
Whatever you believe about what the Right Thing should be, you can’t control it by refusing what is happening right now. Skipping AI is not going to help you or your career. Think about it. Test these new tools, with care, with weeks of work, not in a five minutes test where you can just reinforce your own beliefs. Find a way to multiply yourself, and if it does not work for you, try again every few months.
Yes, maybe you think that you worked so hard to learn coding, and now machines are doing it for you. But what was the fire inside you, when you coded till night to see your project working? It was building. And now you can build more and better, if you find your way to use AI effectively. The fun is still there, untouched.
這已經是不可逆的趨勢了,要嘛就跳進來好好的感受,然後再思考要怎麼跟它共存,走出一條全新的道路來。
AI 帶來的那團火
要爆了 (我想現在可能很多小朋友已經不知道這是什麼埂了) 😅
正如 ant. rez 在結尾說到的那句話 - The fun is still there, untouched,以往軟體開發最有成就感的地方,就在於自己實作出預期的目標之後,看著那個原本自己想像之物轉成成實體的那一瞬間,親自用了、玩了。當 AI 來了之後,它把原本這種反饋的流程加快又增大。
重寫輪子,又怎樣 😂
前篇文章已經是 2024 的事,那邊提到用 fresh 重寫過,沒想到下一篇又是重寫吧。最近因為對 Deno 發展有點失落(Fresh 等 2.0 問世等到不想用了),剛好最近對 TanStack 這個生態很有興趣,就想說來重寫試試。
結果大概半天就成形了:
- 沿用 layout 並優化
- 逐步補上缺少的 RSS、favicon、分頁、標籤等
- 增加針對 X、bluesky、YouTube 的 markdown link -> embedded 的轉換
- 增加對應的 cloudflare 佈署設定
真的是秒完成,以前都只敢想,但真的要動手改寫就猶豫然後放在 todo 永遠不再去碰它,但現在就是 1~2 小時的時間而已。
結果在推上線之前剛好又看到 Cloudflare 收購了 Astro 的消息,想說來改成用親兒子的框架說不定對未來維護更方便,結果 AI 就劈哩啪啦就轉移好了,實在是…😅
我知道可能會有人持反對觀點,覺得 AI 的東西根本沒辦法維護。就我個人的想法,沒錯,但依照目前的進步速度,AI 進步到可以拿捏大型架構軟體應該也不是不可能的事。其次,會不會軟體就是變成一次性產品或是不需要維護的使用情境呢?
AI 帶來的新場景
寫到這邊又想起之前 local-first 裡面聽到的關於 Barefoot Developer 的觀點(這邊就不展開了,有興趣可以跳轉過去,或者直接去聽講者的分享,非常推薦!),簡單說就是比起以往大企業提供的大型軟體的模式,AI 的出現帶來了更貼近用戶、更客製的需求(說到這裡看到最近有人提到美股 SaaS 的慘況 😅)。
就順著上題提到的「重寫本站」的經驗談。
裡面除了單純用 Astro 改寫之外,裡面有一個比較特別的需求,就是「針對 X、bluesky、YouTube 的 markdown link -> embedded 的轉換」這件事,看起來就是支援能嵌入社交平台的文章,但我因為把寫作的流程改到 Obsidian 上面(嘿,沒錯,但這個之後有機會再展開吧),然後為了介面友善的目的,搭配下列這個 plugin,他可以讓貼上的 sns 連結展開成 embedded post 的形式。
但它是實際上是利用插入圖片的格式,所以假設是這篇推文,就會是:

但因為這個方式當你佈署上線之後,它是不會轉譯成你預覽看到的 embedded post 的格式,正確的應該會是:
<blockquote class="twitter-tweet"><p lang="en" dir="ltr">just setting up my twttr</p>— jack (@jack) <a href="https://twitter.com/jack/status/20?ref_src=twsrc%5Etfw">March 21, 2006</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
原本可能身為前端苦手大概就是放棄,或是找其他現成的工具,但因為有 AI 我就試著把需求描述給它,它分析了之後就用 remark plugin 的方式來實作,就這樣原本可能會是「找第三方」->「測試」這個流程的反覆幾次,現在一個 AI 來回就實作完成了。
的確,它可能不會是一個多少人會用的模組,但這種極小的需求,正是上述 Barefoot Developet 所描述的場景,跟之前有人形容未來的 AI 算力就會變成像現今的水、電一樣基本生存必要的元件,這樣看起來軟體人可能就是未來的水電師傅吧~😂
開發行為的根本改變
最近推上不少人轉了 Ryan 的推文,也看到蠻兩極的意見,或許大家都有各自不同的看法,不過我自己也是比較偏向「或許在不久的將來,軟體工作不再需要長時間著鍵盤輸入各種語法、指令,而是站在更高緯度來「管理」這些 agent 來處理這種不同的需求」,正如前面提到水、電的例子,在現今這個到處都有水管可以方便配送之外,當然你也是可以提著水桶到河邊把水裝回來,但多數人可能不會再作這樣的事了。
當然未來到底會演變成什麼樣子,現在的我們也沒辦法知道。像 Musk 描繪那麼美好的未來,身為悲觀論者以及 nobody 集合體的我目前是沒辦法體會 😅,不過看著身邊的東西一點一點的變化也是蠻有意思的,譬如:
應用程式的定位
幾年前,甚至說以往,開發者對於各式各樣的開發工具經常趨之若鶩,這也是一塊許多人投入的市場,收費產品、開源專案等多不勝數。光看開發者熟知的 VSCode,圍繞在它身旁的就有多少 plugins,但最近 agent 興起之後,不少都轉移以 agent 為主、編輯器為輔的工作模式,當這個趨勢持續下去之後,原本的那些開發工具是不是會越來越不重要,反而是檢視、管理等工具會興起呢?
程式語言之亂
身為軟體開發者,以往最常看到的問題之一應該是:
- 為什麼不用 __ 開發?
- A vs B 那個語言比較好?
大家好像樂此不疲對於這類程式語言比較的問題,常常帶出許多討論的流量。但最近一直在思考,如果未來 AI 真的接手開發者大部分手動輸入程式的工作,那爭論什麼語言還有很大的意義嗎?想想現在很多語言的區分,不外乎就是 syntax、效能、學習曲線等問題各有優劣,但對 AI 來說多數這類可能都不再是問題,有沒有可能之後 AI 都直接針對底層結構直接處理,我們只需要針對「輸出的結果」來驗證並調校,再也不需要程式語言轉譯這一層了?
應用程式的定位
在前文有提到的 Nothing 針對手機軟體有一個大膽也很有趣的嘗試,就是讓 AI 來開發手機的應用程式,最近也越發覺得這個概念一定會在未來的某個時間點成真。
想像目前 iOS、Android 之所以沒有太多競爭者,一個很大的原因是它們背後那龐大的生態圈,想要替代並不是那麼簡單的一件事。但如果今天有人推出了一個「完全透過 AI 來開發應用程式」的平台會發生什麼事呢?今天應用程式之所以會存在,一來並不是所有人都有思考、設計的能力,再者就算有也不是每個人都有辦法將想法實作出來。
但今天有 AI 作為開發主體,每個人都可以天馬行空來設計不同風格專屬於每個人的軟體,像針對 Youtube 這個影片平台來舉例,有沒有可能:
- 只顯示影片,每部只播放彙整的部分,除非使用者點選,才展開成原本的完整影片。
- 可以把回覆改為彈幕的形式顯示。
在以往要加入這個功能,要嘛期待官方自己開發、要嘛就是找有支援類似功能的第三方來使用,但假使之後你可以直接描述自己的需求,系統就自動產生出一款專屬於你需求的軟體。如果真能這樣,「軟體開發」這件事會不會又是以完全不一樣形式的存在呢?
實在有太多太多的可能性,隨著 AI 那驚人進化的速度,可以無限展開。它以我們無法想像的速度在進化中,也逐漸改變我們熟知的一切。如今我們或許正處於一個最壞、也是最好的時刻,我們可以無力、沮喪、悲觀看待這一切,也可以試著理解、思考下一步該怎麼走。Never stop thinking