두 명의 오랜 친구가 싸움으로 헤어지게 되는데, 이는 할리우드의 전형적인 줄거리입니다. 일반적으로 마찰은 한 사람이 상대방의 말에 관심이 없을 때 시작됩니다. 프로그래밍 언어에 관한 영화에서 Node.js의 도입은 쉽게 친구를 격렬한 라이벌로 만들었습니다. PHP와 JavaScript는 한때 함께 인터넷을 지배했지만 지금은 서로 떨어져 있는 두 파트너입니다.
과거 파트너십은 단순했다. JavaScript는 브라우저의 세부 사항을 처리하는 반면, PHP는 포트 80과 MySQL 사이의 모든 서버 측 작업을 관리합니다. 인터넷의 많은 중요한 부분을 지원하는 행복한 동맹입니다. WordPress, Drupal, Facebook 사이에서 사람들은 웹에 접속하는 거의 매 순간마다 PHP와 관련되어 있습니다.
그런데 몇몇 영리한 개발자들은 JavaScript가 서버에서 사용될 수 있다는 것을 알아냈습니다. 갑자기 서버 스택을 구축하기 위해 PHP를 사용할 필요가 없게 되었습니다. Node.js를 빌드하는 데 사용할 수 있고 클라이언트가 프레임워크를 실행하는 데 필요한 언어입니다. "JavaScript는 어디에나 있다"는 것이 일부 사람들에게는 만트라가 되었습니다.
그 이후로 두 플랫폼 모두 지속적으로 확장되고 개선되었습니다. Node.js 개발자는 이제 Express, Angular, Meteor 등 계속 확장되는 훌륭한 프레임워크 컬렉션 중에서 선택할 수 있습니다. 목록은 길고 가장 큰 문제는 가장 좋고 가장 적합한 것을 선택하는 것입니다.
PHP도 속도가 빨라졌으며, 민첩한 JIT(Just-In-Time) 컴파일러가 이전보다 더 빠르게 답변을 제공합니다. 이제 PHP 7.0과 HHVM은 모두 Chrome과 Node.js에 대해 동일한 즉석 최적화 엔진 V8을 제공합니다. 뿐만 아니라 HHVM에는 람다, 제네릭 및 컬렉션과 같은 복잡한 프로그래밍 기능을 완벽하게 지원하는 Hack이 있습니다.
Node.js와 JavaScript를 칭찬하는 사람도 있고, PHP의 코드 기반과 안정성에 만족하는 사람도 있습니다. JavaScript가 여전히 세상을 지배하기 위해 오랜 친구들과 합류할까요?
PHP 기능: 혼합 코드
브랜치를 추가하려면 if-then 문을 사용하면 됩니다. 보기에도 멋져 보일 것입니다. . 아니면 데이터베이스의 텍스트나 데이터를 혼합하고 싶을 수도 있습니다. PHP를 사용하면 PHP 탭을 열고 몇 초 만에 코드 작성을 시작할 수 있습니다. 모든 것이 템플릿이므로 템플릿이 필요하지 않습니다! 추가 문서나 정교한 아키텍처가 필요하지 않으며 손끝에서 프로그래밍만 하면 됩니다.
노드 기능: 코드 분리
코드를 섞는 것은 결국 좋은 것이 아닐 수도 있습니다. 비록 이것이 재미있기는 하지만, 여러분의 코드는 곧 논리적으로 혼란스러워질 것입니다. 실제 프로그래머는 구조를 추가하고 기본 레이어를 로직 레이어에서 분리합니다. 이는 새로운 프로그래머가 코드를 더 명확하게 만들고, 이해하고 유지하기 쉽게 만듭니다. Node.js에서 실행되는 프레임워크는 모델, 뷰 및 컨트롤러가 가장 잘 분리되어 있다는 것을 알고 있는 프로그래머에 의해 구축되었습니다.
PHP 기능: 딥 코드 라이브러리
웹은 PHP 코드로 가득 차 있습니다. 웹사이트 구축에 가장 널리 사용되는 플랫폼(WordPress, Drupal, Joomla)은 PHP로 작성되었습니다. 플랫폼 오픈 소스일 뿐만 아니라 대부분의 플러그인도 마찬가지입니다. PHP 코드는 어디에나 있습니다.
노드 기능: 업데이트된 코드는 더욱 현대적인 기능을 의미합니다.
물론 수천 개의 훌륭한 오픈 소스 PHP 파일이 있지만 몇 시간, 며칠 또는 몇 시간을 소비하고 싶은 사람이 몇 주 동안 코드를 연구하는 것은 어떻습니까? Node.js 플러그인은 업데이트되었을 뿐만 아니라 최신 아키텍처 방법을 기반으로 구축되었습니다. 이는 최신 웹 애플리케이션이 대부분의 인텔리전스를 클라이언트에 전달해야 한다는 것을 알고 있는 프로그래머에 의해 구축되었습니다.
PHP 기능: 단순(정렬)
PHP에는 문자열과 숫자를 컴파일하기 위한 몇 가지 변수와 기본 함수 등 많은 기능이 없습니다. 포트 80에서 데이터베이스로 데이터를 이동하는 것 외에는 수행되는 작업이 많지 않으며, 복잡하지 않은 작업에는 PHP가 필요합니다.
노드 기능: 복잡한 클로저
JavaScript에는 많은 작은 기능이 있을 수 있지만 대부분은 클로저와 같은 현대적인 구문과 일부 유용한 기능을 실행하는 현대 언어입니다. jQuery와 같은 강력한 라이브러리를 사용하여 쉽게 재구성하고 확장할 수 있으며 객체와 유사한 기능을 전달할 수 있습니다.
PHP 기능: 새 코드 작성 중
프로그래머이고 데이터베이스와 상호 작용하는 것 이상을 수행하고 결과 형식을 지정하려는 경우 이제 PHP를 사용할 수 있습니다. 것들. Facebook의 HHVM은 유형 주석, 제네릭, 람다 표현식과 같은 최신 기능이 포함된 완전한 언어인 Hack에 대한 지원을 추가합니다. 이를 사용하면 코드가 HHVM에서만 실행되도록 제한됩니다.
노드 기능: 수십 가지 언어 옵션
PHP 사용자가 Hack에 만족한다면 많은 주요 언어가 크로스 컴파일될 수 있으므로 Node.js 세계로 마이그레이션하는 것을 고려해야 합니다. Java, C# 또는 Lisp 및 Scala, OCaml 및 Haskell과 같은 JavaScript에서 실행됩니다.
PHP 기능: 클라이언트 애플리케이션 필요 없음
브라우저와 서버에 동일한 언어가 있는 것은 좋지만, 브라우저에 어떤 언어도 필요하지 않다면 어떻게 될까요? HTML로 전송되는 경우가 많은데, PHP는 이미 이를 생성하도록 최적화되어 있는데 왜 브라우저에서 JavaScript를 사용합니까?
노드 기능: 효율적인 전달을 위한 기초
시간을 들여 아름다운 브라우저 측 웹 애플리케이션을 만들고 싶다면 Node.js가 웹 서비스를 통해 데이터를 제공하도록 최적화되어 있습니다. 애플리케이션이 복잡하고 데이터가 풍부한 경우 이는 효율적인 전달을 위한 좋은 기반이 됩니다.
PHP 기능: SQL
PHP는 MySQL 및 MariaDB와 같은 다양한 변형과 공존하도록 구축되었습니다. MySQL이 적합하지 않다면 Oracle과 Microsoft의 다른 SQL 데이터베이스가 있습니다. 코드는 쿼리를 일부 변경할 수 있습니다. 일부 안정적이고 잘 개발된 코드는 SQL 데이터베이스와 인터페이스하며 이는 PHP 프로젝트에도 쉽게 통합될 수 있음을 의미합니다.
Node.js 기능: JSON
PHP 스택용 JSON 라이브러리를 얻을 수 없는 것은 아니지만 JavaScript를 사용할 때는 JSON을 사용하는 것이 더 간단하고 유연합니다. 브라우저에서 웹 서버, 데이터베이스까지의 구문입니다.
PHP 기능: 코딩 속도
대부분의 개발자의 경우 웹 애플리케이션용 PHP를 작성하는 것이 더 빠르게 느껴집니다. 컴파일러도 없고 배포도 없고 JAR 파일이나 전처리기도 없고 즐겨찾는 편집기와 일부 디렉토리만 있으면 됩니다. PHP 파일로. 프로젝트를 빠르게 개발해야 할 때 PHP는 최고의 도구입니다.
Node.js 기능: 원시 속도
중괄호와 괄호를 계산하면 JavaScript 코드 작성이 약간 어렵습니다. 그 핵심에는 정밀도와 정밀도가 있습니다.
PHP 기능: 내부 경쟁
HHVM 팀과 Zend 팀은 모두에게 빠른 코드를 제공하기 위해 열심히 노력하고 있습니다. 독립적인 벤치마크가 등장했고 모두가 코드를 한계까지 밀어붙였고 이는 더 나은 성능을 의미했습니다.
Node.js 기능: Fusion 및 Unity
정말로 서로 다른 두 가지 코드 기반을 원하시나요? 경쟁은 개발에 도움이 되지만 조각화는 빠르게 시작됩니다. 코드를 다시 작성하는데 몇 주 또는 몇 달을 소비해야 한다면 경쟁은 아무 소용이 없습니다. Node.js는 몇 년 전에 분할되었지만 io.js의 도입으로 Node.js 세계가 다시 통합되어 PHP 개발자에게 오랫동안 사용하지 못했던 언어의 통일성을 제공했습니다.
위 내용은 PHP와 Node.js — 멋진 개발자의 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!