如此多的前端框架是如何起名字的?

來討論個非技術話題,這麼多前端框架(技術),其實不止前端框架,只是感覺其他領域框架相對少點兒 = =

什麼Angular/Backbone/React/Vue/jQuery/Zepto/webpack/gulp/grunt/jade/ejs/batman/sea/require.......等等等吧

有沒有人來講點小故事~以及你們以後取名字還有的起么 = =


先搶答兩個我現在知道的。

1、Angular

  Angular 這個單詞字典上的意思是有角的,本身看起來和前端一點關係也沒有。但是它和 brackets 組合在一起變成 Angular Brackets 後,就有了尖括弧的意思。而 HTML 中到處都是尖括弧,Angular 自己也可以自定義元素,這樣就名字和功能就聯繫起來了。

  其實在 Angular 的 FAQ 里已經有這個問題了 AngularJS。

2、Babel

  Babel 就是《聖經》中的巴別塔。很久以前,人類的語言是共通的。巴比倫人想造一座通天塔,於是觸怒上帝。上帝毀了塔,並且創造了不同的語言,使人類彼此無法溝通,以後就再也不能齊心協力造通天塔了。從此巴別塔就和語言有了關係。而 Babel 的功能就是把 ES6 轉換成 ES5,也有統一語言的意義。

3、Vue

  這個是有據可查的。作者親自現身說法:Vue為什麼叫vue? - JavaScript。

  ... 因為是個視圖層庫,而 vue 是 view 的法語。

4、React

  沒找到什麼特別的故事。react 這個單詞本意就是反應,所想表達大概就是組件會根據數據的改變做出反應這個特點吧。

5、jQuery

  jQuery 命名由來很容易找到,作者自己解釋清楚了。j 顯而易見表示 JavaScript, 關鍵在於為什麼是 Query。其實作者本來是想用 jSelect 命名的,大概是覺得 SELECT 最能體現 jQuery 的選擇器功能。但是結果發現 jSelect 的所有域名都被註冊了,於是就改成了 jQuery 。Query 就是查詢的意思,腦補一下就是通過選擇器來查詢元素,這和 SELECT 要表達的意思也差不多。

  想了解得更清楚的話可以去看原文:John Resig - BarCampNYC Wrap-up。注意看評論區里 Kris De Volder 的提問和 John Resig 的回應。

6、Underscore 和 Lodash

  這兩個是一對冤家。最早產生的 Underscore 。這個命名理由顯而易見,underscore 是下劃線的意思,而 Underscore 佔用的全局變數名就是一個下劃線。

  而 Lodash 最早是從 Underscore fork 出來的一個庫,後來越做越大,就發展成了 Underscore的競爭對手。lodash 這個單詞是生造的,分為 lo 和 dash 兩個部分。dash 就是連字元"-",而 lo 是 low 的諧音,「低連字元」就是指下劃線啦,其實就是換了個下劃線的表達方式而已。從中可以看出 Lodash 和 Underscore 的關係。

  至於這兩人到底有什麼愛恨情仇就不在這裡討論了。想要了解這兩人的關係,可以參看 Differences between lodash and underscore 和 The Big Kahuna: Underscore + Lodash Merge Thread · Issue #2182 · jashkenas/underscore · GitHub

7、Grunt

  Grunt 是《魔獸爭霸3》里的獸人步兵,Grunt 的 logo 和獸族步兵很像。由此大概可以推斷出作者非常喜歡玩獸人,並且想表達 Grunt 就像獸人步兵一樣樸實剛健吧。

你們還有什麼想知道的就在評論里告訴我吧。。。


# 6.6日更新了 dojo部分

我認為,一個上乘的前端框架名字起碼要包含以下要素:1 簡潔,2 體現框架特點, 3 有趣。Grunt和Gulp都是難得的上乘名字,Webpack和jQuery, 中規中矩,其他很多爛框架連名字都起不好,就別指望能有所作為了。

1. Grunt

著名的前端自動化工具。

這名字很有意思,不知道你玩沒玩過魔獸爭霸,裡面最低等的那種獸人步兵就叫grunt, 沒事就"Yes, master!"那種。表示這個就是幫你干笨活的,你只管下命令(config)。這個名字類似JAVA系的自動化工具Ant, 不過比Ant要更酷一點。

這下你寫Grunt的task是不是有酋長的感覺了?

2. Gulp

從功能和起名字水平上都超越了Grunt。一個最好的名字需要的特性這個都具備了: 簡潔,好記,跟特性聯繫還十分緊密——每次寫task時就好像把文件流從一個插件用pipe來gulp到下一個插件, 比Grunt好用多了。

是吧?

3. YUI

這是把傳奇級別的武器,但是由於做工過於學院派而嫌太笨重了,順便說一下,我們現在打仗都是自己組合各種小武器。並且這種小武器,過幾個月,也可能就淘汰一批。名字起的其實非常low, 就是Yahoo! User Interface的縮寫而已,不過這個名字牛在,這可能是唯一一個低頭就能在鍵盤上看見的前端框架名字。

4. Ext

這個框架的來歷是這樣的。

當年前端大牛兼帥哥Jack Slocum做web開發時用的是YUI,但是嫌YUI不好用,就自己基於YUI開發了幾個組件,有dialog,grid, tab等,首先用在了自己的blog上,這一下就技驚四座。那是2006年啊,那個他blog上的dialog,生生搞出了CSS3 transition的酷炫效果。

這麼說吧,單說JS他也許不比John Resig強,但是如果加上CSS和HTML, 他寫前端組件的功力,明顯比John高出一截。

Jack把自己的組件庫稱為YUI-Ext, 意思是YUI的擴展(Extension)。後來YUI-Ext越發流行,有蓋過前輩YUI之勢,Jack努力coding,終於發布了 Ext 0.x版本,當時的版本core組件是可選的,你可以通過Ext的Adapter,根據你的需要從YUI, jQuery和prototype中切換。

直到Ext 1.1版本,熬夜過後疲勞的Jack終於宣布,我們有了自己的獨立內核組件Ext core,從此不用基於YUI或其他框架了。呼翕九陽,抱一含元,此framework可名ExtJS。

從此前端江湖上有了Ext一派。

5. Zepto

這個框架的名字是一個計量單位前綴,用在長度上是"仄米" (Zeptometer), 1仄米相當於10的負21次方米,意思就是框架體積非常輕巧。如果有興趣的話可以看看計量單位前綴列表(Metric prefix),裡面不少都經常用於起名字, 什麼micro, nano, 還有mega, giga, zetta, yottaa...

6. mootools

這個不是傳奇也是個史詩的框架了,當年跟jQuery齊名, 以面向對象和平滑的動畫效果跟jQuery一爭高下,現在好像沒什麼人用了。名字說穿了不值一提: my OO tools, 我的面向對象工具集。

7. Dojo

上面大都是對框架名字的解讀,但是一個框架名字誕生的那一刻究竟是什麼樣的?功能單一的框架名字好取,但是如果是一個團隊合作開發的、包羅萬象的開源工具集呢?拍拍郵件列表上面的灰塵,讓我們看看一個上古之神誕生的故事...

時間:2004年4月

人物:

Dojo :

當時還沒有名字,是Alex想要創建的一套JS標準庫。我當時用的時候嚇了一跳,裡面各種工具,包羅萬象。Ext的UI組件不少吧?在dojo里只是其中一個文件夾dijit而已。Bootstrap不用寫JS, 用DOM屬性來創建UI實例這種用法爽吧?dojo老早就有了。用require來模塊化開發?dojo也早就有了。現在用過這個庫的人,我猜想您多半在30歲以上,要麼就是可能參與過IBM的項目。

Alex Russell :

Dojo的創始人。這位人物非同小可。尤其是對前端從業人員來說。看看他現在從事的幾個工作吧:

Google Chrome 開發——也許您現在用的瀏覽器里就有人家貢獻的代碼;

參與ES6標準制定——稍微高點水平的前端都用上ES6了吧?人家是制定者。

Service Worker Team Leader ——沒錯,就是那個即將對前端和瀏覽器產生重要影響的Service Worker,人家是Team Leader。

其他團隊成員: Tom Trenka, Joyce Park,Leonard Lin 等等

背景:

那是在遠古時代,IE6大行其道,jQuery還沒出來,前端——根本就沒有這個詞,當時做前端這個工作的人員,國內叫「頁面仔」。HTML + JS在那時候屬於高新技術產業,當時有個名詞叫 「DHTML」, 即dynamic html。Alex Russell當時憑藉DHTML的熱潮,用自己的JS技術,搞了個開源軟體netWindows賺錢,沒想到被微軟控告名字侵權,幾年官司下來,Alex不得不把netWindows改名叫netWidget了事。Alex不死心,憑藉netWindows攢下的人氣,拉了幾個人,打算干票大的,發了個郵件誓師,名字叫 「Selling the future of DHTML」。眼看這天,到了給項目取名字的時候...

時間:2004年4月28日周三 17:18:16

發帖人:Alex Russell

大家好,Joyce今天提出了一個非常好的問題: 我們做的這個東西準備叫個什麼名字?

拋開對"這個東西"的定義不談,假如說我們努力搞出了個工具集(toolkit),它應該叫什麼名字?

我並不在意是不是每個組件都要有它們自己的名字——晚點決定這些對我來說也ok,但是至少我們這項工作本身應該有個識別它的方法。

由於這幾年Microsoft找了我不少官司上的麻煩,我強烈建議: 這個名字里千萬別帶 「windows」。

So, 說點什麼吧?叫什麼比較好聽?大家選好了我就去註冊域名(當然得域名沒被搶注)

Regards

時間:2004年4月28日周三 17:38:10

發帖人:Tom Trenka

話說起名這玩意最費勁了。

我花了好長時間才為我的JS起了個合適的名字: f(m);

一開始想不出來叫什麼最後只好祭出我的原生紐約土話決定叫——fucking magic——當然用不了了所以最後叫了f(m) :)

我建議我們選一個首先從腦中蹦出來的,並且一直在你腦子裡縈繞的詞。如果誰想了個牛的,就趕緊貼出來。

我還建議,最好我們按概念把項目分成幾種技術的集合。比如J2EE和.NET Framework就是這樣的。因為我真的看到現在我們正在做的東西其實可以分成幾個不同的部分。

T

時間:2004年4月28日周三 17:53:58

發帖人:Alex Russell

嘿,還真有意思,我還琢磨「f(m)」到底是什麼意思呢,還以為它是個什麼函數式編程呢。

有個名字的好處在,你就不用說「哦對,那個東西就是Alex和Tom還有他們一幫人正在搞的東東」了。

我覺得我們不應該過早把它分成幾個部分來搞。因為我看到(稍後需要Leonard幫我理清一下思路)有三組不同的人群在這個列表中:

1.)會為這個框架貢獻代碼的人。

2.)會用這個框架的人。

3.)上兩者皆不是的幕後工作人員(比如決策者或兼職開發者)

分成小組的話,我想會有為DHTML/JS核心部分貢獻代碼的,還有主要搞組件(widget)的,還有工作在伺服器層面的。所有這些我其實期待並且也應該是有重疊的,因為現在咱們這些人這三方面都能搞定。

勉強將項目分割只在面向市場或者需要詳細描述時才有用。我們不應該把它拆分,除非到了非拆不可的時候。

時間:2004年5月1日周六 22:20:54

發帖人:Alex Russell

好了大夥,我們有幾個候選的項目名稱,看起來還行的有這些:

- Marbles (彈球)

- Shiny Marbles (閃亮的彈球 -_-)

- Burst (爆裂)

- DJL: (Dynamic|DHTML) Justice League (動態正義聯盟-_- )

- 其他你們想出來的...

不管你想叫什麼其他的,你得下周三之前想出來,到時候我們就得最終決定了。

萬事具備,只欠好名。

時間:2004年5月1日周六 22:28:42

發帖人:Alex Russell

還有一個候選名字:

- browserX

(不好意思啊Joyce,把你貢獻的名字忘記了)

時間:2004年5月2日周日 12:17:38

發帖人:Tom Trenka

好吧,在這5個名字里,我的票會投給:

burst.

這個名字聽著就響亮,並且,由於並沒限定在某種技術名稱上,這個名字好像更好用一點。

接下來,我可能會從搞Department Zed的概念的工作中省出些時間搞咱們的項目(雖然我還不想徹底放棄http://dept-z.com),這個事的原始概念是集合一批各種電子流派的音樂家...我想到這個短語「集合(collection)」還不錯,有點像「Skunk Works」...

嗯,我好像想到了什麼...

「BurstWorks」 聽起來怎麼樣?你知道我的意思吧?馬上讓人聯想到一個高大上的研究所吧?;聯想到一個「秘密研究室」, 讓那些咱們找的媒體大跌眼鏡...

並且這個域名還沒被註冊!

時間:2004年5月2日周日 12:47:13

發帖人:Joyce Park

Burst這個名字已經被兩家互聯網企業和另外一個開源項目使用了。

我本人對「works」這個詞並不感冒,我把我的公司起名「Troutworks(鮭魚工廠)」,直到現在我一直都在後悔。

:-) 我更喜歡用「lib」這個詞。

時間:2004年5月2日周日 12:58:49

發帖人:Mark D. Anderson

我過來有一部分原因是因為我喜歡那個C++的啟動項目(Boost C++ Libraries)

那是個合作的,開放的,同行評審的項目,旨在擴展C++標準庫。幾個參與者

都是c++標準的制定者,項目會是個代碼演練場,最終會添加進標準庫里。

不幸的是,ECMAScript沒什麼標準庫可言。由於眾所周知的原因,我們也無法期待

netscape/mozilla能出現帶頭搞JavaScript/ECMAScript的。除了微軟,其他沒什麼人搞這塊。

ECMAScript4作為標準已經癱瘓大概6年了。

並且mozilla Jslib很難成為建立一個標準庫的基礎。

Alex已經註冊了http://burstlib.org和burstproject.org.

目前來說我更推薦「Burst Project」這個名字,因為這個項目最終會帶出各種不同的應用。大家不都偷偷計劃著來搞個最牛的CMS或基於web的郵件程序么?:)

時間:2004年5月2日周日 13:02:31

發帖人:Mark D. Anderson

比起「foundation」和「framework」,我肯定是更喜歡「lib」。

哦等等,為什麼不在前面加個"e", "eBurst"怎麼樣?

只是開個玩笑...

時間:2004年5月2日周日 14:52:33

發帖人:Leonard Lin

我不認為我們應該起一個名字就永遠不變了,無論如何我們很有可能最終會不得不改換另外一個。

需要考慮的問題:

*命名空間衝突

*搜索空間衝突

*域名是否可用

我個人的意見是一些簡短的,好記的,比如一些聽起來響亮讀起來順嘴的縮略語。

DJL還行。有DHTML正義聯盟這樣的梗, 但是音節太多,讀起來不怎麼響亮。

頭腦風暴一下:

framework, foundation, library, modules, components, glue, binding, behavior

- Jif, Jiffy - Javascript Interraction Framework (peanut butter for the dom?)

- jelly, jel, gel, pbj

- jam (javascript application modules)

- glue, goo

- spackle

- join

時間:2004年5月2日周日 21:45:31

發帖人:Alex Russell

不管了,我們現在就需要一個名字。讓我們想通這點——我們可以稍後再換,就像你所建議的,我們必須要有一個。

谷歌和Register.com15分鐘內可以搞定大部分你所憂慮的衝突問題,其他的還沒有明確途徑。

時間:2004年5月2日周日 18:44:30

發帖人:Tom Trenka

好吧,雖然我覺得一些牛x的研究部門或機構很吸引眼球...坦白說,我覺的這麼起有點「土」,長期來看也許弊大於利。如果你是個架構師,正在研發一個系統, 準備搞一堆看名字就酷炫的東東,你願意用一個叫「DHTML正義聯盟」的開發工具嗎?

我想我們得牢記,假如我們想要得到認可,我們就得相當嚴肅的對待我們意向中的用戶,並且一個大方得體的組織名稱會很有幫助。從我的經驗上,從西海岸出來的組織都挺保守的。

事實上我一點也不喜歡「lib」。 它太UNIX/PHP范了。我們也得記住我們主要的用戶

或許正在用 WebSphere/J2EE 或.NET在開發。以前我覺得那樣一個名字也沒什麼

大不了,直到我上一個工作的經驗(我再也不想干同樣的活了)以及我現在的工作...

沒人會在乎它有多酷,他們只在乎投資回報率!

我也反對叫什麼「framework」, 我真的真的不喜歡一個無所不包的framework。

現在這時代, 好像每個程序員和他們的媽媽都企圖自己搞個「framework」, 並且他們還都有這兩個方面特徵:

1. 你不得不用這個框架做每一件事。

2. 還沒有考慮周全就搞出「框架」了,導致開發時間不但沒有縮減,還指數級地增加了。

我都不想告訴你我上一個工作中不得不用的那個爛JS框架是多麼的爛。就說一點就夠了:它在瀏覽器里調用了一堆XSL,並且到處都在用.innerHTML, 每個用戶操作都用去至少1-2MB 的HTML數據。

厄...

我不喜歡「SDK」這個主意。我覺得這麼描述還算適合:一個軟體開發工具集。這才真是我們現在的主題。

開球,球打到你那邊了 :)

(對於eBurst這個名字)

個人認為,終於到了我用25+個eBusiness和iCology這樣的詞將你追殺的時候了。

無論如何,鑒於我剛提到的經驗,我遺憾的表示,無論我們做的是個啥,這樣的名字不會增加任何主流的接受度。

So sad.

Tom

時間:2004年5月2日周日 20:14:15

發帖人:Dylan Schiemann

在Tom的帖子精神感召下,我們可以起這些名字來描述我們的項目:

dhtml toolkit (http://dhtmltoolkit.com is available)

dhtml framework (http://dhtmlframework.com is available)

web app toolkit (http://webapptoolkit.com is available)

web app framework (http://webappframework.com is available)

web app project (http://webappproject.com is available)

這真的依賴於我們的訴求對象...我可以估計,半數以上的互聯網用戶連瀏覽器是

什麼意思也不知道。

我喜歡那個詞「marbles」,因為感覺上有趣還通俗易懂,即使Alex是唯一一個同意的。

也許是因為"Shiny Marble"這樣名字讓你們崩潰了?

Alex, 兩個問題可以幫助我們重新聚焦:

1. 誰是這個名字的目標用戶?我相信你會說既有技術開發人員,也有充當技術選型決策者的技術管理人員。

2. 這個名字應該包括多大範圍?(或者跟web應用靠,或者跟dhtml靠,或者獨立於所有實現,但是目標總是提供一個帶有數據集合與檢索的用戶界面開發系統)

其他評估標準:

3. memorable(好記)

4. non-queso(不俗氣)

用這些標準評估現有名字的話:

- Marbles (通過以上標準)

- Shiny Marbles (也許對技術經理來說太俗氣了)

- dhtml * (太限定了)

- web app * (不好記)

其他 marble 衍生物(未評估)

- Steel Marbles (鋼彈-_-)

- Metal Marbles (金屬彈球)

- Browser Marbles (瀏覽器彈球-_-)

- The Marble Code Project (彈球代碼項目)

- Brushed Metal (絨布彈球-_-)

- Chrome Matters (鉻彈球)

- The Marble Madness Project (瘋狂的彈球項目,好吧, 我們不是在開發一個遊戲)

時間:2004年5月2日周日 20:45:26

發帖人:Joyce Park

我投「DHTML Toolkit」。我想webapp這樣的名字覆蓋面太廣了,大多數技術並不包含在我們的項目里。

我投-1票給任何帶有「彈球」的名字,抱歉,我還投-2票給那些帶有前綴的彈球。

時間:2004年5月2日周日 20:47:13

發帖人:Aaron Boodman

要是在 DHTML Toolkit 前面加個短小精悍的前綴,我一定會投票給它。

時間:2004年5月2日周日 21:01:05

發帖人:Joyce Park

unifide...統一的...怎麼樣?

時間:2004年5月2日周日 21:10:52

發帖人:Alex Russell

+1

時間:2004年5月2日周日 22:35:45

發帖人:Aaron Boodman

+1

時間:2004年5月2日周日 21:07:14

發帖人:Aaron Boodman

MDT如何? The Marbles DHTML Toolkit.

時間:2004年5月2日周日 21:23:36

發帖人:Tom Trenka

統一彈球...Unified Marbles...如何?

:D

大概一月以前我有一個其他的不相關的想法,不屬於任何種類的SDK,而是某種組織或集會的名字...

No Brand(tm)

無印良品(tm)

Or

This Is Not A Brand(tm)

這不是一個品牌(tm)

雖然http://nobrand.com已經有了,但是好像它被http://searching.net公司拉攏了。http://thisisnotbrand.com是確實可用的。

順便說一些,看起來我好像在這裡有一點浮誇(關於無印良品),但是我確實非常認真的在乎這個概念(無印良品)。

好處在它沒說任何關於我們要發布的產品,而又特別有特點...我們可以藉助這個名字建立多個項目。

組名定了之後,我們可以繼續給當前的項目們取名.Unified Marbles可以是其中一個(好吧,我現在好像又有點浮誇,但是你們可以考慮考慮!)

時間:2004年5月3日周一 18:12:49

發帖人:Dylan Schiemann

對彈球投-1票沒意見。

說點額外的。有個名字我曾經喜歡過一陣,在以前的郵件里討論過的關於書的點子——「Stupid DOM Tricks」 (我擁有這個域名)

我喜歡這名字有兩個原因: 跟短語stupid dog tricks相像(其實吧我的DOM花招同樣又酷又有用哦), 並且還有 dom/dumb 這個雙關語。

(當其他人用這個名字的時候,我看見DOM這個名字時我第一反應是Dumb...)

時間:2004年5月5日周三 13:18:19

發帖人:Alex Russell

我們今天得選出個名字,終結這場討論了。如果大家有任何意見建議,趕緊提出來。

到現在為止,看起來「Unified DHTML Toolki」這個名字在投票中領先。

Regards

時間:2004年5月5日周三 13:55:46

發帖人:Leonard Lin

我原本是喜歡UDT來著,但是我越看這名字越像個timezone...

我想了幾個字首組合詞:

dtk - dynamic/dhtml toolkit, 我覺得這個相對更好,說著順嘴,後面加個++什麼的後綴也順溜。

dub - dhtml utility belt. "check out the dubs on my site"

unikit - 厄,我並不喜歡它,可還是列出來了

dwb - (發音像dweb) dynamic web behaviors

哦,還有更好的

dweeb - dynamic web enabled enhancements/behaviors

dool - dynamic tool

不是字首組合詞的:

dojo:只是想把d/j都用上。歡迎來到我的道場(dojo)。

dosomething

doohickey

thoughts, riffs?

時間:2004年5月5日周三 14:40:12

發帖人: Tom Trenka

嗯,我喜歡dojo, 有一大堆好含義 :)

我的投票:

1. dojo

2. dtk

3. udt

4. eod

時間:2004年5月5日周三 19:19:07

發帖人:Simon Willison

我也投Dojo一票,其次選DTK. 現在用Dojo這個名字時機絕好,因為看起來沒別人用呢。

為新名字乾杯,

Simon

時間:2004年5月5日周三 19:33:34

發帖人:Leonard Lin

耶,一整個文化喻義寶藏等著我們來發掘 :)

我們可以是武士,忍者,或者遊俠!

我們聊天中提到了一些事,現在列在下面:

我挺喜歡http://dojo.sf.net的,simon提到「即支持了開源又不用修改名字找域名了」 -- 我同意,另外它能提供我們一些基本資料功能,比如動態啦,成員啦等等。不好的方面是,sf上的工具比較爛,我們應該自己搞。

無論如何,我們還是得有域名,這些是沒被註冊的:

dojotk.*

dojotoolkit.*

dhtmltoolkit.*

ev1servers開始使用openSRS, 域名費是 $6.49/yr. 這樣的話,如果我們把全部9個域名都註冊的話是 $60/yr. (我用過,沒問題,雖然曾經由於sco商務問題把主機關掉過) 如果其他人有推薦的話告訴我一聲。

經過跟大半人討論,看起來dojo比較受歡迎。因為我們今天就得決定了,所以如果有什麼人有反對意見就趕緊說,過時不候。

時間:2004年5月5日周三 20:43:31

發帖人:Tom Trenka

看上去真的不錯。作為一個子域名也挺好。可惜我們沒一個住在托克勞(Tokelao)群島的,要不我們弄個dojo.tk很不錯。(嗯,搜索之後發現這也被佔用了,也好)

柔道高手萬歲!

----------------------------------------

自此,Dojo框架在2004年有了自己的名字,Alex和Dylan在這年夏天為Dojo貢獻了第一行JS代碼。一年後,Gmail和Google Map才發布初始內部版本;"Ajax" 這個詞才首次由Jesse James Garrett提出;YUI才開始在雅虎內部使用。兩年後,jQuery誕生。

想想當年用IE6的、可憐的頁面仔、切圖仔,再看看現在這些年,前端的火爆,框架工具如過江之鯽,終於咱們有了自己的職位名稱了: 前端工程師。正所謂沉舟側畔千帆過,病樹前頭萬木春,對於那些推動HTML、JS、CSS發展的前輩,請讓我說聲:多謝!


【2016年7月7日更新】

補充一個,Ramda。這個庫是個以純函數式編程為目標的庫,名字來自於 Lambda calculus。又,按其主頁的說法,lamb 是小羊羔,ram 是公羊,長大後的 lambda 也許是 ramda。但也許不是,因為也可能長成 eweda(ewe 是母羊)——好冷。

又,Sanctuary 是一個和 Ramda 一起用的函數式庫。Sanctuary 這個單詞的本意是神聖之所,現通常指避難所,即 place of safety。Sanctuary 這個庫致力於提供類型安全,所以起了這個名字。

【2016年5月28日回答】

不請自來。

起名字是件困難的事情。古人云,編程兩大難,命名和緩存。即使對 native speakers 來說也是如此。

所以很多數時候就用了最直接的表達功能的名字。

比如 requirejs 。

vue(view)、react(reactive)、jQuery(js query)、webpack都是這個類型。

又有一類用了縮寫。比如sass(Syntactically Awesome Stylesheets)、haml (HTML abstract markup language)。【但我猜測 haml 的真正來源是原作者名字是 Hampton Catlin】

而 seajs 的名字估計是從 commonjs 縮寫到 cjs 然後用了個同音。

mustache 是個比較有意思的名字,來自於 {{ }} 符號的樣子(八字鬍)。

jade 是個好名字,然而最近改名了(如何看待模板引擎 Jade 改名為 Pug? - 開源)。改的 pug 這個名字就純粹是碰巧有這個名字可用,沒什麼講頭了。

最後說說我做的 jedi (GitHub - baixing/jedi)的名字來源。你們可能覺得這個「絕地」是向Star Wars致敬;其實這個名字是向 jade 致敬,是將 jade 中的母音照著 aeiou 的順序前進了一位,這樣 jade =&> jedi ,意思是 jedi 是繼承 jade 的下一代模板引擎。 :)


Gulp 的意思「大口吸液體、狼吞虎咽」,Gulp 核心的概念是「流 stream」,很貼切啊;Backbone 是「脊梁骨」,一個非常純粹毫無冗餘的 MVC 框架,構成 web app 的「脊樑、基礎」也很貼切。

所以名字無非是寓意、形象、簡單易懂幾個選擇,全憑興緻。另外,Google 搜索的核心演算法 PageRank 並不是「頁面排序」,而是「Larry Page」的「Page」,所以應該叫「佩吉排序」...


想一個貼切的形容詞,再翻譯成各種版本語言,再看哪個最順嘴或者看著順眼。或者從希臘神話里選不起眼的人物。


我給我們內部一個框架起名,那個費勁,後來給取名叫fast。結果後面國家超級望遠鏡取了這個名......


對於我來說,我會傾向於通過名稱來概括一個框架的特點,比如我的開源CSS框架elf

傳送門:elf | a light and clean responsive framework

elf有「小精靈」的意思,而我的框架正是主打靈活,輕量,跟印象中小精靈輕盈的形象相吻合。


想起了倆形而上的名字:

1. Google出過一個測試框架叫Karma,這個詞來自於梵文,中文翻譯過來就是『業力』,『因果報應』的意思。

2. Microsoft出過一個JS引擎叫Chakra,翻譯過來大概是『脈輪』的意思,看過『NARUTO』的人應該比較熟悉。


ionic - 離子的,atom - 原子,electron - 電子,想著還給我留了一個名字最長最難記的molecular了,卻發現在npm上已經被人搶注了。。。(吐槽向,有點偏題,勿怪)


代碼界最難的問題變數命名都解決了,還怕想一個框架的名字嗎?


那麼多框架。我的天


總結下

  1. 縮寫,利用單詞的首字母。例如 MUI、YUI等。
  2. 框架特點。例如以流式任務而聞名的gulp、以選擇器聞名的jQuery,以打包編譯聞名的webpack等等。
  3. 作者亂入,想到什麼就是什麼,或者只有他自己明白什麼意思的。例如grunt,electron,atom等等。
  4. 很多名字已經被取,無奈之下只能找一個寓意美好的詞。例如 karma等等


大部分時候都會先嘗試去找一個能表述該框架功能的單詞,如果沒有合適的,可能會臆造一個不存在的詞,遵循好記,已讀,易理解,可延伸的原則。


興緻所致~自己寫的東西肯定自己喜歡叫啥就叫啥~


記得有次想了解seajs,谷歌了一些資料,一個說得很好,seajs就是模塊化工具意思,sea是海納百川,匯總,像是載入不同js模塊。不知道玉伯是是不是表達這個意思


推薦閱讀:

學Vue.js需要怎樣的知識儲備?
vue和react組件是否可能互相編譯?
vue每次註冊一個組件都會在html元素標籤里生成這種屬性嗎?
如何理解Vue.js的組件中的slot?

TAG:前端開發 | 前端入門 | 前端工程化 |