...
- express concept directly in code
- express relations among concepts directly in code
- express independent concepts in independent code
- compose code representing concepts freely wherever the composition makes sense
- 개념을 코드에 직접적으로 반영한다
- 개념들간의 관계를 코드에 직접적으로 반영한다
- 서로 독립적인 개념들을 독립적인 코드에 반영한다
- 개념들을 나타내는 데 있어 자유롭게 코드를 구성하되, 그 구성은 언제나 타당하도록
…
I "measure" maturity primarily based on how close people got to those ideals in production code (i.e., in code suffering real-world constraints). People who use C++ primarily as "a better C" fail on the first count - they fail to use classes, class hierarchies, and parameterization (template) to express ideas and relations among ideas directly. People who insist seeing C++ as just an object-oriented language fail on the third and fourth - they construct massive hierarchies that bind unrelated concepts together through unsuitable bases and exclude built-in types and simple classes.
성숙도를 "측정"하는 데 있어 주로 제가 사용하는 방법은, 사람들이 (현실 세계의 제약 조건이 담긴) 코드를 작성할 때 위의 이상치에 얼마나 근접해있는지를 알아보는 것입니다. C++를 "더 나은 C"로써 사용하는 사람들은 첫 번째에서 걸릴 것입니다. - 이들은 클래스나 클래스 계층체, 혹은 매개변수화(템플릿)을 이용하여 아이디어 혹은 아이디어들 간의 관계를 직접적으로 표현해내는 데 실패합니다. C++를 단순히 객체 지향 언어의 관점으로밖에 보지 못하는 사람들은 세번째와 네번째에서 걸립니다. - 이들은 적절치 않은 기반 클래스 위에 묶인 서로 관계없는 개념들, 즉 육중한 계층체를 만들어내고, 내장 타입과 단순한 클래스를 배제하곤 합니다.
...
Stroustrup의 논문 'C++ in 2005'에서
개념 - 아이디어 - 를 '직접적'으로 반영, 표현한다... 이를 달리 표현하면 '코드 가독성을 높인다', 'semantic을 살린다'가 될 것이라는 생각이.. 났다. 직관적으로 알아볼 수 있는 코드.. 뭐 그런거 말이다. 이 논문에서도 여러번 그가 밝혔지만, 그래야만 개발하기가, 유지보수하기가 더욱 편해지니깐.
그의 책 "The Design and Evolution of C++"에는 C++이 어떻게 커왔는지가, 왜 그렇게 C++을 설계했는지가 담겨있다고.. 그는 광고하고 있다. 이 책이 나온지 거반 10년이 지난 지금도 거의 대부분의 내용이 유효하다고 한다. 시간이 지나면서 바뀐 것은 단지 아래의 내용 정도라고. 그토록이나 변할 것이 없는 개념을 그 당시에 써서 매우 기쁘다면서.
"I hope that X" --> "The standard says X"
움.. 역시..

Comments