삼촌 좀 적당히좀 했으면 좋겠다 - 프로그래밍 갤러리 (dcinside.com)
위에 TS 개발자 디스했다고, 뜬금 인성 드립치면서
지멋대로 짜집기 + 소설 써놓아서 반론 들어간다
위 글의 전제는 MS TS 개발자를 디스하는 것이 잘못되었다이고,
이후로는 그에 기반하여 지멋대로 뇌피셜이랑 소설 스깠는데
때문에 TS 개발자를 디스할 수 밖에 없던 상황에 대해 중점적으로 설명하고자 함
미리 네 줄 요약)
1. PR 제안 기반으로 직접 다 구현해서 완성해 봄
2. 위 글에서 말한거처럼 그냥 코드 바꾸기 싫어요 징징~ 디스가 아님 ㅋㅋ
3. TS 코어 개발자가 절대선도 아니고, 노선 불합리하다 생각되면 반대할 수 있는거
4. 본인은 private API는 서드파티 라이브러리 개발자가 쓸만한 물건이 아니라 생각함
--------------------------------------------------------------------------------------------------------
먼저 TypeScript 컴파일러 API는 두 종류가 있음
1. Public API -> 서드파티 라이브러리 개발자들을 위해 깔끔하게(?) 정리된 것
2. Private API -> TS 내부 구현 코드에서만 사용되던 것
그리고 여지껏 모든 종류의 transform 기반 서드파티 라이브러리들은
Public API로 만들어와짐. 왜냐하면 Private API 자체가 외부에서 사용할 수 있게
오픈된 게 이번 PR에서 처음이거든
그런데 이미 public API 시절에도,
TS의 마이너 버전 업데이트 때마다 break change가 생기면서
(4.6.0 -> 4.7.0, 이게 마이너 업데이트)
서드파티 라이브러리 개발하던 사람들이 전부 탈주해버림
특히 TS 4.6 -> 4.7 때가 치명적이라, 이 때 서드파티 라이브러리 중
가장 유용했 typescript-is 가 런함 (typia 이전의 runtime validator)
(본인도 typia & nestia 개발하다보니,
TS의 매 마이너 업데이트 때마다
any 타입 캐스팅이 계속 추가되는 중)
typescript-is 개발자는 어느 순간부터 ts version 에 대하여 if 조건문을 작성,
any 타입 캐스팅과 함께 if (ts.version <= 4.x) (ts as any).createParameterDeclaration(...)
하드코딩으로 어떻게든 TS compiler public API의 break change에 대응해오다가
결국 탈주해버림 ㅠㅠ
그리고 이어진 4.8 때는, 무려 transform이라는 장르를 열었던
ttypescript 개발자마저 런하면서, transform 기반 서드파티 라이브러리들이
TS 최신 버전을 아예 지원 못하는 암흑기가 열림
현재 nonara 라는 사람이 대체 라이브러리 ts-patch 를 통해서
transform 생태계애 산소호흡기 하나 붙여놓은게 현실임
(다만 여전히 TS 5 지원은 못하고 있음)
--------------------------------------------------------------------------------------------------------
이 와중에 TS 5.2에서 transform을 공식 지원하겠다길래,
그나마 좀 숨통이 트이는 줄 알았음
근데 제안 내역을 보니 왠걸? public API가 아닌 private API를 기반으로 해버림
그리고 이 private API는, 무려 패치 업데이트 (4.7.3 -> 4.7.4) 단위로
break change가 생기는 무서운 놈임
그래도 저 제안이 공식화되어 TS 5.2에
private API 기반 transform 생태계가 구축될 수 있으니까
바로 당일부터 typia로 이에 대응하는 개발을 해 봄
본디 public API는 private API를 나름의 패턴으로 랩핑,
private API의 break change를 해소해주고 서드파티 라이브러리들에게
나름의 편의성을 제공해오던 wrapper 객체들의 집합임
그런데 private API 기반으로 개발을 해 보니,
내가 위에서는 public API break change 너무 잦다고 디스했지만
그조차도 엄청 선녀였다는 걸 깨닫게 됨
--------------------------------------------------------------------------------------------------------
일단 private API라고는 하지만, AST의 기본 자료구조와
일부 유틸리티 함수들만 export 되어있고
대부분의 기능들이 export 되지 아니함
그래서 private API를 통해 서드파티 라이브러리들을 개발하다보니
필연적으로 TS 소스 코드 내부를 뒤져가며, Ctrl C + V 를 남발하게 됨
게다가 타입 체킹에 관련된 메서드들이 죄 탈거당하는 바람에
간단한 기능들조차도 TS 소스 코드 뒤져가면서 그 용례를 찾아봐야하는데
문제는 각 요소들이 죄다 @internal 태그 박혀있어서, any 타입 캐스팅이 또 들어감
게다가 private API는 타입 체킹을 전적으로 비트 연산에 의존하는데,
문제가 enum 코드조차도 다시 @inernal 태그 처리되어있어서
ts.TypeFlags.X 이런식이 아니라 2116634 이런 식으로 내가 직접 쳐줘야 함 ㅋㅋㅋ
결국 private API 기반으로 typia 만들면서 내가 주로 했던 짓은 결국,
public API 래퍼 코드 참고해서 복붙해오는 것이었음
근데 다시 그 복붙 코드에는 무수한 any 타입 캐스팅 내지 하드코딩이 들어감
타입 선언이 @internal 처리되었거나, export 되지 않았으니까
예를 들어 클래스 멤버 변수에 선언된 주석을 읽어들이려면
Private API 기반에서 TS 코드를 참조하여 복붙, Public API 기능을 복원하려니
족히 수 천 줄을 복붙해와야하더만
결국 다 때려치고 걍 String.substring 하드코딩으로 떼워버림
Public API에서 private API로 전환하는동안
any 타입 캐스팅이 오만군데 박혀버림
특히 첫째 짤 구현하는데 뭔가 빡치더라
----------------------------------------------------
본인은 private API 기반으로 서드파티 라이브러리 개발해보면서
도저히 이것은 서드파티 개발자들이 쓸 수 없는 물건이라 판단내리고
이슈에서 public API 기반으로 transform 열어달라고 했던거
근데 TS 코어 개발자(jake)는 그렇게 할 경우,
성능에 악영향이 있기에 본인은 private API를 고수한다고 답변해줬고
내가 프갤에 올라왔던 짤처럼 드립을 친거임
"안전벨트를 제거하면, 연비가 상승해요"
이외에도 jake가 private API로도
얼마든지 transform 서드파티 라이브러리 개발할 수 있다 하길래
"그건 님이 TS 코어 개발자라서 가능한거 아닌가요?
내가 해보니까 죄 @internal이거나 unexported이던데?"
----------------------------------------------------
Private API 들어오면 이게 생태계가 남아날까 하는 생각도 있음
삼촌 좀 적당히좀 했으면 좋겠다 - 프로그래밍 갤러리 (dcinside.com)
윗놈은 TS 개발자를 디스했다는 거 자체를 잘못된 것인냥 몰아가면서
이후로는 오만 소설과 뇌피셜을 기반으로 아무말이나 지껄여놨음
게다가 내가 라이러리 업뎃하기 싫어요 징징~ 마인드로 무지성 디스한거마냥 써놨는데
보다시피 제안 PR 기반으로 변경 개발해서, 완성까지 다 시켜본 다음에 디스하는 거임
그리고 MS 개발자가 절대 선이나 디스 불가능의 신성한 존재도 아니고
서드파티 개발하다가 메인 노선이 불합리하다 판단되면 반대할 수도 있는거임
본인이 현재 TS 5.2 transform API에 대해서
가장 먼저 적용해 본 사람으로써 이거 쉬이 예측할 수 있음
이후로도 TS 5.2 transform API 시도하는 사람들마다, 좋은 얘기 안 나올거라는거
1. 모든 것을 TS 코어 소스 코드를 보며 복붙해오고
2. 수백 수천 곳에 any 타입 캐스팅을 박아야하는데,
3. 그게 과연 정상적인 API일까?
-
----------------------------------------------------
p.s)
Jake 개발자의 입장은
"필요한 기능이 있으면 얘기해서 추가할테니, 하나씩 알려달라".
하지만, 본인은 이 부분에 대하여 대단히 막막함
본인은 이미 private API 적용 싹 다 성공해서
다른 서드파티 개발 사정 따위 그냥 못본척 넘겨도 그만인데
그래도 뭔가 저 제안 PR 볼 때마다 찜찜하고 답답한 상황임
해당 댓글은 삭제되었습니다.
낄때껴
아니 이 미친년은 진짜 지 할말만 하네 그것도 존나 장문으로 ㅋㅋㅋㅋㅋㅋㅋ
이새끼는 오만데 다껴서 허구헌날 cim얘기만하고 있노 ㅋㅋㅋ 일기장에 써라 - dc App
ts글인데 cim얘기는 왜 함? 유동말 틀린거 없음. 낄낄빠빠하셈 - dc App
진짜 정신병이네 이거 - dc App
왤케 긁힌거냐... 유동들 한마디에 초장문의 글이 콜백되네 ㄷㄷ
응원한다 삼촌
삼촌 연봉 얼마임? - dc App
안알랴줌
한장 넘어? - dc App
프리 전환하고 한장 넘긴지 한참됨 요샌 세장 넘게 받음
니가 뭘안다고 주제넘게 껴들음 - dc App
고생이 많다
님 딱 하는거보니 Rust인재임 Rust 생태계로 가셈
안 그래도 하는 중 ㅋㅋㅋ
걍 상촌 이새끼 병신임, 위에 ㅇㅇ(117.110) 낄때껴 라고 삼촌이 댓글 보이지? 개발 남들보다 좀더 잘 하면 뭐하냐 인성이 개 쓰래기인데. 아마 이글도 반응 안좋으면 이전처럼 글삭튀 하겠지
낄때껴
그래도 결국 니가 이슈트래커 에서 메인 이슈에서 벗어나서 지랄한사실에는 변함이 없네, 일단 논의만 하고 있는데, 거기에 대고, 현재 구현체로는 지 플젝에 못써먹겠다고 징징댄 건 팩트 아님?
논의 단계니까 더더욱 미성숙 상태의 private API 하지 말자고 하는거지. 가만보면 니새끼야말로 인성 드립 치려고 어거지로 짜집기하고 있네 ㅉㅉ. 이미 구현 완료하고 거기에 피드백하는건데 어거지 소설 빌드업하느라 수고했다 ㅋㅋ
그리고 대충 댓글이나 저거 보면 알겠지만, 이 새끼 타인이 지랑 의견이 차이나면, 지만 옳다고 주장하며, 정신승리하는 놈임
"안전벨트를 제거하면, 연비가 상승해요?" 성능 향상 위해서는 어느정도 타협이 가능한 부분이라고, 사람마다 의견이 다를수 있는데, 말을 해도 꼭 저따구로 말하는 놈임. 그러면 성능이나 호환성을 위해 타입 안정성 없는 C쓰면 전부 ㅂㅅ인가?
다른 사람은 이것은 버튼을 두 번 눌러야하는 핵가방이 아닙니다 드립친다. 원래 저런 식이야, 오픈소스 한 번도 기여 안 해보고 토론/토의 참여도 안 해 봤으니 애초에 이런게 이해는 되겠니 ㅉㅉ
어느쪽으로 봐도 속사정 모르고 무지성으로 깐건 맞네 하여튼 프갤깃갤 개좆같은새끼들 많아~
삼촌이랑 ip가 참 비슷하시네요 이 아이피는 그리고 꼭 삼촌 옹호만 하시더라구요 ^^
라이브러리 함수 용도 좀 바꼈다고 이러는 거 보면 이해안됨 커뮤니티 드리븐 언어 라이브러리 개발자들의 숙명임 그냥 받아 들이셈 꼬우면 TS Core 개발자 하면 됨 Core 개발자들 입장에선 그냥 징징이들1,2일 뿐임
맞말임, api 체계 어느날 5.1 -> 5.2 마이너 업뎃이서 갑자기 뒤집히는거 x 같아도 저대로 결정나면 별 수 없음. 그 때문에 일단 구현은 해 놓아야 하는거고
이미 ts transform 생태계 다 런치고 두 명밖에 안 남은지라, 이래저래 망한거 같기는 함
일단 비추드림
이거 보고 그냥 jsdoc 쓰기로 했다
nonara ㅋㅋ중국 노나라사람인가ㅋㅋ
이런 히스토리 모르면 그냥 자기 라이브러리에 맞게 변경 해달라고 요구하는것처럼 보이기도함
삼촌님 멍석말이하는 세력이 있네요 추합니다
삼촌 아이피 118.235
댓글이랑 원본글 보고 우리나라 오픈소스 개발하는 사람 적은거 이해했다. 지능 ㅅㅌㅊ?
근데 디스하는 애들 깃헙 아이디는 까고 하는거지?
삼촌 아이피 106.101
삼촌 화이팅
삼촌 아이피 223.33
나도 공감함. 리누스 토발즈랑도 아닌거같으면 기술적으로 이야기 하는게 당연한거임. 왜 TS코어 개발자면 논리도 펴면 안됨?
와 상황보니 탈주할만하네
음해하는새끼들도 저렇게 신상까고 뭐 논리를 펼치든가... 지금으로 봐선 삼촌이 뭔 잘못했다는건지 참 ㅇㅅㄴ - dc App
깃 소개에 "The best programmer in Korea" 은 뭥미..
난 타입스크립트만 쓰고 님 라이브러리 안쓰니까 망해도 그만
쭉 읽어보니까 삼촌이 대체 잘못한게 뭐냐 그냥 아니꼽나 보네