러스트의 모던한 잡기능들 + 버로우/라이프타임 대법관 + 힙스터 배포관리 + IDE 학살자 프록매크로
C++의 TMP와 Concept + Variadic 지랄병 + constexpr, decltype등 컴파일타임 정신병자들 + 컴파일러와 IDE를 미친듯이 만들어내는 대기업 + 근본재단
을 합친 궁극의 언어가 나와야한다고 생각함
러스트의 모던한 잡기능들 + 버로우/라이프타임 대법관 + 힙스터 배포관리 + IDE 학살자 프록매크로
C++의 TMP와 Concept + Variadic 지랄병 + constexpr, decltype등 컴파일타임 정신병자들 + 컴파일러와 IDE를 미친듯이 만들어내는 대기업 + 근본재단
을 합친 궁극의 언어가 나와야한다고 생각함
tmp는 적폐고 컨셉은 트레잇 이미 있음 constexpr도 이미 있고 variadic은 몇년동안 아무도 제대로된 디자인을 제시못함
트레잇은 컨셉 하위호환임. constexpr은 타입레벨이 아니라 매크로레벨아님?
if constexpr 말하는거
뭔 하위 호환임 Send Sync랑 대응되는 컨셉 만들수 있음?
그건 걍 컴파일러가 특별하게 처리해주는 몇몇 trait인거지 컨셉의 주요기능인 타입레벨 연산이 아니잖음;
예를들어 어떤 trait을 impl하면 그 struct는 어떤 이름의 함수를 가지고 있는데 그함수의 리턴타입이 사이즈3이상의 튜플이어야되고 그 중에 튜플중에 int가 짝수개 있어야된다 이런건 못하잖음
그건 variadic generic이 없는게 문제지 trait 문제는 아니자나
variadic 뺀다고 하더라도 그 함수의 리턴타입이 int나 float 중에 하나이고, int 일 경우에는 3번째 파라미터가 스트링이어야된다 이런것도 못하잖음
몇번째 인자 이것도 variadic이 없어서 못만드는거임 리턴타입 제약거는거는 trait로도 못할거없음
함수 f나 g중에 하나만 있어야되고 둘다 없어도 h가 있으면된다 이거는?
거기까지 들어가면 그냥 언어 철학 차이임 러스트는 같은 시그니쳐의 f 함수라도 구현 블록에 따라 모두 다른 의미를 가지는데 컨셉으로 그걸 표현할수 있음?
그러니까 둘을 합치자는게 글의 요지임;
결론은 저는 갓스켈 타입 클래스 냅두고 왜 이상한거 예토전생 하자는건지 모르겠음
내가 좀 과민반응하는게 러스트 모던기능의 핵심이 타입 클래스에서 나온 트레잇인데 그걸 TMP로 바꾼다고 하니까 그럼 그거 갈아치우면 그냥 C++ with borrow checker임
좋은데? - return 0;
ㄹㅇ 좋은데
좋은데?
나올수 없는 걸로 좋은데 해봐야
와 콘셉트가 그런 게 된다고? 갓 기능이었구만...
두마리토끼를 잡으려던 시도는 대부분 실패로돌아갔..
궁극의 언어 = 하스켈
이왕에 하스켈 타입 시스템도 박아넣는걸로 하자