不要讓所謂的 [不用寫任何一行程式] 把自己的發展性侷限了

不要讓所謂的 [不用寫任何一行程式] 把自己的發展性侷限了

我想,能夠在不寫任何一行程式的情況下就得到想要的工具或功能,是許多電腦使用者的夢想,而對於程式開發者(Developers)來說,這個也許是未來的理想,當然,現在也有很多的工具或是套件,可以讓人在不寫任何程式的情況下得到很多的功能,或是滿足當下的需求,這點也是拜軟體工程的進步所致。

但是,作為程式開發的技術人,“無腦開發”卻是一個不應該有的想法,原因很簡單,因為這樣代表任何人都可以取代你。MIS 界有一個名詞:EUC (End-User Computing System),這個名詞是使用者自建系統,代表使用者可以透過工具來自行建立自己想要的系統,而不用假手程式開發人員,放眼所及,有不少具有 EUC 能力的工具可以用,Microsoft Excel 就是一個例子。它可以利用巨集 (Macro) 以及表單控制項來建立自己的表單系統。不過要嚴格說起來,真正具有完全 EUC 能力的,似乎是沒有,因為任何系統都不可能 100% 的在只靠使用者自己的力量,就可以得到滿足所有需求的系統。

而這,也是為什麼 Developers 必須要存在的原因。

國內也有一些系統整合商,基於一些主流平台(如 .NET Framework)開發一些工具,號稱可以在不寫半行程式的情況下組出自己的系統,但我個人認為,再怎麼樣都不可能避掉寫程式這塊,原因有:

  • 元件不可能 100% 滿足所有的需求,遇到元件不支援的需求或功能時,還是得自己開發。
  • 元件間的組合方式如果內建能力不足時,還是要自己開發。
  • 想改變它的功能時,還是要自己開發。

就算是使用微軟的 Visual Studio 來開發應用程式,也不可能完全做到 “不用寫任何一行程式”這件事,既有的元件也許可以滿足這件事,但它們大多都只能 “滿足最低限度的需求”而已,例如 GridView+SqlDataSource 可以支援完整的 CRUD 功能,但它只能滿足最簡單的 CRUD 需求,想要進階一點的不可能不寫程式,就算要改用 ObjectDataSource 也是要寫程式。再如 ASP.NET Dynamic Data Framework,它雖然能夠用 ASP.NET Routing 以及 Data Annotation Framework 來做到足夠的樣板化,但它仍然逃不過要寫程式的命運(至少也要一行)。再怎麼神奇的元件,都會有功能不夠或無法滿足需求的一天,一旦有這麼一天,寫程式 coding 的能力就不能沒有。

更嚴重的問題是,一昧的想要無腦化開發,不就等於是把自己的位子放在危險的懸崖邊,隨時可能會掉到深淵去嗎?因為無腦開發等於不用腦,什麼都不用學就可以寫東西,會有下列問題:

  • 不會思考系統的未來發展性。
  • 不懂工具或元件實際的運作原理,元件一出問題就開天窗。
  • 隨時可以被更便宜的人力取代。
  • 無腦開發等於只能做工人,不能做設計師。

因此,作為程式開發的工作者,請不要整天想著 “無腦開發”的神話,這樣只會讓你變成 “工人”,不是設計師。若你是學生,請不要認為這行可以不寫程式就可以生出系統,因為那是不可能的。

另外,作為教人寫程式的人,更不應該灌輸學生 “不用寫程式就可以做到xxx”的觀念,這只會害了那些學生而已。