php和nodejs
Ⅰ 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有極大的幫助。
如對您有幫助,望採納,謝謝
Ⅱ php的性能要比node.js高很多嗎
有學習Swoole的疑惑、遇到瓶頸期的PHPer可在底部留言給我!!!
在本機windows環境下的測試:8G內存,4GCPU,win7系統,插入10000條記錄測試比較,php和nodejs的性能。
當改為10000條記錄插入,php耗時1.65 seconds,nodejs耗時318微秒,nodejs還是快得比較明顯。
Ⅲ 寫後端 Python,nodejs和php哪個更好一些
因為名字喜歡php,也因為名字不喜歡php?當初大專的時候聽到php就很喜歡,也不知道為什麼,後面了解了更喜歡,但是後來本科畢業後php不流行了就學了web前端,發現不喜歡web前端還是喜歡php,但是強迫症因為學了web前端學其他的就難受,所以找個各種理由想要放棄php,比如php比web前端難(包含了web前端我不喜歡的技術,范圍又廣),php混合開發很亂,還有讓自己只在乎自己不要在乎其他的東西等等之類的,想要放棄php,但是都放棄不了,我比較喜歡國內的技術,當然美國的也不錯,畢竟科技蠻強的嘛,電影也喜歡,但是發現php好像不是國內的也不是美國的,創始人不是美國的,技術中心也不在美國,不過好像公司是美國的,所以好像又不這么喜歡了。為什麼原來想這么多都沒放棄,現在就放棄了呢?因為想到自己在意注意的點了?我有個朋友喜歡說什麼血統啊?
Ⅳ 如何利用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();
?>
Ⅳ nodejs php哪個好
Node.js發布於2009年5月,由Ryan Dahl開發,是一個基於Chrome V8引擎的JavaScript運行環境,使用了一個事件驅動、非阻塞式I/O模型, 讓JavaScript 運行在服務端的開發平台,它讓JavaScript成為與PHP、Python、Perl、Ruby等服務端語言平起平坐的腳本語言.
PHP即「超文本預處理器」,是一種通用開源腳本語言。PHP是在伺服器端執行的腳本語言,與C語言類似,是常用的網站編程語言。PHP獨特的語法混合了C、Java、Perl以及 PHP 自創的語法。利於學習,使用廣泛,主要適用於Web開發領域。
Node.js遵循事件驅動的非阻塞I/O模型,PHP遵循一個阻塞模型;
PHP應用程序可以在任何伺服器上運行,Node不行。
1、性能方面:
由於 Node.js 遵循事件驅動的非阻塞I/O模型,與傳統的後端技術相比,Node.js 能夠處理大量的伺服器請求。PHP 遵循一個阻塞模型,其中在伺服器端創建多個線程來處理多個客戶端請求,如果代碼沒有被優化,它會導致高伺服器負載和響應時間。
2、託管和部署:
PHP 應用程序可以在包括 Nginx 和 Apache 以及 Windows 和 Linux 平台在內的任何伺服器上運行,這使得部署過程變得更容易。
而 Node.js,則需要具有 SSH 訪問許可權的虛擬伺服器。因此,在沒有任何控制台命令和 Secure Shell(SSH)知識的情況下,用 PHP 部署小型企業和個人應用會更好。
3、外部依賴:
Node.js 依賴關系較少,用幾行代碼就可以設置一個 Web 伺服器。但運行 PHP 應用程序,就需要外部伺服器軟體。用 Node.js 的開發人員只需要 NPM(節點包管理器)就可以下載 Node 模塊,這些模塊可以輕松地集成到應用程序中,提供額外的功能。
4、CPU 擴展任務:
Node.js 可能在高吞吐量方面表現優異,但是當應用程序繁重,需要 CPU 做大量工作時,Node.js 肯定會有所欠缺。在這種情況下,PHP 最適合做 Web 應用程序的後端。
5、單頁應用程序:
如果您使用過 Gmail,那麼您可能知道什麼是單頁應用程序(Single Page Application)。Web 應用程序在初始客戶端請求時載入,之後根據客戶端請求刷新的網頁的特定部分。Node.js 與 AngularJS 的聯合是開發單頁應用程序的完美方案。
6、開發環境:
Node.js 可以用於桌面應用程序開發(Windows,Linux和Mac),移動應用程序開發(混合和跨平台應用程序),甚至構建基於控制台的應用程序。雖然有一些也可以使用 PHP 來開發,但是大多數開發人員不會這樣做。
7、社區支持:
由於 PHP 比 Node.js 早誕生將近20年,所以在文檔,API 和代碼庫等在線資源方面更為豐富。所以很有可能其他人也嘗試了你想要用代碼完成的事情並從中獲得了幫助。
另一方面,Node.js 雖然已經得到了開發者和組織的廣泛關注,但是它支持開發者開發的資源缺相當少。
8、學習曲線:
編寫 Node.js 代碼對於新手甚至是專業的 JavaScript 開發人員來說都不是件容易的事情,因為他們需要在入門之前理解一些復雜的概念,比如 web worker 和回調函數。相反,PHP是一門非常友好的編程語言對於開發 Web 應用程序的新手來說。
Node.js 和 PHP是相輔相成的,因為這兩種技術都有各自的優點和缺點。這大多是相似的情況在比較或選擇用於Web,桌面和移動開發的其他技術時。Node.js有前途,並且肯定會占據PHP市場的一部分,但是不能完全取代 PHP。
Ⅵ 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,都只是過渡之下的產物,而不是最終選擇。
Ⅶ node.js與php相比有哪些優缺點
您好,寫了兩年多的PHP,當時使用的框架是laravelx0dx0a後來我放棄了PHP,轉戰Nodejs,然後就是各種爽,先不說node性能遠高於PHP,node的各種npm包和模塊遠比composer多和方便,模塊化的開發和維護輕鬆了很多;x0dx0aPHP只是為web伺服器編程而生,而nodejs可以做的事情可遠不止這點,有至少最明顯的時又很多開發工具和cli是用node寫的,grunt,gulp,yomen,bower,cordova等等一大堆,有人還把nodejs應用到了硬體項目中,開發桌面軟體?咋們有node-webkit還是跨平台的。x0dx0a原來Node.js是一門語言,PHP是世界上最好的語言。x0dx0a++這么多人罵了這么多年也沒被取代,x0dx0aVB也沒有我們想像的那樣消亡,反而每次都在前十,x0dx0a不用擔心PHP會死,PHP不死也不會影響NodeJS火爆。