phpnode
Node.js相優於Python的地方:快:這個快有兩方面,第一是V8引擎快,第二是非同步執行,Node.js功能上是一個基於V8引擎的非同步網路和IOLibrary,和Python的Twisted很像,不同的是Node.js的eventloop是很底層的深入在語言中的,可以想像成整個文件在執行的時候就在一個很大的eventloop里;npm:npm可以說是用起來最順手的packagemanagement了,npm作為Node.js的官方packagemanagement,匯集了整個社區最集中的資源;不像Python經歷過easy_install和pip,還有2to3的問題;Windows支持:Node.js有微軟的加持,Windows基本被視為一等公民來支持,libuv已經可以很好的做到統一跨平台的API;而Python雖然也對Windows有官方的支持,但是總感覺是二等公民,時不時出些問題。Python優於Node.js的地方:語言:就單純從語言的角度來說,Python寫起來要比javascript舒服很多;Javascript設計本身有許多缺陷,畢竟當時設計的時候只是作為在瀏覽器中做一些簡單任務的script,所以代碼一旦龐大,維護還是有困難(不過Node.js的mole很大的改善了這個問題),不過用Coffeescript可以很大的改善Javascript,幾乎可以和Python等同;成熟:成熟包括語言本身已經成熟,還有Framework和ecosystem也很龐大。Node.js的絕大多數framework都很新,有的API一直在變,有的感覺已經不在維護,總之沒有一個像Django那種百足之蟲感覺的framework。Python的主流ORMSQLalchemy也很成熟。Python和Node.js很難分高下的地方:非同步Style:Node.js的非同步Style是CPS,也就是層層callback,基於event,和瀏覽器中的Javascript很像。CPS好處是讓熟悉瀏覽器Javascript的人能很快上手,學習難度也不大。缺點是邏輯一復雜,就變得很難維護,基本上需要通過async.js這種library,或者用promise。Python的非同步除了和Node.js很像的Twisted之外,也有基於coroutine的gevent,coroutine讓非同步代碼維護起來更容易,不過學習曲線陡;應用場景:如果是一個CRUD的app,那麼想都不想直接是Python,Node.js本身不擅長CRUD的app(絕大多數Node.js都是直接裸在外面的,而不是有一個Nginx在前面,否則websocket就不能用了,不過新版nginx開始支持websocket),代碼又不好維護,而Python的WSGI很適合,成熟的stack也有很多。如果更偏向於real-time,比如一個chatroom,那麼Node.js實現更容易。這兩個應用場景還是有差別的。
Ⅱ php 和nodejs 的各自優勢有哪些,如果無基礎開始,要學那個好
作者:MiseryLee
鏈接:http://www.hu.com/question/35117771/answer/61377174
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。
PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。
以上這句話摘於網路。PHP的語法是公認的比較獨特的語法了,集百家之長,再加以創新。學習過OO的同學們一定會對此倍感親切。不過對於我並不長的PHP編碼經歷,讓我無法忍受的一點就是PHP的變數名必須在前面加一個$符號了。
至於Nodejs,Node本身就是Javascript語言,對於Web前端腳本開發者來說,學習Node簡直是如魚得水。Javascript作為腳本語言,在代碼的編寫上有極大的自由(畫外音:PHP也是腳本語言好么!),但是Javascript的非同步編碼風格確實是讓以學習同步編碼風格的語言入門的同學Hold不住。
在語法方面,我更傾向於Nodejs(畢竟人家是寫Javascript出身的233333)。PHP對於臣妾來說寫的實在太累啦~
2.效率
這一點其實沒有必要比較了,
Web語言效率問題,PHP還是Nodejs
看一下這里一樓的大大說的。
Nodejs憑借高效的V8引擎和它非阻塞非同步I/O的特性,在其執行效率上遠遠超過了其他的腳本語言。
Node.js比PHP快14倍!
這里這位大大在效率方面分析的更加到位。當然我並不是在追捧Nodejs,就像這位大大說的
這不是簡單語言細節之爭,而是語言框架之爭。將Node.JS這種非同步機制從Javasctipt搬移到其他語言PHP .NET Java其實都會取得比原來堵塞方式有數十倍提高。
3.使用場景
毋庸置疑,這兩種語言都是為Web開發而生。PHP多樣化的內置方法和庫,讓Web開發變得極其的方便和高效,成熟的語言框架也給開發者提供了足夠高的健壯性和穩定性。而Nodejs以其強大的特性吸引了大量的開發者為其貢獻擴展庫,Nodejs項目雖然還很年輕,但是已經聚集了大量的開發資源。
4.小結
畢竟對PHP了解的較少,所以以上言論中難免有點偏向於Nodejs,但是PHP發展多年屹立不倒肯定是有它的道理的,網路還用的PHP呢。
至於Nodejs,作為一門新興(並不新啊,Javascript可比PHP老多了)語言來講,它獨特的設計特性足夠吸引開發者向它看了。
最終回到題主的問題,不知道題主說的沒有基礎是指完全沒有編程基礎還是沒有伺服器開發基礎?
如果完全沒有編程基礎的話,我建議題主還是先去學習C語言,先入了這一行,再選工具吧~
如果有編程基礎的話,如果之前是學習OO的,建議先從PHP入手,畢竟更容易過渡,並且網路上對於PHP的資料要比Nodejs多得多。
如果之前學習過Javascript,我還是建議先從PHP入手,就像上面說的,先入了這一行,再選工具。伺服器開發也算一個小行了,如果對伺服器開發不了解,對網路機制不了解的話,先從PHP著手,把這些相關知識補充起來。
如果實在是被Nodejs的優勢吸引住了的話,我建議先好好學習Javascript高級編程,深入理解一下異原型鏈和回調機制,這會對入手Nodejs有極大的幫助。
如對您有幫助,望採納,謝謝
Ⅲ node.js和php哪個簡單
單論做網站,應該是php簡單。。但node.js也不算太難,而且能做到的事情,比php多很多。
php是個過時的技術,和ASP是同代的產物(asp.net的前身)那時候名叫C- -,後來改名才叫PHP的。就和windowsXP一樣。技術上沒有任何優勢。但市場還在,盡管早晚是要被淘汰的,但由於學習門檻低,又確實有市場需求。所以淘汰速度並不快
JAVASCRIPT是個90後,按說也算是比較老了,但NODE卻是門新興技術。。由於非阻塞非同步io實現,導致node的io效率非常高。。。實際測試,node的效率,大約比php高出70-100倍左右。。而且node除了做網站之外,還可以搞嵌入式,樹莓派,甚至網游伺服器。。
簡單概括,如果只是做網站,php簡單些。。。但個人還是推薦node。。一個是夕陽技術,一個是朝陽技術。。。其實很容易判斷
不過把范圍再擴大一些的話,我覺得兩個的學習價值都不高。因為都是動態語言,在編寫中型以上項目時,都會不可避免的受限於動態語言天生的劣根性,導致各種問題。學習性價比最高的應該是.NET CORE。學習比node難不了太多,而性能卻是頂級的。或者Java,崗位多需求大,屬於最四平八穩的選擇。如果要長期做程序,轉向靜態語言是遲早的事兒。無論Node,還是php,都只是過渡之下的產物,而不是最終選擇。
Ⅳ 開發一個網站用php還是node.js
推薦使用php,功能一多node.js就短板了。
node.js是用來快速開發網關類的(並發量大,處理量小,大部分都只是後端的一個負載均衡)。當node.js上了各種框架,還要負責生成頁面後,就有點得不償失了。簡單網站是可以,但當頁面變得比較復雜後,就不怎麼合適了。
node.js是非同步單線程的,只要一個環節卡住了,整個系統都會被卡住,並且沒有那麼多人有精力把所有的程序都非同步化,特別是本來運算量就大的東西,非同步了也沒什麼用。
Node.js 是一個程序,能夠完成 Apache 能夠完成的所有任務(藉助一些模塊), 而且,作為一個可以將其作為基礎進行構建的可擴展 JavaScript 平台,Node 還能完成更多的任務。
node.js比php難多了,但node.js和javascript互通,讓程序員同時會前/後台程序開發。如果新人要學PHP做後台開發,要想會前台程序開發,除了學PHP,還要再學javascript,相比之下,無疑是增加了學習成本。
Ⅳ node.js與php相比有哪些優缺點未來會替代php成為最好的語言嗎
您好,寫了兩年多的PHP,當時使用的框架是laravel
後來我放棄了PHP,轉戰Nodejs,然後就是各種爽,先不說node性能遠高於PHP,node的各種npm包和模塊遠比composer多和方便,模塊化的開發和維護輕鬆了很多;
PHP只是為web伺服器編程而生,而nodejs可以做的事情可遠不止這點,有至少最明顯的時又很多開發工具和cli是用node寫的,grunt,gulp,yomen,bower,cordova等等一大堆,有人還把nodejs應用到了硬體項目中,開發桌面軟體?咋們有node-webkit還是跨平台的。
原來Node.js是一門語言,PHP是世界上最好的語言。
++這么多人罵了這么多年也沒被取代,
VB也沒有我們想像的那樣消亡,反而每次都在前十,
不用擔心PHP會死,PHP不死也不會影響NodeJS火爆。
Ⅵ 如何利用php執行nodejs文件
一,安裝DNode,
1, for nodejs, 執行
$ sudo npm install dnode
2, for php, 利用composer來安裝DNode php
執行下列語句下載composer
$ wget http://getcomposer.org/composer.phar
創建一個文件composer.json,然後填入如下語句,
{
"require": {
"dnode/dnode": "0.2.0"
}
}
執行如下語句安裝,
$ sudo php composer.phar install
二,利用nodejs創建簡單server程序, server.js
var dnode = require('dnode');
var server = dnode({
zing: function (n, cb) { cb(n * 100) }
});
server.listen(7070);
三,利用php創建客戶端程序client.php, 其中需要引用剛才安裝的dnode文件夾裡面的文件autoload.php
<?php
// Connect to DNode server running in port 7070 and call
// Zing with argument 33
require 'lib/vendor/autoload.php';
// This is the class we're exposing to DNode
class Temp
{
// Compute the client's temperature and stuff that value into the callback
public function temperature($cb)
{
}
}
$loop = new React\EventLoop\StreamSelectLoop();
$dnode = new DNode\DNode($loop, new Temp());
$dnode->connect(7070, function($remote, $connection) {
// Remote is a proxy object that provides us all methods
// from the server
$remote->zing(33, function($n) use ($connection) {
echo "n = {$n}\n";
// Once we have the result we can close the connection
$connection->end();
});
});
$loop->run();
?>
Ⅶ php和node.js
都是培訓機構和腦殘初學者炒起來的噱頭而已,實際去工作,後端用的全是靜態語言。
所有的動態語言,都有劣根性。。就是初學的時候覺得很爽,不用考慮變數類型。 隨便var a=1(js), let a=1(js es6),或是$a=1(php),再或者直接a=1(python)。。總之根本不需要在意後面的值到底是什麼類型,就可以無腦隨便賦值。。。。
難道靜態語言的作者,都是腦殘? 明明直接可以a=1,為什麼非要設計成public int a=1(C++,C#,JAVA等)?
這就像自行車和汽車的區別。明明兩個輪胎,一個腳蹬子就能走起。為什麼還非要離合器,方向盤,邁速表,搞得那麼復雜?
如果你只是去菜市場買菜,自行車一定是世界上最好的交通工具。學習簡單,騎上就走,還不怕堵車。汽車完全像個廢物,駕駛麻煩,啟動慢,還費油,出門各種堵。
無論你去菜市場多少次,比較了多少次,始終都會覺得,自行車比汽車強,所以一直自己給自己洗腦,自行車就成了世界上最好的交通工具。。直到有一天出趟遠門,才能真正了解什麼是交通。。。。
無論js,還是php都只是自行車而已,你覺得是最好的,同樣因為你每天只是去菜市場。。。只要你實際完成過任何一份完整的工作任務,就明白為什麼需要靜態語言了。世界上沒有任何一個公司的項目,是用幾百行代碼就能搞定的,一兩萬行代碼,已經算是小項目了。。。但初學者的練習項目,往往寫幾百行就屬於「大工程」。
就比如Node吧。幾乎所有靠譜的node程序員,都是用Typescript在寫邏輯,而不是Javascript。為什麼?因為Typescript是編譯型,是強類型,是靜態語言。
Ⅷ PHP和Nodejs能配合使用嗎
可以,如何實現不是很清楚,具體案例為drupal的nodejs模塊,以及若干依賴於此nodejs模塊的其他模塊,比如一些即時聊天的模塊就可以選擇性的依賴於nodejs模塊
Ⅸ java php node.js 應該選哪個
優先node,原因有js基礎,上手快
其次php,原因比較簡單,好入門
最後java,比較專業,前端一般不需要太深入掌握其他後端語言,除非你要轉做後端