Microsoft가 아는 돈벌이 방법은 생태계에 가두기뿐인 듯함. 다음에는 자연어를 Lean으로 형식화해 검사하는 독점 코드를 넣은 비공개 소스 Lean 검사기에 도전하면 되겠음.
Python Type Server Protocol이라고 불러야 하지 않을까? Python만 지원하는 프로토콜에 범용적인 이름을 선점하는 건 이상함. 실제로 범용인 LSP를 만든 회사라서 더욱 그럼.
pylance 프로젝트 아래에 속해 있음. 여기에는 발표문도 없고 Markdown 파일만 보이므로, 게시물 제목을 조금 수정하는 편이 좋겠음.
자기 웹 프레임워크에 MVC라는 이름을 붙였던 회사임. 적어도 이번에는 업계 표준 용어의 검색 결과를 영원히 오염시키지는 않겠음.
Elixir나 다른 동적 언어도 지원한다면 더 납득할 만할 듯함.
LSP처럼 Python 밖에서도 일반화할 수 있을지 궁금함.
LSP의 세부 사항은 잘 모르는데, 이게 왜 필요한지 조금 혼란스러움. LSP만으로는 Python 타입 질의 기능이 부족한 것인지 궁금함.
타입을 구조화된 형태로 표현하려는 것으로 보임. 보통 LSP에서는 IDE에 표시할 일반 문자열이나 Markdown을 받지만, 구조적으로 분석할 수 있는 형태는 아님.
다만 LSP 확장이나 새 LSP 버전의 기능으로 넣지 않은 건 아쉬움. LSP도 Microsoft 엔지니어들이 관리함.
Python은 잘 모르지만 C# 으로는 프로그래밍을 많이 하는 사람도 이해할 수 있게 설명해 줄 수 있을까?
LSP는 IDE와 언어 도구 모음 사이에 놓이는 소프트웨어의 인터페이스임. 새 언어를 지원할 때 IDE 코드를 수정하는 대신 LSP 서버에 지원을 추가하면 됨. 서버가 자동 완성·IntelliSense, 정의로 이동, 오류 검사 등을 제공함.
발표 내용대로라면 TSP는 Python 타입을 더 잘 이해하도록 LSP를 확장함.
결국 특정 코드 위치의 타입을 기계가 읽을 수 있는 형태로 질의하는 기능을 LSP 확장으로 추가해서, Pylance와 Pywright를 분리하려는 것인가?
‘결과 타입’ 형식은 전칭 한정자 바인더가 없는 등 Python에 매우 특화되어 있음. 이 스키마가 Python 이외의 언어에 쓰일 것 같지는 않음.
UTF-16을 그대로 유지했음. 새 프로토콜은 그 잘못된 결정을 바로잡을 기회임.
확장 메시지 몇 개를 정의하는 Markdown 파일과 수백 줄의 JSON 스키마일 뿐, 프로토콜을 밑바닥부터 개정하는 작업은 아님.
Python 외에도 활용할 곳이 있을까?
현재는 Python 전용이지만, 공식 타입 검사기가 없는 다른 언어에도 도움이 될 듯함. PHP, Erlang, Ruby 등이 해당함.
Python이 이렇게 널리 자리 잡은 게 참 아쉬움. 언어와 생태계가 엉망이라, 더 잘 설계된 언어들이 수십 년 전부터 갖춘 기능을 계속 덧붙이고 임시방편으로 구현하고 있음.
이제 Python은 독립적인 프로그래밍 언어라기보다 C/C++/Fortran/Rust 바이너리 사이의 상호운용 프로토콜에 가까움. 이것도 순환의 일부이기는 함.
10년 전 학계가 여전히 Matlab 중심이던 시절에는 신선한 대안이었지만, 지금은 대체로 뒤엉킨 언어가 됨. 일회성 스크립트에는 좋지만, 대규모 소프트웨어 프로젝트에서는 정적 타입 언어보다 불편함.
Python 1.5를 처음 배울 때 반했고 2.0에서는 더 좋아했지만, 3.0 즈음부터 생태계가 무너지는 것을 느끼기 시작함. 단순히 호환성 단절 때문은 아님. 3.0의 변경 대부분은 좋았다고 생각하고 이제 기본 버전으로 정착했지만, 다른 여러 면에서 생태계는 아직도 회복하지 못한 듯함. virtualenv는 여전히 기괴한 임시방편임. Perl이나 Ruby처럼 PYTHONPATH 설정을 감싸는 도구를 만드는 대신, 설치 위치를 기준으로 라이브러리 경로를 찾는 Python의 동작에 의존함. 그래서 Python 설치 전체를 하드 링크로 연결하고 먼저 ‘활성화’하도록 만듦. 20년 동안 이를 대체하지 못했다는 사실만으로도 많은 것을 알 수 있음.
매일 Python으로 일하고 있고 가장 좋아하는 언어는 아니지만, 대체로 무난하다고 봄. 더 잘 설계된 언어라면 구체적으로 어떤 언어를 생각하는지 궁금함.
가장 답답한 건 기본 입문 언어가 될 만큼 임계 규모에 도달했고, 대부분이 거기서 다른 언어로 넘어가지 않는다는 사실임. 그래서 이 기괴한 덩어리가 계속 굴러가고 있음. Python을 겨우 견딜 만하게 만드는 데 쏟아부은 돈은 아마 작은 나라의 GDP 수준일 듯함.
언어와 생태계가 그렇게 엉망인데도 Python이 성공한 이유는 무엇이라고 보는지 궁금함.
주된 목적은 타입 검사를 표준화해서 원하는 서드파티 타입 검사기를 가져다 쓸 수 있도록 하는 것 같음.