미니옵빠의 code stubs

PHP 단점 - 언어 설계 및 구조 불안정 본문

Language/PHP

PHP 단점 - 언어 설계 및 구조 불안정

미니옵빠 2017. 7. 2. 10:30

PHP를 근본 없는 언어라고 평하는 경우가 있는데, 일부 동의함.


표현을 점잖게 하자면 언어 설계 및 구조 불안정이라고 할 수 있고, 함수 이름에 일관성이 없거나 비슷한 함수들의 사용법이 상이할 때 몸으로 느낄 수 있다.


예)


array_splice

  • Description 에 return 한다는 말이 없음. 그러니 입력값이 바뀐다라고 추정해야 함?
  • Return Values 있다고 적혀있음
  • Example 보면 return 없이 쓰며, 실행 후 입력값이 바뀌어 있음. Example 처럼 쓰는게 정석

array_slice의 description과 Example 을 보면 차이를 알 수 있음.

이 함수는 return 값을 제공하기 때문에 비슷한 함수명으로 사용법을 추정해서 사용하다가 낭패를 볼 수 있다.


(JS 등에서 이미 유사 method를 사용해 본 경험이 있다면 익숙하겠지만..)


예)


array_filter는 옵션 없음 / ARRAY_FILTER_USE_KEY / ARRAY_FILTER_USE_BOTH 세 가지가 다른 동작을 함

영문 매뉴얼에는 flag 설명이 있는데 한글 매뉴얼에는 존재조차 없음 -_- 이건 약간 논외지만...


좋은 MVC 프레임워크가 많이 나와 구현/협업 측면에서는 좋아졌으니 이건 괜찮음

성능은 이슈가 있지만, Zend나 facebook의 HHVM 등이 있으니 크게 나쁘지는 않음

하지만 PHP 언어 설계 자체의 난해함은 해결되지 않고, Fackbook에서 Hack을 만든 것을 보면 이해가 됨