2ce88224bcd13df338bcd0e214d0216f54aa42205ee5d7c180a406e328e2024de296f537685ad926ac228c78e585df51



1. async await 성능
기본 탑재 event loop이 느림.

uvloop 쓰라고?

Node처럼 libuv 쓴다고 해도 node가 libuv 기능을 훨씬 많이 쓰는 반면 uvloop는 asyncio loop의 drop in 패치라 제약이 많음.

Stream 받아와서 읽고 보내고 할 때 Boxing Unboxing 이나 GIL 문제는 덤.

결국 일정 수준 이상의 성능이 필요하면, async 넣는 순간 머리아파짐.


2. JiT, AoT 둘 다 없음
언어 차원에서 지원하는 최적화가 거의 없음
while i in range(10):

    SomeClass.someMethod
someMethodLocal = SomeClass.someMethod()

while i in range(10):

    someMethodLocal()
후자가 훨씬 빠름. 이정도 최적화도 안해준다고? 라는 생각밖에...


3. Indentation 문제 (괄호 없음)
이거 '난 괜찮은데?' 하는 애들은 전부 인덴테이션 레벨별로 색칠해주는 플러그인같은거 압수해야됨.

실수로 중간에 이상한 구문 넣고 auto format 하면 인덴테이션이 '비가역적으로' 변한다던가, 분기 추가하면서 맨 밑에 한 두 줄을 빼먹고 indentation 하면 헬게이트 오픈.

IDE로 못잡는 런타임 에러 만들기 딱 좋음

4. 예약어가 거의 없음
상식적으로 int, float 이런 건 예약어로 해놔야 하지 않나? 싶지만... shadowing 경고해주는 플러그인 없으면 잘만 돌아감ㅋㅋ
int = 404
...
someVal = int(someFloat)
하면 '런타임' 에러 남


더 쓰고 싶은 건 많지만 똥 다 싸서 이만....