軟體無用論
在一個週六的晚上,同事的一段文字讓我思緒萬千,沉寂了十幾年的寫作衝動,就這樣被這段文字喚醒了,雖然已經0點過半。
不斷縈繞在我腦中的一個思考:為什麼越是痛苦壓抑,越是能夠產生富於生命力和創造力的文字;越是寫意輕鬆,產生的卻是浮躁且沒有靈魂的聲音。已經忘記是在哪裡看到過這樣一篇文字,叫做“歷史的終結”,大概的意思就是,當故事走向幸福道路的時候,歷史就在此刻終結了,因為幸福的故事已經不需要被表達與陳述。
“每一個幸福的家庭都是相似的,而每一個悲慘的家庭都有各自不同的悲慘”,這給出了一個可能的解答。痛苦是多樣化的,而多樣化正是生命力與創造力的源泉。在痛苦的擠壓下,在那一絲絲的罅隙中奮起抗爭,產生的是生命力與創造力;在約束的束縛下,在那一點點的空間中輾轉騰挪,浮現出的卻是富於生命力與創造力的設計。
軟體便是這樣,它是在問題與約束的罅隙中,純粹腦力掙扎的產物。然而軟體卻又不同於文學作品,文學作品的執行時環境是人的大腦,大腦極強的適應性使得文學作品的價值可以世世代代的延續下去;然而軟體的執行時環境是機器,其價值在幾十年甚至短短几年裡便會消耗殆盡,軟體是短命的。
一個又一個新的javascript框架產生了,主流技術棧變得越來越相似,輪子在不同的語言和框架中一遍又一遍的被重複發明著,軟體總是被淘汰與替換著。
自軟體誕生起,就以驚人的速度不斷降低著自己的構建成本,隨著軟體開發技術的不斷革新,今天大多數的商用軟體,本質上都是基於開源軟體的二次開發而已,各種PaaS平臺的興起,進一步讓軟體的構造變的越來越容易。
想想你所寫的每一行程式碼,將會以多快的速度被淘汰、被替換、被遺忘?越來越多的公司紛紛開源了自己的核心軟體資產,讓軟體成為一種吸納人才的手段,這些公司的核心競爭力越來越不在於軟體本身。
軟體生來便是短命的,越來越容易構造,就會越來越快的被替換和淘汰,也不會有太多公司以軟體作為核心競爭力——Software is Worthless,即使不是現在,也就在不遠的將來。作為軟體的從業者的我們,整天疲於奔命學習新技術的我們,又應當用什麼來衡量自我的價值?這一切的意義何在?
好吧,可能這個問題現在還不重要,在軟體變的越來越容易構造、生產成本越來越低的時候,我們的工資卻在不斷攀升,在這樣的一個軟體人才供需極度不平衡的市場上,散發著軟體要吃掉整個世界的訊號,也許幸福的日子還能持續很長一段時間。可惜幸福與工資並沒有太大的關聯關係,所以歷史也並未在此終結。
回顧我自己這些年的技術生涯,所做過的大大小小的專案,幾乎都有著各自的悲慘,無論是成功的、失敗的,都談不上令人滿意。所做過的技術決策,隨著技術的革新,無一例外都是錯誤,若是以結果來衡量軟體開發本身,一定是“人終有一死”。然而我的感覺卻沒那麼糟,因為我更相信自己能夠在新的環境下,更好的認清楚自己要解決問題,更好的搞清楚約束是什麼,更好的保持開放心態、同時謹慎前行。除此之外,我卻找不到任何一個與技術相關的詞彙來描述自己的收穫。
軟體的本質是知識工作,而軟體開發的過程,就是學習與成長的過程,過程的重要性是要遠大於結果的。我們在盡力打造更好軟體的同時,也打造了更好的自己。
思緒漸漸飄到了3年前,在我對自己的技術生涯感到迷茫的時候,一位在矽谷幹了二十多年,在公司幹了一圈管理又回到技術崗位的同事對我說:“寫程式之於我,就好像是空氣和水一樣不可或缺,我覺得你應該和我是一樣的”,面對這句話的時候,當時的我無法迴應。然而在脫離技術崗位1年多,又重新開始做技術的今天,我卻想回到那個時間點,回答說“是的,我也是一樣。”
除了意識到自己對程式設計如此熱愛之外,還體會到這個比喻中蘊含的更深刻的含義。
我們應當如何去衡量水的價值?我們又如何去衡量空氣的價值?我們如何去衡量軟體的價值?衡量知識的價值?衡量自我的價值?
今天,軟體就如同空氣和水,覆蓋著我們生活的方方面面,變成了我們無法缺少的東西。當這個世界上,水需要去買,也許在某種程度上說,空氣也需要去買的時候,難道不能引起你的反思,反思這個世界是哪裡出了問題?這一切,都讓我想起了網際網路、黑客、開源精神,還有 Aaron Swartz……
在我們打造更好軟體的同時,打造更好自己的同時,也許還有一個更遠的遠方在召喚著我們。
文/於曉強
相關文章
- 軟體論文之論軟體質量保證及其應用
- 軟體工程方法論對軟體開發有多大的用處?軟體工程
- 論軟體架構設計及應用架構
- 軟考論文論湖倉一體架構及其應用架構
- 軟體工程——概論軟體工程
- 推薦五款實用的良心軟體,無廣告無彈窗
- ERP軟體應用的誤區與謬論(轉)
- 軟考論文之論軟體的可靠性設計
- 論軟體體系結構的演化
- 專案無論大小一定要使用專案管理軟體專案管理
- 軟體應用無所不在 正吞噬整個世界
- 軟體開發-敏捷方法論敏捷
- 【軟體測試】(一)緒論
- 軟體工程-論文查重軟體工程
- 搬運5款小體積,無廣告,超實用的軟體
- 軟體測試理論(1)基礎理論
- 軟體架構分層方法論架構
- 軟體測試基礎理論
- [技術討論]UML無用、誤用還是務用
- 用Python爬取了三大相親軟體評論區,結果...Python
- 論軟體系統架構風格架構
- 輕論壇軟體Flarum安裝指南
- 軟體開發者:豬與雞的爭論?
- 軟體測試理論和實踐
- 論軟體的元件式開發 (轉)元件
- 論軟體的可靠性設計
- 軟體測試學習教程—軟體測試基礎理論五
- 軟體測試學習教程—軟體測試基礎理論六
- 軟體測試學習教程—軟體測試基礎理論四
- 軟體測試學習教程—軟體測試基礎理論三
- 應用版本控制軟體管理軟體開發
- 是否可以建個關於Java在應用軟體領域的論壇Java
- 基於ERP理論對軟體中物料“單位”應用分析(轉)
- 軟體的未來是無碼
- 『軟體推薦』無限暢視
- 討論著軟體測試發現到最後都不是在討論軟體次測試了
- [軟體人生]一場無傷的辯論——關於韓國曆史和滿漢朝之間關係的討論
- 軟體工程--為什麼軟體開發方法論讓你覺得糟糕軟體工程