破除迷思系列:Programming language 有高下?Java 、PHP 無人再用?
2018-11-05
久不久在Programming 的社群內、討論區內,總有同行大聲疾呼:「Java 已死!」或是「PHP 已死!」一類的講法,總令想學習這類「悶蛋」語言的朋友望而卻步,怕投入了時間精力,最終卻無用武之地。
這個講法往往的根據都在於有其他更好的Programming language 可以使用,所以Java、PHP這類程式語言將會被逐步淘汰,直至完全無人問津。然而,迄今為止其實世界上據統計有多於2000種程式語言,與人類語言的總數相比亦不遑多讓。
RedMonk每年都會統計programming language 的受歡迎程度,亦會在網站上發佈,以下是 2018年六月最新發表的統計
Y軸是該程式語言在programmer 最愛的Stackoverflow 上面的tag總數
X軸是該程式語言在Github上的總 Project 數
不出所料的是,在右上角的都是大家耳熟能詳的程式語言: Python、Java、Javascript、PHP等。 有趣的是,在左下角亦有許多不為人知的程式語言: Nim 、GAP、 LiveScript等。
老實說,於我而言在左下半角,我只認識 Objective-C++ 、Pascal 、Smalltalk三種。 如果說一種programming language也有死亡的時候,那在左下角的語言算是瀕死狀態了。
其實可以肯定的是如果大家聽過一種程式語言,幾乎可以肯定一定是在圖的右上半角。 更有趣的是,在1957年推出,世界上第一種廣泛使用的程式語言 Fortran 依然是在圖的右上半角!壽命整整61年之久!
在此分享一句C++之父Bjarne Stroustrup 一句有趣的quote:
"There are only two kinds of languages: the ones people complain about and the ones nobody uses."
- Bjarne Stroustrup, The C++ Programming Language
程式語言很容易被淘汰?似乎我們人類比較容易被淘汰吧。
Comments
Read More
到底React Hooks 有何特別?
2018-11-27
新近推出的React 16.7包括一個很有趣的功能,名字叫做React Hooks。看到這個名字,很多人會下意識認為是在講componentDidMount, componentDidUpdate等方法。但其實這些方法的正名是 React Lifecycle Method, 推出React Hooks是為了方便開發者多用functional component,但仍然能夠使用state及 props等重要功能。
到底React Hooks有何特別(二)?淺談useEffect及useReducer
2018-11-29
於本篇文章的上集,我們討論了useState如何令Stateful React Component簡化良多,此篇主要討論的是如何使 用useEffect。useEffect可以簡化state,很多人都提到React Hooks有可能可以完全取代Redux作為 React State Management的標準,正因如此。
Dart vs JavaScript vs TypeScript
2019-02-17
隨著Flutter受到開發者的重視,Google於2011年推出的Dart又重新進入大家關注的視野之內,不過除了Flutter以外,其實Google的開發者早在2016年也推出過Angular Dart,讓開發者以Dart開發網站應用,不過由於Angular Dart對比TypeScript版Angular文本長期不足,因此沒有引起太多關注。Google推出Flutter,可以說為大家對Dart的信心注入了一劑强心針,大家又重新開始關注這個已有8年歷史的程式語言。 本文想介紹的是,就是到底Dart有何特色?與JavaScript比較,又有何優劣?由於TypeScript開始於前端日漸盛行,我們亦可以趁機比較一下三種語言的異同。