NODE.JS之我見

NODE.JS之我見前端

 

先說說爲何有這篇文章,關注NODE.JS 也有一段時間了,不敢說大徹大悟,可是對於NODE.JS能幹什麼,仍是有必定的瞭解,筆者多年之前就研究過JavaScript引擎V8,能夠說是國內最先編譯並研究V8代碼的人之一,這一點有博客爲證。雖然NODE.JS的成功是有目共睹的,在社區的火爆程度也是路人皆知的,可是從筆者的角度來看,NODE.JS並無給計算機科學帶來任何的新東西,對於我來講它也並無任何的新意,對於這一點,筆者並不肯意挑起任何的爭論,可是歡迎討論,也歡迎不一樣的意見。雖然NODE.JS可讓前端開發人員可使用JavaScript寫後端的代碼,可是這並不能表明什麼,也沒什麼意義。c++

 

下面是簡單的從網上找到的NODE.JS存在的意義web

     1. Nodejs基於Javascript語言,不用再單獨新學一門陌生的語言,從而減低了學習的門檻。express

  我之見:這根本不是理由,每種工具的存在天然有他存在的意義,彈弓是不適合打飛機的, NODE.JS是能夠作到這一點,可是他卻沒有其餘的技術成熟,NODE.JS最多也就是作了其餘工具早已經能夠完成的事情。編程

 

     2.  Nodejs並無從新開發運行時環境,而是選擇了目前最快的瀏覽器內核V8作爲執行引擎,保證了Nodejs的性能和穩定性。後端

我之見:V8是c\c++寫的,難道c\c++作不到NODE.JS在服務器端能夠作到的事情麼?瀏覽器

 

     3.Nodejs的開發很是高效,並且代碼簡單,得益於Nodejs的單線程機制。而Nodejs的另外一個特色異步編程,讓Nodejs處理IO密集型應用有了明顯的優點。用Nodejs比Java作Web開發要高效10倍,比PHP的代碼還要簡單。服務器

我之見:你是從哪知道效率快10倍的?NODE.JS的這種異步編程模型早就存在了,好多的web服務器早已經將其應用到生產環境中了,C#, JAVA,C++ 也早就存在這方面的支持,從哪來的優越感呢?網絡

 

   4. Nodejs的社區在壯大,不只包的數量在快速增長,並且包的質量也要明顯好於其餘語言的。不少明星級的包,都是簡單而靈巧的,爲了開發者的使用習慣而設計。我最經常使用到的工具包,如socket.io, moment.js, underscore.js, async.js, express.js, bower.js, grunt.js, forever.js…,確實在改變我之前的編程習慣。框架

我之見:NODE.JS社區比JAVA社區還大麼?框架比JAVA社區還成熟麼?不見得吧。

 

綜上來看,筆者認爲NODE.JS是個好東西,它裏面的好多的理念是好的,確實值得你們去學習一番,可是NODE.JS並無好多人認爲的那麼牛,由於這裏面對計算機科學來講沒有任何的新東西。我認爲,對於任何東西你們都不要盲從,不要人云亦云,不傳謠,不信謠,真刀真槍的代碼才最有說服力。

可能不少人不太瞭解,由於被吹蒙了,NODE.JS真正強大的是對於網絡協議的封裝,包括對於http的封裝,下面咱們簡單的看一個例子。

下面的代碼用NODE.JS實現了一個簡單的http服務器,運行起來會在13333端口監聽http請求,當有http請求來的時候會返回Hi There! 僅此而已,就這個功能,隨便寫幾句C++代碼也能夠完成一樣的功能。

 

var http = require('http');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/plain'});

  res.end(Hi There!\n');

}).listen(13333, '127.0.0.1');

console.log('Server running at http://127.0.0.1: 13333/');

 

再來看一個例子,這個例子在13334端口監聽TCP請求,來什麼返回什麼,僅此而已,一樣也就是幾行C++代碼的事。

 

var net = require('net');

 

var server = net.createServer(function (socket) {

  socket.write('Echo server\r\n');

  socket.pipe(socket);

});

 

server.listen(13334, '127.0.0.1');

 

總結

本人無心和你們就NODE.JS進行任何的爭論,可是歡迎正面的討論,共同進步,NODE.JS自己是個好東西,可是你們不要將其神化,認爲全部的現有技術都一無可取了,JavaScript統一全棧恐怕只能是一個笑話。

相關文章
相關標籤/搜索