Hacker News 의견
  • 나는 여전히 PHP를 사랑함
    23년 전 PHP용 암호화 소프트웨어를 만들었는데 아직도 잘 작동하고 있음
    지금도 PHP 뉴스레터를 운영하고 있고, 여전히 강한 커뮤니티가 존재함
    Python이나 Node.js도 쓰지만, 빠르고 단순한 작업에는 결국 PHP로 돌아오게 됨
    다만 PHP 5 이후로 언어가 훨씬 복잡해진 점은 양날의 검 같음

    • PHP는 대규모 전환을 올바르게 수행한 대표적인 사례라고 생각함
      Python이 2에서 3으로 넘어가는 동안 PHP는 5.2→5.3, 5.6→7.0으로 발전했음
      네임스페이스, PSR0 오토로딩, 파서 개선 등으로 속도와 구조가 크게 향상되었음
      업데이트마다 호환성을 깨지 않으면서도 점진적으로 개선했고, 경고와 shim을 제공해 구버전 유지도 가능했음
      PHP 6이 취소된 건 문자열 처리 변경 때문인데, 결과적으로 현명한 결정이었다고 봄
      오랫동안 생계를 책임져준 언어이자 커뮤니티를 존중하는 프로젝트였음
    • PHP가 복잡해졌다는 말이 많지만, 나는 5.3으로 만든 단순한 코드가 PHP 8에서도 완벽히 작동함
      복잡하게 쓸 수도 있지만 꼭 그럴 필요는 없음
    • 혹시 그 암호화 소프트웨어가 Zend였는지 궁금함
      2000년대 중반에 Zend 관련 툴을 다뤘는데 꽤 까다로웠던 기억이 있음
    • PHP 8은 처음부터 올바른 방식으로 배우면 충분히 이해하기 쉬움
      PSR을 익히고 보안과 기능을 고려하면 훨씬 안정적이고 강력한 언어가 되었음
  • PHP 5 이후의 진화는 인상적이지만, 그만큼 복잡성이 커진 문제도 있음
    예전 버전으로 배운 사람에게는 최신 코드베이스가 낯설고 따라가기 어려움
    이는 커뮤니티에는 강점이지만, 복귀하려는 개발자에게는 장벽이 됨

    • 최신 PHP는 여전히 가독성이 좋은 언어라고 생각함
      10년간 C++을 썼지만, 지금은 최신 C++ 코드보다 PHP가 훨씬 읽기 쉬움
    • PHP 8을 배우면 충분함. 지금의 PHP는 예전보다 훨씬 나아졌음
    • 요즘 대부분의 소프트웨어가 비슷한 문제를 겪음
      단순함이라는 목표가 사라지고, 기능만 계속 쌓이는 느낌임
    • 사실 이런 변화는 다른 언어들도 마찬가지임
      웹 분야는 특히 빠르게 변하므로 따라가지 않으면 도태됨
    • Java 전문가로 일하면서도 새 기능을 동료들에게 설명해야 할 때가 많음
      PHP는 특히 입문자들이 첫 웹사이트를 만들 때 많이 쓰는 언어라서 다른 언어보다 변화 체감이 클 수 있음
  • 많은 사람들이 PHP를 부끄러워하는 경향이 있지만, 나는 그렇지 않음
    언어에 대해 잘 모르지만 멋진 프로젝트가 많다는 건 알고 있음
    요즘 가장 좋아하는 PHP 프로젝트는 BookStack으로, 가족용 위키로 쓰고 있음
    잘 관리된 PHP 스택으로 만들어진 사이트들이 여전히 많음

    • 현대 PHP는 빠르고 훌륭한 언어
      2021~2023년에 프로덕션 PHP를 썼는데, 언어 자체보다 문제는 낡은 코드베이스낮은 급여 수준이었음
      PHP 4 시절의 유산 코드가 많고, 데이터 접근 패턴도 제각각이라 유지보수가 힘듦
      하지만 PHP 8로 마이그레이션하면서 코드 품질이 크게 향상됨
      새 프로젝트를 시작한다면 PHP를 선택하진 않겠지만, 현대적 Laravel 프로젝트라면 기꺼이 참여할 것임
    • PHP는 다루기 직관적이고 즐거운 언어였음
      다만 초보자들이 보안 개념 없이 접근하기 쉬워서 SQL 인젝션 같은 문제가 많았고, 그로 인해 ‘불안한 언어’라는 평판을 얻었음
    • JS/TS + 최신 프레임워크보다 PHP 백엔드를 선호함
      Laravel 같은 프레임워크와 함께 쓰면 훨씬 안정적이고 성숙한 환경
    • PHP로 커리어를 쌓아왔고, 지금도 그 현대화 과정을 즐기고 있음
      기타 연주나 시 쓰기처럼 누구나 할 수 있지만, 잘하기는 어려운 일임
    • AzuraCast를 좋아함
      직접 코드를 보며 배우고, 라디오/음악 서버를 자가 호스팅하는 재미가 있음
  • PHP는 업데이트될수록 복잡해지는 언어가 되었음
    여전히 웹 중심 언어인데 왜 이렇게 발전하는지 의문임

    • C#과 Java도 웹 백엔드 중심이라 복잡해졌음
      결국 전통적인 객체지향 언어들이 비슷한 방향으로 수렴하는 것 같음
    • 웹 자체가 점점 단순하지 않음
    • NativePhp 같은 프로젝트도 있음
      웹만을 위한 언어라 해도 발전할 이유는 충분함. 개발자 경험을 개선하는 건 언제나 가치 있음
    • 처음엔 글을 읽지 않고 비판했지만, 다시 보니 일부 기능은 괜찮음
      array_first(), array_last()는 유용하지만, 파이프 연산자는 유지보수성을 해칠 수 있음
      단항 함수만 지원해 복잡한 함수에서는 오히려 버그를 유발할 수 있음
  • PHP 8.5 발표에서 가장 흥미로운 점은 언어의 안정성과 성숙도

  • PHP가 GTA6보다 먼저 array_first, array_last, fatal error stack trace를 추가한다니 놀라움

    • 좋은 추가 기능이지만, 사실 array_shift나 array_pop으로도 충분했음
  • PHP에 새로운 함수와 문법이 계속 추가되는 건 장기적으로 유지보수 비용을 높임
    공식 릴리스 노트를 보면, 일부 기능은 가치가 애매함

    • URI 확장은 속도는 빠르지만, 기존 parse_url()과 중복됨
    • 파이프 연산자는 취향 문제이며, 코드 스타일 일관성을 해칠 수 있음
    • clone 개선은 미미한 변화임
    • #Discard/void는 정적 분석기의 기능을 대체함
    • 상수 내 클로저는 흥미롭지만, 복잡한 속성(#attribute)으로 이어질 수 있음
    • cURL 지속 핸들은 진짜 성능 향상 요소임
    • array_first()는 문법적 설탕 수준으로, 대규모 프로젝트에서는 거의 쓰이지 않을 듯함
  • 공식 PHP 8.5 릴리스 노트

  • 파이프 연산자 예시는 대부분의 언어에서 임시 변수를 쓰는 일반적인 방식을 생략한 것임
    URL 파싱 예시도 parse_url()과 직접 비교되지 않았음

    • parse_url()은 표준을 완전히 따르지 않고 상대 URL 처리에 약함
      uri() 함수는 더 깔끔하고, 부분 함수 적용 기능이 추가되면 파이프 체인이 더 읽기 쉬워질 것임
  • PHP CLI에서 **백틱()으로 shell_exec()을 호출**하곤 했는데, 이제 deprecated됨 mkdir $dirname` 같은 식으로 자주 썼음

    • 그건 보안상 안티패턴
      셸 메타문자 주입 위험이 있으므로 PHP의 mkdir()이나 pcntl_exec()을 써야 함