38 Comments

  1. 우물안개구리

    정말 우물안 개구리네요
    시대가 어느때인데
    예전같으면 저도 php 까재꼇겟지만
    현실이 그렇지가 못하네요

    • perillamint

      기존 레거시 프로젝트를 이어가야 한다면 어쩔 수 없지만 신규 프로젝트를 PHP로 하는 건 충분히 미친 짓이라고 생각합니다.

      더 좋은 대안이 많은데 안 쓰는 건 생산력만 떨어뜨릴 뿐이죠

      • 사코

        너무ㅋㅋ웃기신분이네요
        이시대에 다른언어를 까재끼는 분이잇을줄은. . 솔직히 이제까지 개발하면서 java가좋다 asp가좋다 파이썬이 좋다. . 이건아니다 . .하는분들중 개발잘하시는분들은 본적이 없네요ㅋㅋ
        솔직히 이러고잇는 님이좀 웃기구요
        Php가 이젠 왜까여야 하는지 전혀모르겟어요 정말modern php라는걸 접하고 나면 오히려 혁명적이라고 생각이들죠.
        본인도 그렇게 느낀 1인이구요

        그리고 이런 글을 적을시간에 정말 저논리를 납득시킬만한 사람이되세요.
        님이 그런영향을 줄수잇는 자리에서 저런말을 한다면 누구나 고개를 끄덕이겟지만
        현재 듣보의 상태로 저렇게 까재끼는 글만적는다면 나는 모자른놈이다 라고 직접 말하는거 아닌가쉽네요ㅎ 그럼 진짜 실력잇는 개발자가 되길바라며 답을 마칩니다

    • perillamint

      닉에 맞는 답변을 드리죠.

      좋은 기반은 더 적은 노력을 통해 더 나은 결과를 도출해냅니다.

      개판인 기반을 가지고 개판을 감출 핵을 올리는 것보다는 아예 더 나은 기반으로 가는 게 낫다는 말입니다.

      • 언어는 도구다

        물론 생산성이 좋은 도구는 언재든지
        환영이에요.

        그러나, 말씀하시는게 너무 과격해서
        눈살이 찌푸려지는건 어쩔 수 없네요.

        님이 php 뿐만아니라 다른언어로 얼마나 개발을 했는지는 모르겠지만.

        분명히 님도 자주 애용하는 메인 언어가 있을거에요.
        그런데 그것을 어떤 뭔가 불편하다는 이유로, 기반부터가 개반이니 뭐니 그런 소리를 하면, 기분이 나뻐서라도 그 소리를 외면하지 않겠나요?

        분명히 자신이 생각하는게 맞고, 그게 좋으면 남한테 권할 수 도 있지만,

        이렇게 과격한 방식으로는
        받아들이는 이들은 소수 일것이고,
        님의 좋은 의도와는 다르게

        다수의 사람들 기분만 나뻐질 뿐입니다.

        다음부터는 좀 더 덜 과격하게 전달해보는게
        어떨까 합니다.

        아무튼 글은 잘 읽었어요.

        다른 사람이 본인의 생각을 존중해주길 바란다면
        당사자인 자신부터, 다른 사람의 생각을 존중해주시고 최대한
        과격하지 않게 했으면 합니다.

        -php를 좋아하는 이가-

  2. 떡밥

    닭잡을때 닭잡는 칼을 쓰고
    소잡을때 소잡는 칼을 쓰고

    프로그래머 자질을 논하다니 @.@
    고수준 언어를 쓰래 ㅋㅋㅋㅋㅋ

    • perillamint

      애초에 엉망인 생태계에서 “나는 이 돼지우리가 좋아” 하고 있는 사람을 “좋은 프로그래머”라고는 부르기 힘들죠

  3. ㅠㅠ

    분명한건 언어는 도구
    쓰임새에 따라 효율적으로 이것저것 선택 사용하면 그만인걸
    쉬운(저급 초보) 언어, 어려운(고급 순련자) 언어
    쓰레기 언어, 좋은 언어
    구분 짓고 고집 부리는 사람치고 개발능력 좋은 사람은 단 한명도 못봤네요
    문제 해결 능력이 부족하면 그 언어에 불편함을 느낍니다
    그러나 어떤 언어든 이슈가 있고 공부하고 대응 코딩하여 이슈를 해결하고 그 외 언어를 선택한 목적에 맞게 장점을 살리며 프로그래밍하는게 개발자의 능력이죠
    아무리 뛰어난 언어가 탄생한다고 해도 개발자가 능력이 부족하면 그 결과물이 바로 쓰레기이지
    언어는 쓰레기가 될 수는 없습니다
    java 주력으로 si sm 파견 다니는 일부 인력들이 편견이 심한 경우가 있던데 혹시 글쓴님도 그쪽이신가요?
    가볍게 망치가 필요할때 무겁게 해머가 필요할때가 있는 법입니다
    진짜 개발자라면 어떤 도구든 아끼고 소중히 다뤄야겠죠

    • perillamint

      PHP의 문제는 쉬워서가 아니라 추상화 레이어가 정신이 나갔기 때문입니다.

      당장 fopen() 콜이 URL을 리졸브해서 외래 리소스를 가져오는 것을 *좋은 아이디어* 라고 생각한 것 자체가 제대로 된 생각이 아닙니다.

      더불어 일단 뭔가 이상해도 에러를 대충 씹어먹고 “어 뭔가 이상한데? 근데 아무것도 없는 것보단 뭐라도 있는 게 낫잖아?” 라는 정신으로 일단 돌리다가 신나게 0day 를 양산하는 것도 좋은 생각은 아니죠

      덧: 살면서 SI SM 파견근무는 다행히도 가 본적이 없군요. 다만 깔끔하지 않은 설계, 특히 문제가 있어도 대충 문제를 무시하고 실행해서 온갖 보안 취약점을 일으키고 유지보수 지옥을 불러 일으키는 똥을 정말로 혐오하는 개발자일 뿐이죠.

      취미로는 C, Rust, NodeJS, Elixir 쓰고 회사에서는 NodeJS, Elixir 씁니다.

  4. 웹 프로그래밍을 C언어로 짜는게 PHP 보다 정신력 코스트를 아낄 수 있다는 건 콤바인 대신 낫으로 벼베기를 하라는 것과 같습니다. (정작 C 언어로 웹 프로그래밍을 해 보신적은 있으신지 궁금합니다).

    PHP 는 대충만들수도 제대로 만들 수도 있는 언어입니다. 졸작들도 멋진 기능을 수행합니다.

    PHP 에 대한 공격은 배우기 쉽기 때문에 초보자도 웹 프로그래밍을 해서 기능을 수행하도록 만들기 쉽다는 점 때문에 발생합니다. 이것은 오히려 장점입니다.

    고수의 경지에 이른다면, 난이도는 어느 분야나 비슷해 집니다만, 특별한 이유가 있지 않고서야 PHP를 놔두고 C 언어로 웹 프로그래밍을 하지는 않겠죠?

    • perillamint

      차라리 C로 짜라는 건 PHP보다 C가 차라리 *더* 일관적이라는 겁니다.

      적어도 libc 의 함수들은 에러를 “씹어먹고” 이상하게 돌아가지는 않죠. libc 설정에 allow_url_fopen 같은 미친 플래그가 있지도 않고요

      그리고 낮은 진입 장벽이 PHP의 똥을 만드는 데 유일한 원인은 절대 아닙니다. 엉망인 생태계와 엉망인 API 디자인, 그 외 문제들이 함께 시너지를 일으켜서 개판이 된 거죠.

      낮은 진입장벽으로 유명한 ECMAScript(aka. JavaScript) 를 쓰는 NodeJS 를 보면, 생태계는 규모가 커짐에 따라 똥코드가 차오르기 시작했지만 복붙 코딩이 아닌(PHP 제대로 짜려는 사람 말고는 composer 안쓰잖아요) 애초부터 NPM 의존성으로 패키지가 관리된다는 점 때문에 공통 취약점 DB를 활용해 손쉽게 외래 코드 유래 문제에 대한 보고를 생성할 수 있으며 ECMAScript 표준 자체가 PHP 표준보다는 훨씬 튼튼하고(예: ECMAScript 의 foo.length 와 PHP count() 의 동작 차이를 보십시오) ES6을 지나 ES7, ESNext로 계속 발전해 나가며 언어 스펙 자체가 가지고 있던 더러운 부분들을 치워나가는 걸 보면 알 수 있죠.

  5. 지금은 Node man

    언어는 도구다 님의 라라벨 써보셨나요가 답이네요 🙂

    저는 저의 프로그래밍 의식 흐름에 맞질 않는다 생각해서 갈아 탔지만

    모던 php와 라라벨의 노력 덕분에 깔 수가 없어요
    그리고 당연히 의존성 관리 도구와 패키지 관리가 php도 잘 되고 있지요 🙂
    아무래도 글을 수정해 주시면 좋을꺼 같네요

    음 그리고 갑자기 궁금해 졌는데 php에도 이제 babel 같은 거 있으려나요 … 궁구밍

    지금은 Node 개발자 올림
    그런데 dart언어 때문에 구글은 까고 싶네요 ….

  6. 방임이라는 말에 공감합니다.

    보수적인 정책은 명확한 가이드라인으로 통제하고 같은 처리를 다르게 하는 여러 핵을 암묵적으로 허용하지 않는거죠.

    API의 제약사항과 가이드라인을 씹을 수 있는 핵이 많다는 것을 명예로운 뱃지로만 생각하는 사람들이 많으면 언어가 새로운 세대로 트랜지션할 시기를 놓치게 된다는 생각이 많이 듭니다.

  7. 우물안 개구리가 아무리 발광해도 우물안을 나오진 못하죠.
    백날 설명해야 이해못할게 뻔한데 납득시켜달라니 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 고인물이 이래서 극혐 입니다.

  8. ㅋㅋㅋ웃기다

    짚으신 부분을 보안해서 코딩하시면 되잖아요 ㅋㅋㅋ 흔히들 요즘말로 장비빨이시군요..

    • perillamint

      함정 카드 투성이인 정신나간 툴과 그나마 제정신이 박힌 툴이 있다면 후자를 택하는 건 지성이 있고 여건이 허용한다면 당연한 것입니다…

  9. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ별 말도안되는 말을 잘도 씨부리셨네요

    대부분 $_GET으로 개발한다고요? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

    ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ웃음밖에 안나오네요 쿼리 방어 로직은 jsp도 해결해야하는 숙제에요

    멍청멍청하시네요

    • perillamint

      도대체 JSP 가 왜 나오는지… 전 이 글에서 Python과 Javascript로 짜라고 한 적은 있어도 JSP 언급한 적 없습니다만.. (아 혹시 Javascript (ECMAScript) 를 Java 와 헷깔리신 건 아니죠? 그 정도로 멍청하신 분은 아니리라 믿습니다 )

      그리고 자바 얘기 나와서 말인데, 혹시 JSP 짜시면서 Hibernate 같은 거 안쓰고 JDBC바로 부르시나요? 어지간한 멍청이 짓만 안 하면 Hibernate 가 이스케이프는 해줄텐데 말이죠.

  10. 그리고 만약에 식당을 차렸는데

    100만원 짜리 칼로 생선을 썰던
    10만원 짜리 칼로 생선을 썰던

    뭔상관입니까 유저가 느낄수가없는데

    왜 10만원 짜리 칼로 써는 요리사를 뭐라고하십니까?

    그리고 10만원짜리가 더 잘잘려요

    Jsp는 허울뿐이며 개발이 오래걸리며 유지보수가 어렵습니다.

    100만원 짜리 식당에는 느리고 비쌉니다
    10만원 짜리 식당은 빠르고 쌉니다

    어떤걸 선택할거같나요?

    https://www.tokyobranch.net/archives/6693

    왜 서버사이드에서 PHP가 강자인것같나요?

    물론 개발자 만족을 위해서라면 얘기가 다르겠지만

    개발자가 모르는 프로젝트 퀄리티라던가
    비용, 유지보수
    무조건 PHP가 위에있습니다.

    ㅋㅋㅋ;; 쿼리스트링 방어가 PHP만의 문제라고 하는거보고 아주그냥 부랄을 탁칩니다

    • perillamint

      아니 좀 제가 Javascript 로 짜라고 했지 언제 자바로 짜라고 했냐고요 아오

      왜이리 다들 서블릿 컨테이너하고 연 깊지도 않은 저를 자바 개발자로 못 몰아가서 안달이신지 모르겠네요. 저 서버사이드 자바스크립트로 밥벌어먹고 삽니다 자바가 아니라요.

      자바스크립트하고 자바 헷깔리시는 분은 개발자 자질이 의심되는 분들이나 헷깔리는거고요

  11. 세렘

    글 잘 읽었습니다.
    low level lang, high level lang이 무슨 뜻인지도 모르는 분들이 진짜 개발자 맞나….

    고생이 많으십니다 ㅋㅋ

  12. 댓글에 화나있는 사람들 하나같이 근거가 없거나 개발자가 아니네요… 이렇게 구체적인 예시를 들고와서 까는글도 흔치않은데

  13. 가즈

    글쓴분께서 제목과 내용이 도발적이라 온갖 사람들이 다 몰려들었네요. ㅋㅋㅋㅋ 사실 딱히 틀린말씀은 없으십니다. 요즘같이 실시간 데이터가 왔다갔다 하는게 중요해지는 시점에서 PHP는 느린게 사실입니다. 뭐 빠르게 하는것도 있겠지만 장고 루비레일즈 nodejs처럼 간편하게 개발할 수 있을 거라곤 생각이 안드네요.

    • 가즈

      아직 많은 솔루션들이 PHP로 되어있고 역사가 깊다보니 각종 플러그인이나 자료가 많아서 지금도 필요하긴 합니다. 다만, PHP는 미래지향적이라고 보긴 힘들지 않을까 싶네요.

  14. 우물안에서 놀지말자

    php를 깔수 잇는건 zend엔진이 좀후지다는거 뿐이지

    그외에는 깔수잇는게 없어요

    언어의 디자인 아키텍쳐가 다른언어랑 다르다는건
    깔수잇는 문제가 아닙니다

    본인 개발이나 열심히하세요

    이것저것 평가하지말구요

    님이 무언가를 평가하고싶으면

    님이 php보다 좋고 인기잇는 언어를 만드셔서
    그때 평가하세요

    • perillamint

      우물 안에 갇혀 계시는 분이 우물안에서 놀지말자라니 해드릴 말은 이거밖에 없네요

      좋은 API가 무엇인지에 대한 공부를 더 하고 오시길 바랍니다.

  15. eawer2012

    php8 소식이 있다길래 검색하다 우연히 들어와서 보게 되었네요. 아래의 댓글과
    글쓴님들의 댓글들을 읽으면서 중재하는 의미에서 댓글하나 남기고 갑니다.

    저도 글쓴님처럼, node, php, java, python, ruby, r 등등 적잖게 다뤄봤습니다.

    개발자라는게 경력이 쌓이다보면 다뤄야 하는 언어는 회사를 옮기거나 특정 프로젝트에 따라 케바케로 바뀌는것 같습니다. 물론 내가 공부하고 싶었었던 언어를 더 공부하면서 새롭게 접하기도 하고요.

    제가 생각하는 개발자로서의 언어는 특정프로젝트에 가장 어울리는 언어가 있고
    그것이 퍼포먼스를 잘 뽑아 낸다면, 그걸로 그 프로젝트는 성공적이고 완성적이라 봅니다.
    개발자로서도 역할을 다 했고요.

    개발을 배우면서 개발자들이 쉽게 착각하는 부분이 있습니다.,
    “좋은 언어를 사용해야 좋은 결과물이 나온다.”

    사실 저런 생각은 자기 중심적인 사고에서 나오는 겁니다. 돌려 이야기하면

    “내가 힘들게 공부하고 익힌 언어가 좋은 언어다. 혹은 나에게 익숙하고 내가 개발하기 쉬운 언어가 좋은 언어다.”를
    좋게 포장하고 있는건 아닌지 조심해야 합니다.

    개발자의 역할을 도구로만 생각하면 사용하는 모든 언어를 대하는 태도도 그 범주를 벗어나기 힘듭니다.

    언어마다 미묘하게 추구하는 가치나 지향점이 다르듯. 강점도 조금씩 다르구요.
    그걸 가지고 이게 좋네 저게 좋네라고 개발자들끼리 언쟁을 하는건 굉장히 소모적인 부분이라 생각합니다.

    개발자는 “언어에 대한 학습과 이해가 역할”이 아닙니다.
    언어에 대한 학습과 이해는 사람이 숨쉬는 것처럼 너무나 기초적이고 당연한 것이고요.

    일본어, 중국어, 영어 등등 그 언어가 중요한게 아니라, 그 문화에서 살아가는 사람들이
    중요한 겁니다. 중국이 한글보다 비효율적이라고 중국의 근본이 썩었다고 말하지는 않듯이
    글쓰신 분들이나 댓글다신 분들이나.. 자기 언어를 사랑하시는 것은 좋은데 아집에서 벗어나시길 바랍니다.

    이 광경이 얼마나 우습냐면…
    “난 일본 조리도구 세트로 요리하니까 요리도 맛날꺼야 ”
    “아니야 독일제 조리도구 세트로 해야 더 맛좋은 요리가 나올꺼야”

    사실 중요한건 결과물인 요리의 맛과, 한정된 자원으로 최고의 결과를 만들줄 아는 그 사람의 실력인거죠.
    여러분 모두 냉장고를 부탁해 예능방송을 시청하길 권장합니다.

  16. 프로학습러

    메인 언어는 파이썬이고, 자바스크립트는 제가 많이
    다루지는 않지만 좋아하는 언어입니다.

    웹 개발 분야는 전혀 문외한이다가 급작스럽게 pho 기반 사이트 하나를 유지 보수하게 되어 php와 mysql을 간단히 학습하여 구글링과 함께 유지 보수를 하고 있습니다.

    웹 개발에 흥미를 느껴 장고와 node.js 둘 중 하나를 학습하려는데 추천해주실 분들 계실까요?? 목적은 자기계발입니다.(그렇다고 이를 활용한 취업을 목적에 두는 것은 아닙니다)

    파이썬은 파이썬 철학이나 메커니즘을 포함해서 최신 고수준 라이브러리까지 능숙하게 다루는 수준이고, 데이터 가공, 크롤링, 윈도우 프로그래밍(c와 함께) 등에서 많이 사용했습니다. 자바스크립트는 기본 문법 정도 알고 있는 수준입니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.