軟體抄襲與創新的思考

Phodal發表於2015-06-22

週末不想寫太多的程式碼,一是因為手部神經性壓迫導致疼痛(職業病啊),二是因為我覺得有必要再擴大一下知識範圍。在找小說未果的情況下,先是買了本微創新,然後收穫挺多的,又買了兩本(基於亞馬遜推薦。。加上我的成功率,我想只要找到一本就可以找到另外的三本):

  • 《微創新:5種微小改變創造偉大產品》
  • 《第三種創新:設計驅動式創新如何締造新的競爭法則》
  • 《模仿的技術:企業如何從"山寨"到創新》

看完了三本書,收穫還是蠻大的。就想著寫篇心得,兼作軟文。

一個快速實現的想法

三週之前,我對策劃了幾天的基於HTML的PPT、部落格、演示框架開始了編寫之路。到了今天,已然有了243次提交,這意味著每天可能有12次左右的程式碼提交(ps:感謝黨和組織,感謝長年不加班的公司讓我有機會去寫程式碼)。

如果你用過impress.jsreveal.js,那麼我想你是知道網頁版的Slider是長什麼樣的。如果不知道的話,快來看看EchoesWorks Demo吧。

  • impress.js有著酷炫的動畫效果,但是不支援Markdown。
  • Reveal.js支援Markdown,但是一點兒也不炫。

於是,在很久以前我有一個想法是,基於兩者做一個這樣的框架,但是覺得這樣子顯得沒有創意。這也是為什麼到了,現在EchoesWorks還沒有華麗動畫效果的原因之一(ps:另外一個原因是我對CSS3的動畫效果還沒有深入的研究,如果你研究過快來加入我們吧)。顯然,這激發不了激情。

直到有一天,我在想為什麼我的部落格還是靜態的, 應該要有點彈幕,應該要有點動作。便讓我聯想到了視訊,拿視訊當部落格有點兒戲,又浪費時間。一個Slider和視訊的差距,我想只有字幕音訊了。接著,來了一場頭腦風暴,開始編碼之後,就有了之前很水的一篇文章: 《EchoesWorks —— 打造下一代技術Blog/Presentation 框架》

So,來看看我是如何快速再造一個Slider的:

  1. 首先,我找到了一個叫bespoke.js的框架,它是一個DIY Presentation Micro-Framework,有了這個框架也有就有了基本的輪廓。
  2. 接著,我需要處理使用者輸入來控制Slider,便參照來了impress.js的程式碼。
  3. 由於,需要基本的計時工作,就參考了timeline.js的基本原型設計來完成。
  4. 需求告訴我,還需要一個進度條,接著就找到了nanobar
  5. 在微博上發的時候,發現對移動裝置支援不友好,就參考了Swipe來完成左右滑動的功能。

結局便是,我抄了一堆軟體來再造一個Slider,雖然還沒有造完。等等,我做了什麼?

  • 寫了一堆膠水程式碼。用於連線各個模組間的功能。
  • 寫了比產品程式碼還多的測試程式碼。用於保證大多數情況下的程式碼修改都不會破壞系統的功能。
  • 對其中某部分寫得不好的程式碼,做了重構。

看上去,不像是抄襲,什麼是抄襲?什麼不是抄襲?

創新

基於那幾本書,我對於創新的分類大致有:

  • 體制內創新
  • 體制外創新

上面的分類無異於把這個世界上的處理器分類為:

  • ARM
  • 非ARM

Unix與GNU/Linux

不存在一個好的方法可以成功的把世物分類,不同行業的人的來同創新方法,只告訴我們一件事,這個事件上是沒有絕路的。如果這個路行不通,一定還有別的路,只是你沒學到罷了。只是就如一些作者所說,創新是可以學習的,但是不是很有的創新都是可以學習的。

如果人看過《技術的本質》的話,那麼我想你對書中的一些理論一定很熟悉。如,新的技術是基於現有技術發展起來的。又如,《適應性創新》一開始舉到的造一臺多士爐要花一輩子的例子是一樣的,如果我們要從頭造一個系統要花一輩子。

再回到現實,Linux是一個核心,BASH是一個Shell工具,glibc是C執行庫,GCC是編譯器,還有Binutils、Coreutils、Diffutils、Gawk等等都是一堆庫,或者稱之為技術,如果沒有膠水般的程式將之整合成一個系統的話,那麼這些模組有些可能就消亡了。然而,是Unix告知了GNU/Linux系統的開發者們,你們要用怎樣的膠水來粘合這些模組。故而,在過去到現在的很長一段時間裡,GNU/Linux都逃不了Unix的陰影。

不幸的是,今天已然是GNU/Linux的天下,未來人們就會各種訴說GNU/Linux是如何創新。

同我當時在課上學習設計模式一樣,只有先模仿和基於別人的模式,之後才有可能有更大的突破。同理GNU/Linux已經達到這樣的階段。不要和我說蘋果是如何創新,沒有模仿,只是它們做了膠水做得更好,或者說現在,他們設計了更好的膠水。

說說創新

過去,每天我們都閃現著不同的靈光。有時,我們經常和自己說不可能,說多了有時候就不再想了。或許受當前的條件約束,和所謂的夢想一樣。想想,所謂的創新要麼就是在現有的產品進行微創新,要麼就是某種形式的"無中生有"。人們通過不知道他們知道什麼,或許又如《烏合之眾》說到的那樣,群眾只接受簡單觀念、群眾不知道他們需要的是什麼,你也難於動搖一群群眾。

於是,當我們創造出一種新的產品的時候,我們很難確定這是不是市場所能接受的。而有時候調研,又沒有辦法辦法來幫我們合理地解決創新產品的問題。也從某種情況上說明,像蘋果、微軟這種後來者,更容易獲取市場佔有率的原理。因為先來者,已經將更多的理念賦予大眾。那麼,後來者只需要研究使用者體驗、使用者需求,便可以創造出更好的產品,前提是要有足夠的速度。而,速度從側面反映了一家企業的意識形態。

很多時候一家大公司只所以被新創企業打得無還手之力的原因,除了速度,也還在於錯誤的決策。而錯誤的決策在當時可能是最有效的,但是如果沒有足夠快的意識到這樣的創新,便同諾基亞一樣,需要當明年重新復甦。而有這樣的機會的公司是少之又少。

總得有那麼一些人,需要看看他們新產生的競爭對手。笑他們,還不如去學習他們。

創新,其實是Keep Study

其它

啟示

作為一個技術人員,除了保持速度和學習。還要儘快地做到所謂的,作為一箇中國人看到這三個漢字從中國傳到了日本,再從日本傳到了美國,又從美國傳到了中國。難道就不應該有一點點覺悟麼,從模仿開始,到自由自在地創造。

模仿和創新只在一剎那之間,想想你做這個東西是為了什麼。除去你模仿的功能看看你還能新增什麼?不要從一開始模仿,而要從一開始在模仿的基礎上創新。騰訊、小米關於模仿的敗筆罵名就是在於此,先模仿而後創新。不過,他們有能力、實力可以很好地做到了上面的三個字,即從模仿 -> 賺錢 -> 創新。

但是,如果是一家小公司,那麼只有死~~。

關於標題

本來標題應該是寫在EchoesWorks三週之後,後來似乎有了更好的突破點。

也想不到一個好的標題來描述主題,這裡的抄襲說的不算是真正意義上的抄襲,算是某種意義上的Copy,又或者是某種意義上的再造車輪。

EchoesWorks

快來加入我們吧,專案首頁: https://github.com/phodal/echoesworks

(ps: 覺得寫得好的,點個star,點個分享)

相關文章