本文作者戚務漢(Caesar),是時間軸科技(Hiiir)研發中心主任工程師,也是臺灣JavaScrpit社群裡的熱血漢子。

今年Modern Web大會,兩位開發教父Brendan Eich和Rasmus Lerdorf難得中午一起用餐,大談爸爸經和開發界大秘辛。時間軸科研發中心主任工程師戚務漢是一起用餐的講師之一,以下是他與兩大開發教父面對面的收穫。

語言教父給程式員的開發思維

身為一位開發者,始終的挑戰就是如何做到更好,如何完成下一個更臻完美的自我,向下一個不可能挑戰,超越自我極限的可能性。

在經歷許多國內外研討會,以及參加許多不同國家活動後,發現每個尖端開發者都有一套自己的準則以及自己驅動自我的方式,但是他們的共同點都在於,『自我的堅持』。

每個人的每個堅持都是不可撼動之處,就有如團隊的「Guideline」它是會被更新會隨時間被驅動的,可是在這當下,這是屬於開發者所不能被撼動的自我領域。

本次有幸參與WebConf 2015與PHP及JavaScript之父共同餐敘,能與語言創造者聊上一些思維之處,的確有蠻讓人值得回味再三。

教育及程式訓練

教育一直都是我們目前正在執行的一個方向,特別是教學,到底要從什麼語言開始有人覺得是「PHP」,也有人覺得是「JS」,更有人覺得應該從「LISP」這樣的自然語言開始學習。

而Rasmus對於教育程式指出,應該是給予「教導解決問題本質」,而不是去推任何一門專門的語言或者技術進入教學中。

就如同自己的孩子,透過Scratch快速打造出一些自己想要工具,打造自己的產品,等到真的有問題時,才會尋求家人的協助,Rasmus認為這就是一種很好的教學性質。

自我成長

對於已經養成邏輯思考習慣,以及可以獨自進行開發發的開發者本身而言,實際上應該也打造了一些屬於自己開發上所使用到的工具,或者框架等。

對於下一個階段的自我成長,Brendan及Rasmus都認為試著在一個限制性條件下嘗試開發程式,進行程式修改,對於開發者本身是一個很大的成長。

例如像是1k JavaScript這樣的競賽方式,對於開發者自我挑戰上就有很大的幫助,也對於限制條件下的發展有很大的幫助。

語言與社群的思考

從兩位強者身上學到,解決問題才是真正的目標,深沈的思考可以讓自己找到方向。

對於PHP,JavaScript這樣一直以來弱型態的語言來說,到底兩者語言的未來是什麼!?

Rasmus回答的很有趣,「他產出的 PHP 前提都在於解決自己本身的問題,如果能解決你的問題,那很好,如果無法,也只能作罷。」

對於語言開發的前提,本身就是為了解決問題,就似乎像是每個工具都有自己的目標,不同形狀的鐵鎚皆是為了要對付不同的釘子。

也許我們經常拿起巨型鐵橇,在那謾罵巨型鐵橇的無能的同時,同時間似乎也在宣告著自己的無知。

當把鐵鎚當成全世界,全世界都會變成釘子。

語言社群的建立

對於社群建立以及整體運作的鼓吹,事實上都不是PHP或者JavaScript本身需要去面對的。

回應前面的問題,真正的社群是為了讓問題才凝聚在一起,而不是語言本身。Wordpress,Joomla本身的凝聚就是為了CMS Issue而聚集,並不是為了PHP而存在。

當問題還存在的當下,社群就會持續存在,當問題從這個世上消失,社群當初所擔負的責任也就隨著時代卸下。

程式開發

這是一直都會被奉行的事情,身為開發者,你沒辦法離開寫程式這件事情,這很不符合常理。

關於程式教育

程式教育應該是教學於解決問題,不應該專注在某個語言或議題上面。

當孩子決定需要什麼的時候他自然會來尋求解答,不需要急著帶領孩子網什麼方向前進。

 

PHP & JS下一步

關於從弱型別轉為強型別

對於型別識別,這是一個語言上的進步,兩位語言創造者都認為,對於型別強烈識別,可以確保程式的狀態,確定在隨時穩定的狀態下,同時也可以省掉型別轉換的成本,對於程式效能上會有極大的進步。

習慣使用弱型別的開發者,PHP及JavaScript為了兼容,還是保持著兼容模式,將語言的狀態維持弱型態,提供開發者選擇。

至於什麼時候會是全強型態的時代,就讓時間來證明吧。

關於Class以及使用方式

本次活動經常聽到Brendan講述到TypeScript型別及Class支援以及ES6、ES7的方向規劃等。

JavaScript雖然Class的實體概念並不普遍存在,但是在ES6風潮襲來編寫Class的時代似乎已經是個不可抵擋的趨勢。

Brendan表示事實上JavaScript還是可以使用以往簡單開發的模式,並不需要特別去宣告Class等方式進行開發,也不需要去擔心是否會變成Java開發流程的模式,JavaScript還是能夠繼續保有自己的開發型態。

對於語言改版進程

每次語言的轉換,以及更新都會有許多的問題發生,當然PHP及JavaScript也有相同狀況,PHP 5到7的轉換,以及ES5到ES6語法的轉變,都會讓開發者需要顧及兼容以及程式穩定性的問題。

兩位語言創造者當然會希望大家都轉移到新版本會是比較好的事情,但是實際這似乎是不太可能,所以某方面也可以說,轉移到新版本本身就是一個新的問題。

而更換語言版本,本身就需要有提供足夠多的動機讓開發者往前,例如讓開發者無痛轉換說明文檔,效能會比以往還要好上三倍速,或者排除了以往的陳舊臭蟲等,都會是一個很不錯的方向。

如此一來就會加深大家希望達到的事情,以及希望做到的方向,當然這對於現實世界來說,就是一個理想(笑)

我們需要持續去改善,但是並不執著於讓其他人去改變。

開發者需要熟知的語言

定就是C,對於開發者本身,目前有許多階段都是屬於僅能處理Application層級的開發者,實際上有很多問題都是需要去處理非常深層,而且非常底層的問題才有辦法解決。

如果你能成為世界上這樣子的人,就可以為自己帶來無可取代的價值。

因此C是身為開發者絕對要學習的一件事情。

雖然說自己並不是這麼熟悉 C 語言,不過他對開發程式思維是一個很好的語言,C讓我知道記憶體的使用,以及資料的搬移,讓我對於程式的處理邏輯可以更為清楚。

難道說「 C才是真男人/女人」這件事情,是真的嗎!?

語言的下一步

也許許多人還在存在著語言戰爭,語言迷思,但是對於Rasmus及Brendan兩位語言創造者來說,事實上語言無謂著好與壞,只有過去,現在,未來,著眼於當下,創造出更好的工具,讓更多開發者創造出更美好的網路世界及未來。

語言本身,就是一個解決工具,僅此如此。

與兩位大師聊天下,深深感受到雖然是不同語言,雖然是不同用法,但是許多概念及底層的概念是殊途同歸,對於未來的願景也許會有些許不同,但是對於未來,似乎有著共同的方向。

語言一直以來都不是最重要的事情,更重要的是解決問題,如果這個問題可以被解決了,事實上問題也就不存在了。

可惜的是在這世界上就是存在著這麼多的問題,以及需要等著大家去解決的排程。

也許我們期待的不是強大的語言,而是需要更多開闊的胸襟,擁抱寬廣的未來。

 

作者介紹:戚務漢是臺灣JavaScrpit社群裡的熱血漢子,網路代號Caesar。他不只是臺灣Node.js社群核心成員,也擔任過兩屆JSDC總召(臺灣JavaScript開發者大會)總召(由此可見他對社群的熱血),目前於時間軸科技(Hiiir)擔任研發中心主任工程師負責JavaScript開發架構。


熱門新聞

Advertisement