為什麼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 |