최근 갑자기 제가 또 트렌드에 어긋나는 것 같다는 걸 발견했어요. 어쩌면 나는 많은 친구들과 다르게 생각할지도 모르지만 프로그래밍 언어 세계의 "개자식"인 PHP가 그 어느 때보 다 인기가 있다고 생각합니다.
아마도 질문이 있을 수 있습니다. PHP가 이미 완성되지 않았나요? 이미 "더 나은" 프로그래밍 언어가 많이 존재하지 않습니까?
대답은 분명히 '아니요'입니다. 그렇지 않았다면 PHP는 사람들의 시야에서 사라지고 수만 피트나 밟혔을 것입니다. 근본 원인을 찾으려면 먼저 소위 "더 나은" 언어가 무엇을 의미하는지 파악해야 할 것입니다.
PHP가 여전히 살아있고 활발하게 활동하는 이유를 아직도 이해하지 못한다면 프로그래밍, 프로그래머, 시장 및 기술 대중화와 같은 문제부터 시작해야 할 수도 있습니다. 예, 실제 이유는 코드, 함수 또는 구문이 아니라 여기에 있습니다.
옛날에는 PHP를 꾸짖는 것이 하나의 트렌드였습니다
오늘날의 코딩 엔지니어링 분야에서 팀을 선택하고 굳건히 서고 싶다면 먼저 리더가 지정한 언어를 제외한 모든 경쟁 프로그래밍 언어를 꾸짖어야 합니다. . 이는 기능적 특징과는 아무런 관련이 없으며 비즈니스 문화를 직접적으로 반영합니다. 즉, 그러한 장면은 종종 입사식을 연상시킨다.
저를 포함한 프로그래머들은 완고한 집단입니다. 우리는 모두 오만하고 우리가 사용하지 않거나 좋아하지 않는 모든 언어를 비판하는 것을 좋아합니다. 엔지니어들이 "Java는 형편없고, C#은 쓰레기이고 아무것도 아니다"라고 말하는 것을 들어보셨을 것입니다. 여기서 말하는 언어는 모두를 웃게 만드는 한 중요하지 않습니다.
그러나 무자비한 비난 뒤에는 더 깊은 경멸이 숨겨져 있는데, 이는 최근 PHP 대 Python 논쟁에서 특히 분명합니다. 많은 학자들의 눈에는 이것은 피비린내 나는 왕조의 변화처럼 보입니다. 누군가 PHP를 죽이고 Python으로 완전히 대체하려는 것처럼 보입니다.
믿을 수 없다면 Wikipedia에서 확인해 보세요. LAMP 스택 항목의 "P"는 Python을 의미합니다. 흥미롭게도 20년 전 제가 LAMP를 처음 접했을 때 "P"는 확실히 PHP를 의미했습니다. 예, Python도 Perl도 아닙니다. 상황이 발전할 수 없다는 말은 아니지만, 어떻게 Python이 자신도 모르게 PHP의 문화적 지위를 대체했을까요? 이것은 참으로 생각해 볼 가치가 있는 질문이다.
대부분의 프로그래머는 학교에서 Python과 실제 시나리오에서는 절대 사용되지 않을 수 있는 기타 틈새 언어를 배웁니다. 교수나 다른 실무자들이 "PHP는 형편없다"라고 말하는 것을 듣게 될 것입니다. 그러나 더 깊이 파고들면 그들은 PHP 코드 한 줄도 진지하게 작성한 적이 없다는 것을 알게 될 것입니다.
사실, 누군가가 PHP 코드를 풀타임으로 작성하고 있다는 생각만 해도 소름이 돋습니다. 마치 악마 사탄이 충성스러운 추종자들을 거느리고 있다는 것을 우리 눈으로 직접 보는 것과 같습니다.
PHP에 대한 이러한 경멸은 실제로 매우 논리적이며 프로그래머 커뮤니티 사이에서 내생적인 합의를 형성하기도 했습니다. 친구들과 함께 앉아 스타벅스에서 트럼프, 팝록, PHP에 대한 이야기를 나누며 오후를 보내는 것도 좋지 않을까요?
PHP가 왜 형편없는지 논쟁하면서 소중한 시간을 기꺼이 낭비하려는 프로그래밍 순수주의자도 있습니다. 대부분의 논쟁은 자신이 좋아하지 않는 일부 디자인 트렌드나 뉘앙스를 중심으로 이루어지며, 이러한 유형의 교환에서는 앞뒤로 이야기하는 것이 일반적인 전술입니다. 언어에 관해서는 누가 우월하고 누가 열등한지를 판단해야 합니다. 결국 자색박과 금박은 남자와 여자로 나누어집니다.
불평할 부분이 확실히 많습니다. PHP는 형식이 느슨한 언어로 종종 잘못된 코드를 낳습니다. (하지만 JavaScript와 Node.js도 마찬가지입니다. 왜 그렇게 불만을 표시하지 않습니까?) PHP에는 기능이 너무 많습니다. (그렇습니다. 너무 편리하고 프로그래머 수준을 뽐내기 어렵습니다.) 함수 이름이 일치하지 않습니다. (예, 이것은 언어가 진정으로 민주화되고 단일 컴퓨터 과학 박사의 손에 맡겨지지 않을 때 발생하는 문제입니다.)
본점으로 돌아가서 PHP에 대한 비판은 주로 개인적인 취향이나 선호에서 비롯됩니다. 세부 사항에 대한 까다로움. 원한다면 Python, C#, Java, Go 또는 JavaScript와 같은 다른 언어에서도 유사한 결함을 찾을 수 있습니다. 프로그래머로서 우리는 불평하는 것을 좋아하며, 불평은 우리를 행복하게 만듭니다.
그러나 프로그래머들이 PHP를 강타하는 것을 좋아하는 진짜 이유는 우리의 타고난 오만함과 커지는 질투 때문입니다.
PHP는 정말 사용하기 쉽습니다
PHP는 1990년대 중반에 탄생했으며 많은 조지아 프로그래머보다 나이가 더 많습니다. 저는 PHP가 버전 4에서 버전 5로 막 전환하던 2000년대 초반에 PHP 작업을 시작했습니다. 나중에 저는 제가 작성한 CodeIgniter ZendFramework 프레임워크에서 애플리케이션을 작성하기 시작했습니다.
제 생각에는 PHP가 수년이 지나도 변함없이 그대로 유지되고 노화의 조짐을 보이지 않는 주된 이유는 그것이 전 세계의 새롭고 오래된 애플리케이션에 내장되어 있고, 연령에 관계없이 개발자의 마음 속에도 내장되어 있기 때문입니다. . 몇 년 동안 사용해 본 사람도 있고, 수십 년 동안 사용해 온 사람도 있고, 그들에게 PHP는 깊은 인상을 남겼습니다. 개발자도 사라지지 않고, 그들이 작성한 비즈니스 코드도 사라지지 않으므로 PHP는 여전히 존재합니다. 그리고 흥미롭게도 Python은 실제로 PHP보다 빠른 1991년에 탄생했습니다. 그리고 긴 수명 주기에도 불구하고 Python은 현재의 PHP 수준에 도달한 적이 없습니다.
이게 왜죠?
개인적인 관점에서는 PHP보다 Python이 사용하기 더 번거롭다고 생각합니다. 이 문제는 Python 3에서 개선되었지만 15년 전 Python에는 PHP에서 기본으로 제공되는 "멋진 기능"(함수)이 없었습니다. 많은 기능을 수동으로 설치해야 합니다. 그렇지 않으면 쓸모가 없습니다.
그리고 오랫동안 Python 언어에 퍼져 있던 또 다른 문제는 간격 구문입니다. 나는 코드 사이의 공백 수가 구분을 결정하는 이 구문을 정말 싫어합니다. 나는 내 코드를 원하는 대로 분리하는 것을 좋아하며 프로그래밍 언어 자체가 여기서 어떤 작업도 수행해야 한다는 생각을 참을 수 없습니다. 내 습관을 비판하는 것은 누구나 자유롭게 할 수 있지만 이것은 나만의 코드이고 나만의 스타일을 따르고 싶은 것이 잘못된 것일까요? 이 권리조차 주지 않는다면 매일 버그를 확인하는 독선적인 트롤들을 저주할 것이다.
Python은 이 간격 구문이 "읽기 쉽다"고 계속 선전하는데, 이는 분명히 헛소리 마케팅입니다. 그건 그대로 두겠습니다. Python에서 사용하는 구문은 프로그래밍 언어 세계에서 가장 독선적이고 최악의 구문이라고 할 수 있습니다.
프로그래밍 초기에는 문법 오류를 수정하는 데 도움이 되는 IDE가 없었고 Python을 살펴보려는 프로그래머가 많지 않았던 것은 이러한 이해할 수 없는 독선 때문이었습니다. 어쨌든 나는 그러고 싶지 않아요. 더 정확하게 말하면, 이는 Python 언어가 존재 후 처음 10년 동안 상당한 시장 점유율을 얻지 못한 주요 이유이기도 합니다. 예, 이 디자인은 전혀 사용자 친화적이지 않습니다.
그리고 Python 언어의 존재감도 강하지 않습니다. 이는 주요 목적인 스크립팅 언어로 Linux 배포판에 내장되어 있습니다. "그래, Python이 여기 있어. 웹 사이트를 구축하는 데 사용할 수 있어!"라고 환호하는 사람은 없을 것입니다.
물론 Python을 사용하여 웹 사이트를 구축할 수도 있지만, 뛰어난 엔지니어는 Python의 특성이 웹 개발 시나리오에 적합하지 않다고 느낄 수 있습니다. 개인적인 구문 수준 선호는 제쳐두고, 저는 Python이 매우 강력한 언어라는 점을 인정합니다. 특히 데이터 과학이나 고정밀 수학 연산에 초점을 맞춘 기타 작업을 처리하는 데 적합합니다.
누구나 PHP를 시작할 수 있습니다
지난 15년 동안 Python은 실제로 획기적인 업데이트를 통해 여러 수준에서 PHP를 능가했습니다. 그러나 Python에는 여전히 버려지지 않은 두 가지 무거운 짐이 있습니다. 첫째, 대부분의 업데이트는 10년 늦게 나타납니다.
Python 3은 2008년에 출시되어 이전 버전과의 호환성을 깨뜨렸습니다. Python 2 코드는 추가 수정 없이는 Python 3에서 실행되지 않습니다. 그러나 기업 환경에는 수십 또는 수백만 개의 오래된 버전의 코드가 있는 경우가 많습니다.
공평하게 말하자면, PHP 7과 8은 일부 PHP 5(PHP 6과 같은 버전은 없음) 코드도 깨뜨립니다. 저는 ZendFramework 커뮤니티의 일원으로 이전 코드에 대해 PHP 7 및 8에서의 실행을 지원하도록 프레임워크를 업데이트하는 데 도움을 주었습니다. 좋은 소식은 ZendFramework를 PHP 7 및 8로 업그레이드할 때 기존 코드가 거의 영향을 받지 않았다는 것입니다. 따라서 대부분의 PHP 5.6 코드는 이전 버전과의 호환성이 뛰어납니다.
PHP를 업계의 상록수로 만든 분수령은 아마도 2005년 Automattic이라는 작은 스타트업의 조용한 설립이었을 것입니다.
WordPress가 Python으로 작성되었다면 PHP는 오늘날만큼 자랑스럽지 않을 것이라고 장담합니다. 그러나 나는 또한 Python이 WordPress가 오늘날처럼 널리 성공할 가능성을 방해하거나 심지어 죽일 것이라고 감히 말할 수 있습니다.
오픈소스 시장에서 언어나 애플리케이션이 계속해서 살아남으려면 기여자의 활용과 확장이 중요합니다. 그리고 시작하기가 더 쉬운 사람은 업계 기여자들로부터 더 많은 지원을 받을 수 있습니다.
전문 교육을 받은 소프트웨어 엔지니어로서 저는 PHP에 대한 모든 모욕을 이해하려고 노력할 수 있지만 모든 사람에게 상기시키고 싶습니다. PHP는 정규 학위를 가진 엔지니어뿐만 아니라 시간제 근로자, 주부, 그래픽 디자이너, 회사 관리자, 기업가, 심지어 학생까지. 그렇습니다. 수천 명의 초등학생들이 첫 번째 컴퓨터에서 PHP로 웹 페이지를 작성하고 있습니다.
정보화 시대의 BASIC 언어는 PHP라고 해도 과언이 아닙니다.
소프트웨어 엔지니어로서 많은 비평가들은 엔지니어의 사고방식에 익숙해졌지만, 단지 소규모 회사를 위한 웹사이트를 구축하고 싶어하고 시간과 리소스가 제한되어 있는 세상에 셀 수 없이 많은 PHP 사용자가 있다는 사실을 망각하고 있습니다.
WordPress와 PHP는 그들에게 열려 있습니다. 예, WordPress 자체는 실제로 사용하기 쉽지만 충분히 포괄적이지는 않습니다. 이러한 단점을 보완하는 것은 WordPress 플러그인 아키텍처입니다(여기서 "아키텍처"라는 단어는 정확하지 않을 수 있지만 누구나 이해할 수 있음). 이를 통해 일반 사람들은 PHP에서 작은 코드 조각을 작성하여 해당 변경 사항을 구현할 수 있습니다. 전체 수업을 다시 작성할 필요도 없고, 소프트웨어 엔지니어 자격증도 취득할 필요가 없습니다. 단지 작은 코드 조각만 있으면 됩니다.
이러한 방식으로 수백만 명의 아마추어 프로그래머가 자신만의 프로그래밍 경로를 시작하고 자신의 경험을 인터넷에서 다른 사람들과 공유하여 결국 거대한 PHP 기술 커뮤니티를 구축했습니다.
이해하기 쉬운 PHP를 사용하면 일반 사람들도 효과적으로 코드를 작성할 수 있습니다. PHP는 단순하고, 성격이 없으며, 형식이 느슨하고, 컴파일이 필요하지 않으며 작업하기 쉽다고 할 수 있습니다.
PHP는 전체 월드 와이드 웹을 지원합니다.
15년이 지난 지금 PHP는 웹 시스템의 78%를 지원합니다. WordPress만으로도 전체 웹사이트의 거의 40%를 차지하고 CMS 지분의 거의 2/3를 소유하고 있습니다. 게다가 "평판이 좋은" Python은 전체 파이의 10%만을 차지합니다! PHP에 대한 경쟁 Python의 열렬한 증오에도 불구하고 Python은 웹의 1.5% 미만을 지원합니다.
화났나요? 화낼 일이 없습니다.
네, 그래야 합니다.
한 기업 고객의 채용 담당자가 저에게 연락하여 모든 Python 웹 코드를 삭제하고 PHP로 교체하겠다는 의사를 밝혔습니다. 이것은 놀랍게 들리지만 실제로는 항상 발생합니다. 왜? 파이썬은 웹 애플리케이션에 별로 적합하지 않다는 말이 있기 때문입니다. Python에 익숙한 개발자는 데이터 과학 및 기타 분야의 전문가인 경우가 많으며 경험이 풍부한 인재에 대한 수요가 높습니다. 그들이 웹 개발에 참여하도록 하는 것은 전혀 불필요합니다.
기업은 웹에서 더욱 유연해지기를 원합니다. 팀 규모를 확장하거나 축소해야 할 때 Python에 익숙한 인재를 찾는데 몇 주 또는 몇 달을 천천히 보내고 싶지 않습니다. 이런 유형의 엔지니어는 비용이 많이 들고 회사에서는 이를 감당할 수 없습니다.
그러나 다양한 비즈니스 규모에 적응할 수 있는 PHP 프로그래머는 노동 시장에서 질과 양이 높고 필요에 따라 빠르게 교육을 받을 수도 있습니다. 더 중요한 것은, 수십 년의 경험을 가진 숙련된 수석 PHP 설계자를 찾고 싶어도 Python 분야에서 같은 수준의 사람을 찾는 것보다 훨씬 덜 어렵다는 것입니다.
그리고 회사 경영진도 Python 팬에게 행동 방법을 가르칠 것입니다. 특별한 이유 없이 Python으로 웹이나 미들웨어를 작성하고 싶으신가요? 사람들은 예산이 많지 않으며 언제든지 다른 도구로 쉽게 교체해야 합니다. 이러한 점은 Python이 잘하지 못하는 것입니다.
자격을 갖춘 애플리케이션 아키텍트가 되려면 가장 먼저 가장 효과적인 기술을 사용하여 비즈니스 또는 기업에 "적절한 규모" 지원을 제공하는 방법을 배우는 것입니다. 개인적인 선호도는 중요하지 않으며 기술이 유행하고 가장 중요합니다. 더 빠르고, 더 좋고, 더 경제적입니다.
그래서 저는 Python으로 완전히 작성하기에 적합한 SaaS 애플리케이션이 실제로 거의 없다는 것을 발견했습니다. 웹에서 Python의 형편없는 시장 점유율을 고려하면 대부분의 애플리케이션 설계자가 내 의견에 동의하는 것 같습니다. 그들은 가장 잘 맞는 곳에만 Python을 사용하고, 훨씬 더 잘 맞는 곳에는 PHP를 사용합니다.
요약
엔지니어로서 우리 모두는 익숙한 것을 사용하는 것을 좋아하고, 이해하지 못하는 것을 얕보는 데에도 익숙합니다. 인정하는 것을 두려워하지 마십시오. 우리 프로그래머에게는 이 문제가 있습니다.
대학에서는 Python을 범용 비즈니스 언어로 자리매김하려고 노력해 왔지만 그렇지 않습니다. Python은 서버 실행, 데이터 과학, 대규모의 복잡한 데이터 처리 또는 암호화폐 채굴 처리에 특화된 고급 언어로 더 적합합니다. 이것이 그 특산품입니다.
그리고 PHP는 널리 사용되는 언어이며 World Wide Web에서 객관적인 표준이 되었습니다.
그래서 원한다면 계속해서 PHP를 욕해도 괜찮습니다. 그러나 결국에는 여전히 웹에서 가장 널리 사용되는 언어이며 WordPress가 계속 성장하고 PHP 7 및 8이 계속 업그레이드됨에 따라 이러한 리더십은 조만간 흔들리지 않을 것입니다.
저자 소개:
Beau Beauchamp는 확장 가능한 애플리케이션 개발 분야에서 20년 이상의 경험을 보유한 엔터프라이즈급 UI/UX 풀 스택 웹 애플리케이션 설계자이자 수석 개발자입니다.
원본 링크:
https://beau-beauchamp.medium.com/php-is-killing-python-2be459364284