오랜만에 와 봤더니 파이슨 욕을 하고 싶어하는 사람들이 많은 거 같던데

직접 대가리 깨져 본 경험으로 반박 못하는 진짜 단점들 이야기 해드림



1. 1줄 람다

사실 정확히는 statement가 들어갈 수 없고 expression만 하나 쓸 수 있다.

그래서 람다 안에서는 assertion을 못 한다. 함수로 랩핑하면 되지만 그럴 바에 람다를 안 쓰겠지

프린트도 못해서 디버깅을 하려면 tap 같은 함수를 정의해야 한다. 빡친다.


무슨 Scheme같은 틀딱 언어도 아니면서 굳이 l a m b d a 다 치는 것도 븅신같다. 

존나 쓸데 없는 신택스는 오지게 도입하면서 화살표 함수 같은 슈가를 넣을 생각은 왜 안 할까


그렇게 커두는 람다를 곱창 내놓은 다음 성능이 떨어지고 가독성이 구리므로 쓰지 말라고 한다.

니가 그렇다면 그런거겠지



2. 언어 개발자가 하위 호환성과 버전 관리에 관심이 없다.



2에서 3으로 가면서 하위 호환을 버린 결정은 정말 프밍 언어의 역사에 길이 남을 븅신 짓

알파 버전도 아니고 진짜 많이들 쓰는 언어에 이런 미친 짓을 하는 건 파이슨 말고는 본 적이 없음


자바스크립트처럼 태생적으로 여러 벤더에서 만들어진 언어도 아니고

커두 혼자서 독재하던 언어가 이렇게 개판 치는 건 굉장히 신기하게 느껴진다.



3. 그걸 따라하는 건지 라이브로리 개발자도 하위 호환은 좆깐다 

안 써서 있는지 모르겠는데 pip으로 모든 라이브러리 업데이트? 하면 보통 개좆된다. 하지 말자.

파이슨에서 디펜던시 관리는 돌아가는 라이브러리의 조합을 외우거나 requirements.txt에 기록해 둔 다음 잊어버리는 게 답이다.


이건 전에 한번 남이 짠 코드 돌리다 당해본 건데



이 미친 놈들은 deprecated 된 걸 버전업 후에 진짜로 빼버렸다. 이유는? 보기에 아름답지 않아서

그래서 결과가 스오플의 scipy.misc의 imread를 찾는 글들이다.


scipy도 꽤 많이 쓰는 라이브러리다... 그리고 imread도 참 많이들 썼나보다. 그걸 지워버렸다.

정상적인 라이브러리 개발자라면 deprecated 한 걸 호출하면 "쓰레기니까 쓰지마세요" 이 정도 경고문구만 출력해야 한다

아예 안 돌아가게 하는 게 아니라!


이때 어떻게 해결했냐면

스오플 제안에 따라 다른 라이브러리의 imread를 썼다가

함수의 결과가 달라져서 패드립 치고 도커로 빤스런했다.



내 생각에 파이썬 유저들이 대놓고 말은 안 하지만

"늘 새로운 걸 쓰고 오래된 건 버린다" 이게 분명히 파이써닉일 거다



4. 그냥 느림

무슨 무슨 언어가 빠르네 병림픽을 하면서 벤치 들고 오는 경우가 있다.

거기서 의미 있는 건 딱 하나임: 인싸 언어들 중에서 파이썬은 압도적으로 쳐느리다는 것


그 외엔 별로 의미 있는 떡밥이 아니므로 무시해도 무관



아는 사람한테 들은 이야기인데 넥슨 듀랑고는 서버를 파이썬으로 짰다고 한다

그래서 망한 거 아닐까...?