軟件開發圈是個奇怪的圈子。儘管有着低失業率、高薪水和美好前景,顯然一直處於危險和衰退之中,或者迫切須要警醒。有的開發者將最近軟件開發的興旺僅僅看作是將來衰退的前兆,而且開始寫宿命型小說來警示這個即將死去的圈子。程序員
Greg Baugues以前寫過一篇文章《咱們這一代的汽車工人》。他在文中比較了當今的軟件開發者和60年代底特律汽車工人。Baugues的認爲取代底特律汽車工人的機器人將會一樣地取代軟件開發者。做爲證據,他舉了一些例子:電子商務的Shopify,在線日誌的WordPress,還有信用卡集成的Stripe。儘管競爭愈來愈激烈,他說軟件開發教育的需求已經爆發,伴隨着像 Treehouse和 Hacker School這樣的公司提供低成本,高相關的課程,讓學生能夠在大學四年裏用零碎的努力和代價爲開發工做作準備:編程
不要感受良好。不要被一種語言鎖住。不要過河拆橋。時常磨刀。學習軟技能。創建聽衆。存點錢。人際關係。閱讀。segmentfault
幾乎在全部的觀點上,Baugues都沒有達到目的。首先,這裏組裝(無需技能的手工活)和軟件開發(須要技能的腦力活)有性質上的區別,讓前者自動化是不可避免的。自動化創造力比自動化組裝困可貴多。並且底特律的汽車工人有工會,處於歷史上最好的時期:工業上的功能需求旺盛,而且那時候自動化成本過高。對軟件開發者二者都不成立——他們拒絕工會化(爲了不把低端功能進行外包而受損),而且他們的功能不是輕易就能自動化的:它就是自動化自己。安全
集體的交涉和工會給了汽車工人一個溫馨的中產階級的生活。可是最終利潤降低和開始受到全球競爭的衝擊。汽車變得更加安全,易於操做,更高效,更可靠,更大衆。汽車工人(還有他們的工會)也許料到了全球化,可是汽車工人發現本身在新的世界裏還在用老一套規矩。另外一方面,軟件開發者從1980年代已經步入全球化,這也許從第一天起就開始了。他們很清楚他們的工做自然的全球化,他們沒有躲藏在認爲本身是在一個有保護的有限的市場裏工做的幻想中。因此彷佛Baugues的比較並不公正:不只軟件開發和汽車製造有質的區別,並且工人缺少工會表明權,儘管全球競爭激烈,他們仍是沉浸在工會的汽車工水平的報酬中。app
可是自動化呢?在輝煌的將來,咱們都絕不費力地將API相互鏈接(顯然沒有報酬),這個怎麼樣?這裏,Baugues將最近的5年看作是將來50年的藍圖,大聲宣稱軟件開發自動化是既成事實。讓咱們來看他給的例子。框架
WordPress,免費博客平臺和開源博客軟件,2007年中期騰飛,如今支持着(據有些統計)將近20%的網頁。Baugues說WordPress能在「15分鐘」裏完成過去要「兩個月」作的事,任何爲本身或客戶創建過WordPress站點的人都很清楚WordPress經常是網站現實功能的最小外殼(受權,發佈,和標籤)。它把那些網站最開始要作的枯燥的苦活自動化,無關任何困難的邏輯(那個留給定製的插件)。只發日誌是零成本的——只用看看 Tumblr 就知道了。WordPress的真正價值在於提供成熟的網站框架。有個聲稱說其競爭項目 Drupal 和 Joomla能夠作得更加使人說服。ide
Stripe,一個出如今2010年的開發者友好的信用卡API,如今只是聲稱有少許知名度高的客戶。到今天爲止,它只是一個在支付處理界那些老牌競爭對手中更便宜,更簡單的選擇。自動化哪去了?相似地,Shopify,成立於2006年,是一個方便的類WordPress的在線產品銷售平臺。它僅僅是把過去自動化了的——網頁模板,支付,多機託管拼湊到一塊兒。Stripe和Shopify都不是將來軟件開發自動化的好例子。因此Baugues提到他們想要代表什麼還不清楚。這些產品是前一代的改良,更集成,更用戶友好,可是他們都沒有徹底自動化(也不是最軟件即服務(SaaS)的產品),也沒有搶開發者的工做。
wordpress
自動化引發的焦慮和存在的恐懼由來已久,每每誕生於對歷史的無知。在1960年代,倫敦絲綢紡織工積極抗議機器織布機——它能夠大範圍地減小對他們勞務的需求——甚至於要經過法律禁止它。然而,在17世紀中期機器紡織機已經開始取代手工紡織。做爲迴應,1675年八月,暴亂的紡織工人走上街頭,毀掉了大批他們能找到的紡織機。學習
17世紀末期,雨格諾派教徒(法國新教徒)移民進入到紡織工業進一步激起了倫敦紡織工的憤怒,致使他們恐嚇和排斥新來者。幾十年後,在1760年代晚期,斯皮塔佛德的騷亂由紡織工組織起來,目的是要保持他們在自動化工業和法國競爭面前得到公平的報酬。騷亂者沒有可以達成他們的目標,自動化步伐並未減弱。網站
19世紀早期,英國紡織工人組成的盧德派聯合來反抗自動化。他們損壞和破壞機械並威脅要採起進一步的暴力。終止於1813年的審判,後來中止抗議了。從那之後,思想家諸如馬克思,海德格爾,米爾達爾,芒福德,埃呂爾就批判過技術和自動化,然而世界依舊不停地自動化,帶來了增加,穩定和安全還有快速增加的人口。這不是說自動化天生就是好或者良性,而是說它的效應儘管長遠來看具備毀滅性,整體來講仍是正面多餘負面。更有意思的是自動化還沒有帶來工做簡單,工時短的理想世界,若是有帶來什麼,那就是自動化給工人更大的壓力,讓他們比任什麼時候候都努力工做。
由於Baugues提到了SaaS和互聯網產品,那麼只有談談互聯網對軟件開發的影響纔算公平。互聯網產業並無蠶食本身,而是在不斷提升門檻。十年前,「網頁開發」意味着懂HTML的應用知識,一點點CSS、Perl和PHP。五年前,它意味着精通HTML和CSS,一些JavaScript,還有PHP、Ruby、Java或者ASP中任何一門。今天,它意味着HTML和CSS的徹底分離(讓設計師去考慮那些),精通PHP、JavaScript、Python、Ruby或者Java中的至少兩門,還須要熟悉Git、包管理和持續集成這類東西。Web開發者比之前任什麼時候候都作得多,並且還得不斷地用業內最新的改進和變化去在高可靠性系統的約束和需求之間尋求平衡。他們線下的同行不須要太多重複自我發明。若是說有的話,就是過去十年已經看到了網頁開發裏最具重複性組件的自動化(就像汽車工人的工做)。如今還有程序員會重頭開始寫一個在線商店或者博客嗎?毫無疑問,如今咱們有更多有趣的問題須要解決。
Baugues提到的編程學校和學院也忽略了這點。1990年代後期咱們已經這樣把它做爲一個產業來發展了。計算機科學大量提升招生名額,這個專業的畢業生享受了數年的高薪。而後市場崩潰,計算機科學招生降低,失業率暴漲,工資也回到他們的正常範圍。那種在計算機科學專業的短時間投入值嗎?畢業生髮現他們畢業即失業。更重要的是他們後來有沒有繼續作開發或者是換成別的行業,把編程忘得一乾二淨?相似地,若是軟件開發的市場明天崩潰,有十年開發經驗的開發者轉投別的行業不會發生。而是會有來自「駭客學校」新生產出來的畢業生,他們只參加了3個月的課程學習如何製做Python應用,他們會跑得最快。他們的知識基礎薄弱——他們不但缺乏每一個開發者都要通過數年才獲取到的關鍵的經驗知識體系,並且還缺乏網頁開發學校或者博客上學不到的計算機科學理論知識。若是比賽是經過編程教學機構,那今天的軟件開發者沒有什麼可擔憂的。這是一個沒有入門門檻的領域,新一代不成熟的開發者不但不是威脅,並且是一個巨大的機會。
自動化不會對軟件產業構成威脅。對於每一個封裝某個業務處理的API,還須要寫一個應用程序,適當的時候還須要有支持的API。對於每一個履行某種功能的庫和app,還要有新用法。對於每一個須要被自動化的處理系統,還有一個開發者工做等着。今天存在的數量龐大的軟件應該給悲觀者一個暫停的機會 —— 也許有一個嶄新的軟件開發產業正在將舊的產業淘汰,這個產業不會關注諸如支付處理或博客這種乏味的問題,而是旨在用過去二十年中來之不易的成果來解決困難度以指數級增加的問題。
軟件開發是爲數很少的可以持續提煉自身的產業之一。不像製衣或醫療或汽車業,軟件是難以捉摸且無形。軟件開發者是問題的解決人,他們經常使用某種很抽象方式解決問題。它讓一類特別樂觀的人去想那種人才的自動化,而且讓一類特別悲觀的人去認爲它永遠這樣。(It takes a special sort of optimism to consider that kind of talent automatable, and a special sort of pessimism to think it will ever be so.)
原文連接:Not the autoworkers of our generation
轉載自:伯樂在線 - 奇風餘谷