1. 쉰내나는 표준과 모던한 표준의 따로 노는 조합
어떤 기능이 추가가 되면 기존 표준에서 새 기능으로 교체함으로써 편의성과 가독성이 훨씬 개선되는 경우들이 많은데,
기존꺼는 그냥 내버려두고 새것만 우겨넣음
2. 표준에서 정의한게 full feature 가 아닌 경우
OS 에 의존적인 기능들을 표준에서 지원하는 경우가 이 경우인데 광범위한 환경을 지원하기 위해서인지 메이저 OS 에 공통적으로 다 있는 것들이 표준에서는 제외된 경우가 많음.
결국 표준에서 빠진 것들을 써먹으려면 네이티브 핸들을 가져와서 어차피 OS 의존 코드를 써야하는 상황이 오게 됨. 이러면 표준 썼다가 비표준 썼다가 코드 더러워지기 십상
3. 줏대없는 API
어떤 API 는 에러코드, 어떤 API 는 예외, 파라미터의 순서 등등 가지런히 정렬된 느낌이 아님. 표준 코드끼리 묶는데도 이상한 삽질을 해야하는 경우도 있음.
1번의 영향이 큰 것 같음.
4. 표준에 채택되는 기준
사람들이 진짜 꼭 원하는 기능인데 이상하게 아직까지도 지원하지 않는 경우가 있음. 대표적으로 소켓(네트워킹)이 있음.
5. 빌드 스크립트
로우레벨 언어에서 세세한 설정을 위해 빌드 스크립트가 복잡해질 수 밖에 없는 것은 사실인데 그걸 감안해도 너무 빡셈. 빌드 스크립트 하나 부여잡고 시간 많이 갉아먹힌 갤러들도 많을 거임.
어떤 기능이 추가가 되면 기존 표준에서 새 기능으로 교체함으로써 편의성과 가독성이 훨씬 개선되는 경우들이 많은데,
기존꺼는 그냥 내버려두고 새것만 우겨넣음
2. 표준에서 정의한게 full feature 가 아닌 경우
OS 에 의존적인 기능들을 표준에서 지원하는 경우가 이 경우인데 광범위한 환경을 지원하기 위해서인지 메이저 OS 에 공통적으로 다 있는 것들이 표준에서는 제외된 경우가 많음.
결국 표준에서 빠진 것들을 써먹으려면 네이티브 핸들을 가져와서 어차피 OS 의존 코드를 써야하는 상황이 오게 됨. 이러면 표준 썼다가 비표준 썼다가 코드 더러워지기 십상
3. 줏대없는 API
어떤 API 는 에러코드, 어떤 API 는 예외, 파라미터의 순서 등등 가지런히 정렬된 느낌이 아님. 표준 코드끼리 묶는데도 이상한 삽질을 해야하는 경우도 있음.
1번의 영향이 큰 것 같음.
4. 표준에 채택되는 기준
사람들이 진짜 꼭 원하는 기능인데 이상하게 아직까지도 지원하지 않는 경우가 있음. 대표적으로 소켓(네트워킹)이 있음.
5. 빌드 스크립트
로우레벨 언어에서 세세한 설정을 위해 빌드 스크립트가 복잡해질 수 밖에 없는 것은 사실인데 그걸 감안해도 너무 빡셈. 빌드 스크립트 하나 부여잡고 시간 많이 갉아먹힌 갤러들도 많을 거임.
5번은 레알입니다. autotools, make 때문에 오픈소스 포기했읍니다
C++ 빌드 스크립트는 말이 좋아 스크립트지 그냥 컴파일러 호출 순서랑 플래그를 유연하게 짜맞춰야 하는 말도 안되는 시스템이긴 하지 포지션 비슷한 러스트 cargo 보면 진짜 이게 같은 로우레벨 언어 맞나 싶다
포기하길 잘했지 cmake, scons, gyp, ninja, meson 뭔지도 모를 것들이 계속 나옴 ㅆㅂ
10년만 숨참고 러스트 대세언어 되면 개발 다시시작해야 겠다
이거 씹 ㄹㅇ..
cargo는 진짜 잘만듬
진짜 파이썬2.0 처럼 아예 버전분리 시키면 안되는건가
그렇게 되면 레거시는 더 레거시에 갇힐 가능성이 높음
솔직히 cast가 가장 크지 않을까 입문자들 여기서 대부분 나가 떨어지는거 같던데
cast 는 연산이 아주 심하게 빡세고 정교해야될 때가 아니면 그렇게 와닿을 일이 별로 없음
SFINAE 머 이런것도 잇잔아
SFINAE 는 이미 C++ 다루는 사람들 어느정도는 적응되지 않았나? 저것들이 제일 근본적인 문제 같은데 SFINAE 없어도 프로그램을 만들 수는 있지만 저것들은 표준의 성격 그 자체라 버리고 갈 수가 없는 문제들임
2번이 모든 문제의 원인.... 5번은 cmake + 유니티 빌드 쓰면 쉽게 해결할 수 있음...
난 CMake 도 그렇게 깔끔하다고는 생각하지 않음. 물론 기존 빌드툴들에 비해서는 상당히 잘 만든 물건이기는 한데 금방금방 더러워지고 좀 필요 이상으로 verbose 하다는 느낌이 계속 들더라
C++은 만드는 곳이 여러군데임 그외 대부분의 다른 언어들은 만드는 곳이 실질적으로 한군데라서 그런 언어들과 비교하면 이상하게 느껴지는거 같음
난 1번이 좀 개선됐으면 좋겠어