為什麼cocos creator 不選擇兼容c#,而是只有js?

我是一名小白 勿噴哈(→o←)

最開始因為感覺cocos有點亂 就用了unity

最近cocos creator出了就想換這個用下 但是想問為什麼creator不支持c#呢?看unity都支持應該沒有技術問題吧?是有其他考慮嗎?


作為一個從來沒有接觸過SSH框架而因此被Java程序員嘲笑的程序員,我覺得我有必要在這裡強答一下,我從兩個層面來討論這個問題:

1、CocosCreator從本質上來講是Web技術,所以和JavaScript搭配起來使用這非常合理好嗎?況且在Cocos2d-X引擎本身已經有JavaScript分支的情況下,為什麼要重新造輪子呢?而Unity引擎選擇C#作為腳本語言,是因為它選擇使用Mono運行時作為引擎核心底層和應用層腳本間的這樣一種粘合劑,通過Emebdding Mono可以將Mono運行時嵌入到C/C++(遊戲引擎)來調用C#腳本(遊戲腳本),如果題主關注Mono可以發現Mono還支持Python,所以選擇什麼語言是取決於Mono的,我們都知道在瀏覽器里無法直接運行C#,印象中類似NW.JS這類Web容器可以調用C++原生代碼,可這樣圖什麼啊!

2、我們再來說說JavaScript的問題,其實Unity引擎里使用的JavaScript並非是真正意義上的JavaScript,它本質上是JavaScript的一個子集,這種語言和C#、Boo一樣,都是Mono支持的語言,這就說明Mono運行的JavaScript和現在這個編輯器里運行的JavaScript完全不是一個東西,題主希望直接在瀏覽器里運行C#,這一點無論從語言本身(C#需要編譯為IL然後由CLR轉換為機器碼)還是原理上都無法滿足。

綜上兩點,平台特性和語言特性決定了在CocosCreator中最適合的語言是JavaScript。

~(≧▽≦)/~快給我點贊


一開始我發現不支持lua,我是拒絕的。後來有時間嘗試用CCC做了個小項目,感覺Cocos至少在方向上沒有走偏了。路是對的,只是希望能堅持走下去。前面挖了那麼多坑,希望這不是一個新坑。

回到這個問題上,我想說的是用什麼語言不是特別重要的,重要的是unity和CCC的設計思路是類似的,這很重要,會unity的會學起來很快。反而是用慣了Cocos2d的同學需要切換下架構思路。而且Js是一門應用範圍很廣的語言,上手簡單,值得學習下。


cocos creator 選擇 js 而不兼容C#

那我說 Cocos 吃棗藥丸 信不信?而且說不定還會來的很快。

C#肯定不是最好的語言,而且未必有潛力成為最好。

但是 無疑 的是:JS是世界上最垃圾的語言,沒有之一。

要不是Web,就沒有JS的今天,然而今天的Web開發已經變成了一坨屎,JS功不可沒!

更新:1年多了 雖然我還是不喜歡JS 但是目前 工作卻要寫不少JS。沒辦法面向生存編程 只能適應。


覺得cocos creator挺好的,用什麼語言無所謂,至少架構很像unity,

這點對cocos程序員非常貼心,因為最後都是要轉到unity去的。。。

為觸控點贊!業界良心。。。


1. Web

2. Electron

3. Cocos2d-html5 JSB


選擇Js和C#並不是根本原因,Unity3D編輯器的底層技術棧是Mono,它是一個用來構建跨平台桌面應用開發的框架,與之類似的還有QT(QT使用C++,當然也提供Python和其它語言綁定)。

但是Mono這個東西太重,Cocos Creator使用的是Electron,它是一個基於Chromium和Node.js的新型跨平台桌面應用開發神器。目前已經和Atom和VS Code這兩款編輯器是基於Electron開發的。我相信今後還會有更多的跨平台桌面應用會選擇使用Electron。

Creator要支持C#沒有這個必要,Js是世界上最好的語言,為何還要C#這種功能無比強大(四不象)的語言呢?

當然,我這裡也不想引起語言之爭,Creator使用Js,Unity3D使用C#,只是技術選型的差異而已。


推薦閱讀:

js中 aaa.style 和 aaa.getAttribute(style) 等價嗎,有無區別?
html5推出queryselectall之後,jQuery的作用是否減小了?
babel@6.2.0預編譯的ES6代碼無法在IE8上愉快的運行,各位前輩有辦法嗎?
到 2013 年底,WebGL 能發展到什麼程度?
macOS Sierra 官網的視覺差動畫是如何實現的?

TAG:JavaScript | C# | cocos | CocosCreator |