하위호환성 유지라는 명목으로 입문자들이 PHP의 기본기능만 가지고 안전하지 못한 웹서비스를 만들수 있도록 허용하기 때문입니다. PHP tutorial로 검색한 사이트 상위 5개중 XSS를 방어하기 위해 초전역변수(superglobal)의 내용을 출력할때 HTML 이스케이프를 적용해야 한다는 내용을 포함시킨 사례는 PHP 공식 사이트 이외에는 없습니다. 그들이 공식적으로 제공하는 가이드가 웹개발의 내용을 담고 있으니 PHP는 언어와 프레임워크 두 가지의 역할을 하고 있는 것 아닐까요?

초전역변수의 이름으로 HTTP의 여러 요소들이 기본 제공되고 있는 점에 대해서는 어떻게 생각하시나요? 저는 언어가 표현하고 있는 내용에 따라 범용성의 범위와 사용처가 결정된다고 생각합니다.

그리고 php는 범용 스크립트언어로 표방한지 오래입니다.

지난 10년동안 컴포저 패키지들 (노드 npm 같은 배포) 기준 php 사용통계는 php 5이하는 전멸했고요 php 생태계는 컴포저 중심으로 옮겨간지 오래입니다.

일부 cms 워드프레스, 그누보드 등은 완전 동떨어져있고요.

cms 를 제외한 생태계는 위와 같은 상황입니다.

유지하고 있어도 문제고요. 이정도 수준의 설계부터 잘못되어있는데 버전업해서 품질이 좋아졌다? 그건 하위호환성을 심각하게 부숴서 문제입니다. 비교 연산자부터가 이상한데 뭘 어쩌겠어요.

12년전 문서 ㅋㅋ

언어랑 프레임워크랑 자꾸 혼동하시네요

왜 언어랑 프레임워크랑 비교하시는지 모르겠습니다.

루비온레일즈와 장고 컨셉의 라라벨이있는데요.

블룸버그 인터뷰를 코얼리(Corely)로 요약한 내용입니다.
https://corely.ai/content/google-ceo-sundar-pichai-future-ai

오 예전 1:1 매칭 패러다임에서 벗어난다는게 되게 신기하네요

명령, 응답, 예시

그냥 트렐로건 슬래이건 임베딩해버리네요..??

Nova를 링크해주셔서 봤는데 이것도 유료 라이센스네요 프로젝트 튜토리얼에서 명시되고 바로 사용할 수 있는 장고 어드민과 기능은 유사할지 몰라도 접근성 면에서 차이가 있어 보입니다.

또한 라라벨은 오픈소스 기여자들이 아니라 라스무스나 zend같은 회사에 의해서, 2011년이 아니라 2007년쯤에 개별 프로젝트가 아니라 공식 언어 기능으로 나왔어야 할 물건이라 생각합니다. 파이썬3가 하위호환성을 일부 포기한 것때문에 도입에 차질이 있었지만 PHP도 5버전 즈음에 대규모의 하위호환성 정리를 했어야 한다고 생각합니다. PHP의 변화는 시대의 흐름보다 항상 시차가 있는 것 같기도 합니다

이제는 개인적으로 웹개발에 입문하는 입장이 아니기 때문에 PHP를 선택할 일은 없을 것입니다

저는 지금 웹개발을 하고 있지는 않습니다만... 예전 추억이.

많은 분들이 PHP를 싫어하시는군요. 저도 PHP를 한 3년 정도 써보고, 언어로써 정말 매력이 떨어진다는 생각을 쭉 했었고, RoR 을 접하며, Ruby라는 언어의 우아함에 푹 빠지게된 이유를 PHP가 제공했다고 봐도 될것 같습니다.

글너데, PHP가 처음 나왔을때는, 엄청났어요! 그때는 CGI로 게시판을 짜던만들던 시절이었거든요. 그때 PHP가 주는 기민함은 센세이션이었죠. PHP이 웹개발에 큰 지평을 열었떤건 사실같습니다. :)

하지만, 새술은 새부대에...

예로 드신 장고의 인증, 접근제어, 양식 검증, DB 마이그레이션 툴, 테스트 도구는 PHP의 라라벨에서도 모두 제공하고 있습니다.

인증: https://laravel.com/docs/11.x/authentication
접근제어: https://laravel.com/docs/11.x/authorization
양식 검증: https://laravel.com/docs/11.x/validation
DB 마이그레이션: https://laravel.com/docs/11.x/migrations
테스트: https://laravel.com/docs/11.x/testing

또, 외부 라이브러리거나 유료 라이브러리지만,
기존의 DB 스키마를 모델과 마이그레이션 코드로 내보내거나, 반대로도 작동하는 친구도 존재하고,
CRUD UI를 포함한 깔끔한 백오피스를 제공하는 https://nova.laravel.com/ 도 존재합니다.

장고가 가진 기능들 거의 모두가 라라벨에도 존재합니다.
(애초에 둘 다 RoR의 컨셉을 이어 받은만큼, 제공되는 기능 자체는 비슷할 수 밖에 없다고 봅니다.)
그럼에도 장고-파이썬과 다르게 라라벨-PHP에는 제가 원 댓글에서 언급한 장점이 추가로 존재하지요.

PHP가 웹앱용 템플릿 언어를 표방하며 설계된 언어임은 부정할 수 없는 사실이지만,
모던 PHP 스타일이 정착한지 십년이 다 되어가는 이 시기까지 단순히 템플릿 언어로만 보는건 가혹하지 않나 싶습니다.

저는 좀 생각이 다른게 혼자 MVP를 만들어내려면 DB 스키마, WAS, UI 세가지를 최소한의 코딩으로 구현하는 도구가 필요하다고 생각합니다. 그리고 PHP의 대안으로 루비온레일즈와 장고라는 훌륭한 선택지가 있다고 생각합니다

장고의 경우 액티브 레코드 패턴(참 낡은 단어네요)으로 모델 클래스만 정의하면 DB 스키마랑 그럭저럭 쓸만한 백오피스용 CRUD UI가 나옵니다. 인증, 접근제어, 양식 검증, DB 마이그레이션 툴, 테스트 도구 등 최소한의 웹서비스 개발을 위한 도구가 제공됩니다. 개인적으로는 2000년대 후반에 웹 프로그래밍을 시작하고 나서 장고만한 생산성을 경험해본 적이 없습니다. SPA 방식이 유행하고 프론트엔드와 백엔드 직군이 나눠진 이후로는 오히려 생산성이 줄어든 느낌마저 듭니다. 최소한 두명의 작업자가 사용자 플로우를 이해해야하고 프로토콜을 맞춘 상태에서 작업해야 작업을 병렬적으로 수행할 수 있기 때문입니다

PHP가 웹앱용 템플릿 언어를 표방하고 싶었다면 언어 수준에서 웹 취약점을 방어하는 수단을 제공했어야 한다고 생각합니다. 모던 PHP 스타일이 프레임워크 개발방식을 채택한게 그 증거라고 볼 수 있을 것 같습니다.

여전히 언어로서의 PHP는 최악의 언어이지만,

플랫폼(적절한 표현을 찾기 힘드네요)으로서의 PHP는 생각보다 괜찮다고 생각합니다.
특히 MVP~성장초기의 프로젝트에서, 추후 다른 언어/플랫폼/프레임워크(일반적으로 스프링)로 넘어갈거라고 못 박아두고나면,
그 이후론 언어의 결함은 중요한게 아니게 되고, PHP의 장점만이 눈에 들어옵니다.

중단없이 파일을 수정하는 것 만으로도 배포할 수 있기에 유저 피드백을 더 빠르게 반영할 수 있고,
PHP(-FPM)이 다른 것들보다 특출나게 잘하는 알뜰살뜰한 요청 대기열 처리는 예상치 못한 대량의 트래픽(단기간 성장)에 잘 버티게 해주고,
버그가 있어도 앱 전체가 죽지 않고, 메모리 누수에서도 어느정도 자유로운만큼, 비즈니스 로직+a 에 집중할 수 있고,
PHP를 한번도 사용해보지 않은 다른 언어들이 주 언어인 개발자들도 일주일 들여다보면 웬만큼은 쓸 수 있는 쉬운 난이도까지...

이 모든건 규모가 커지면 (심각할지도 모르는) 단점으로 돌아오겠지만...
적어도 MVP 규모에서, 유저 피드백을 받아 후다닥 반영하고, 빠르게 성장해야 하는 상황에서 PHP만큼 적합한 선택지가 있을까요?
거기에 PHP의 도입 결정 시 '사이즈가 커지면 다른 언어로 이전하겠다'고 이미 마음 먹은 상태니까, 진지하게... Why not?

단순히 해커뉴스 요약 4번째 링크의 한국어 번역본을 제공한 것으로 보입니다ㅎㅎ

당연히 예전보다 좋아지고는 있겠지만 이제와서 PHP 쓸 바에는 Node.js나 파이썬을 사용하는 게 다용도로 쓸 곳이 많아 보이긴 해요.