C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[6755] 웬 태클입니까
박지훈.임프 [cbuilder] 1637 읽음    2003-02-07 08:20
박정모님께 쓴 글에 김백일님이, 김백일님께 쓴 글에 박정모님이...
도대체 어쩌란 말입니까.

그리고 저더러 글을 지우라 말라는 얘기는 또 뭡니까?
뭘 어쩌자고 그런 말을 쓰시는지요.

박정모님께 한 말이 아니라 김백일님에게 쓴 글입니다.
박정모님이 지우라어쩌라 할 계제가 아니라고 보는데요.
다시 한번 말하지만, 박정모님께 쓴 글이 아닙니다.
박정모님께 리플을 썼다면 박정모님의 글에 리플을 달았을 겁니다.

박정모님은 "C++은 C++ 스타일로 코딩해야 한다"라고 믿는 모양이신데.
뭐라고 말씀하시든 제 생각은 아니올시다입니다.

C없이는 C++도 없습니다. 누가 뭐라고 하든 C++은 C의 기반 위에 만들어진 것입니다.
단순히 기반으로만 삼은 것이 아니라 철저히 C가 닦아놓은 길을 이용했습니다.
스트로스트럽 스스로가 "C를 개선한 데다가 OOP를 추가했다"고 말합니다.
C++은 OOP 지상구현을 위해 설계한 것이 아니라는 말입니다.

다시 말해서, C++을 클래스같은 것은 전혀 쓰지 않고 단순히 C로만 이용하더라도 그것이 C++이
아니라고 말할 수는 없다는 겁니다. 그렇게 말한다면 그사람이 스스로 C++을 모른다고 말하는 것과
같으며, C를 철저히 지원하느라 OOP 이론의 측면에서 일부 덜떨어지는 C++을 왜 쓰느냐고 되묻고
싶습니다.

다중상속을 지원하는 유일한 언어가 C++이든 템플릿이 어쨌든, C++에서 그런 모든 것보다 훨씬 더
중요한 것이 C라는 뿌리라는 사실을 개발자들은 종종 간과합니다.
아닐 거 같은가요? C다운 강력한 포인터와 때로는 지저분해보이기까지 하는 C스러운 축약형 표현들이
삭제된다면, 템플릿과 다중상속에도 불구하고 C++을 쓰는 사람은 대폭 줄어들 것이 뻔합니다.
대부분의 개발자들에게 C++의 매력의 근본은 템플릿이나 다중상속이 아니기 때문입니다.

거꾸로 말해볼까요?
이 포럼에서, 템플릿과 다중상속 없이는 C++ 포기하겠다는 사람이 많을까요, 아니면
포인터와 C의 지저분한 축약형 표현이 없이는 C++ 포기하겠다는 사람이 많을까요?

다시 예를 들어봅시다.
초창기부터 지금까지 C++이 성공한 것은 템플릿과 다중상속때문입니까 아니면 C언어를 충실하게
지원했기 때문입니까? 템플릿의 경우, 재작년이었던가 표준안이 나온 이후로 최근 들어 급속히
인기를 끌고 있는 것은 사실이지만, 적어도 지금까지 C++이 한세대를 풍미했던 비결은 템플릿은
아니었습니다. 그럼 다중상속입니까? 더더욱 아닙니다.

다중상속, 왜 만들었는지 모르겠다고 하지 않았습니다. 쓸모없다고 하지 않았습니다.
간단히 요약하면, 다중상속에는 개발에 적용하는 데 있어 전반적인 오버헤드가 있다고 한 것입니다.
박정모님이 다중상속이 꼭 필요하다고 생각하시든 아니시든 그건 박정모님의 자유입니다.
하지만 다중상속이 처음 C++에 추가되던 89년이었던가부터 이미 필요하냐 아니냐가 논란의 핵심이었습니다.
그 논란이 있었던 사실 자체가, 설혹 다중상속이 필요하다고 하더라도 박정모님이 말씀하시는 것처럼
꼭 필요한 정도는 아니라는 것을 반증하는 것이라고 생각하지 않으십니까?

다중상속과 템플릿 같은 기능들은 C++언어의 초기 설계부터 있던 것이 아니라 한참 진행되고 난 후에
추가된 기능들입니다. 물론 스트로스트럽도 이것들이 없으면 C++은 완전하지 않다고 말합니다.
하지만 그 스스로가 C++의 C 호환성이 설계의 핵심이었다고 말하고 있습니다. 그리고 다중상속과
템플릿이 제대로 형태도 잡히기 전에 이미 C++은 눈부시게 성장하고 있었습니다.
그는 C 호환성 부분을 싫어한다고 말하지만, 그것이 C++의 성공에 결정적이었다는 것을 인정합니다.
(그리고 그런 호환성을 전혀 가지지 못하는 C#이 C++의 후계자가 될 수 없는 것도 당연합니다.)

다중상속의 복잡한 오버헤드를 고려하면, 거의 대부분의 경우 단일상속이 더 좋은 대안입니다.
클래스 상속 구조에 목숨 걸고 집착하지 않는다면 말입니다.
처음 쓰셨던 글을 보면 다중상속을 안해서 멤버함수를 다시 만들고 하는 것이 노가다라고 하셨는데,
단지 그 때문이라면 다중상속의 오버헤드는 훨씬 더 큽니다. Effective C++에서 다중상속에 대해
찾아보십시오.

다중상속에 대한 논란은 아직도 계속되고 있습니다. 하지만 지금까지 박정모님을 제외한 누구도
다중상속이 불가피하게 꼭 필요한 것이라고 주장한 것을 들어보지는 못했으며, 다중상속을 피할 방법은 얼마든지 있습니다.

C++을 OOP의 현실적인 결정체로 보시는 분들이 많다는 거 잘 알고 있습니다.
그렇게 생각하시든 말든 그또한 C++다운 자유의 범주에 속할 문제니까 맘대로 생각하시면 됩니다.

그리고 제 생각은 또 다릅니다.
제 생각에는 C++은 OOP의 결정체가 아니라 코딩에서의 선택의 자유의 결정체입니다.
제게 지우라 고치라 하면서 박정모님의 생각을 강요하지 마십시오.



박정모 님이 쓰신 글 :
:
:
: 다중상속이 c++언어의 핵심입니까? 아닙니다. c++ 만이 유일하게 지원하는 막강한
: 기능입니다.
:
: "delph에서 다중상속을 지원하지 않아서 너무 코딩하기 어렵다. c++ 빤히 아는사람이
: c로 oop아닌 코딩해야할 때, oop가 제공하는 사고의 편리함과 간결함이 정말 그리운
: 것과 비슷하게 - 그것보다는 못하지만 - 불편하다. 이건 정말 노가다다."
:
: 라고 말하고 있는 겁니다. 있어야 할 기능이 없어서 아니, 이게 있음 얼마나 편하게
: 작업할 수 있는데 왜 지원을 안해주나 혼자 중얼중얼 하는겁니다.
:
: 대부분의 c++ 개발자가 다중상속을 이용 않는다구요? 제가 c++ 프로그래밍 한참 하던때
: 다른 c++ 프로그래머들이
:
: "대부분의 c++프로그래머는 c 스타일로 코딩한다. c++ 왜 만들었는지 모르겠다."
:
: 라고 말하는 것과 비슷한 경우라고 생각합니다.
:
: 다중상속은 꼭 필요합니다.
:
: 임프님과 마찬가지로 저 역시 97년 델파이로 넘어오고 나서 새로운 c++ 문법을 공부하거나
: 시대의 흐름을 따라갈 기회가 없었습니다. 그래서 최근의 c++ 다중상속이 제가 알고 있던
: 모습과 어떻게 다른지 모르고 있습니다.
:
: -------------------------------------------------------------------------------------
: : 제가 이전 글에서나 지금 말하는 것은, 다중상속이 전혀 쓸모가 없다든지 쓰지 말자는 얘기가 아닙니다.
: : '죽은 기능이나 마찬가지'라고 한 말은 C++ 개발자에게 쓰지 말라고 한 것이 아니라 다중상속을 부러워하는
: : 델파이 개발자에게 한 말이지요. (역시.. 좀 과장스러웠다는 점은 인정합니다.)
: -------------------------------------------------------------------------------------
:
: 이 부분은 굉장히 거슬립니다. 수정하거나 지워 주셨으면 감사하겠습니다.
:
:

+ -

관련 글 리스트
6730 으아아아... 미치겠다. 델파이는 왜 ??!!?? 박정모 2198 2003/02/05
6765     인터페이스의 다중상속에 대해서.. 어린왕자A 3525 2003/02/08
6742     Re:으아아아... 미치겠다. 델파이는 왜 ??!!?? 박지훈.임프 2443 2003/02/06
6749         Re:Re: 아닙니다! 김백일.cedar 1790 2003/02/06
6756             Re:Re:Re: 두분의 말이 모두 맞는 말씀입니다. 그러나... 남병철.레조 1666 2003/02/07
6752             C++... 박지훈.임프 1889 2003/02/07
6754                 박정모의 의견 & 태클 입니다. 박정모 2639 2003/02/07
6763                     Re:다중상속.. ?? 김윤동.제라툴 2140 2003/02/08
6758                     Re: 우선은 ... ㅡㅡa h1800.영화 1370 2003/02/07
6755                     웬 태클입니까 박지훈.임프 1637 2003/02/07
6744         그렇습니까? ... ㅠ.ㅠa 박정모 1621 2003/02/06
6747             PS1,2에 대한 답변입니다. 김백일.cedar 1699 2003/02/06
6748                 class implementation 은 인터페이스의 구현을 지적한 말이었습니다. (냉무) 박정모 2125 2003/02/06
6750                     그러니까 인터페이스 상속이란, 인터페이스만 동일하고 구현은 별도로 해야 한다는 뜻이죠.(냉무) 김백일.cedar 3304 2003/02/06
6751                         interface상속은 구현이 반드시 제공되야 하며, interface는 객체의 메모리 매핑이기도 합니다.(냉무) 박정모 2210 2003/02/06
6739     Re:으아아아... 미치겠다. 델파이는 왜 ??!!?? 정재필 1857 2003/02/06
6732     다중상속이 안되어서 불편한게 어떤 것인가요 ? civilian 1883 2003/02/05
6745         Re:다중상속이 안되어서 불편한게 어떤 것인가요 ? 김백일.cedar 1568 2003/02/06
6746             Re:Re:다중상속이 안되어서 불편한게 어떤 것인가요 ? civilian 1873 2003/02/06
6737         예를 들어 드리려고 이것저것 찾아봤지만... ㅠ.ㅠ 박정모 1614 2003/02/05
6731     이럴땐 정말 C++ builder 쓰고 싶은 마음이 굴뚝 같습니다. 박정모 1731 2003/02/05
6734         궁금한게 있는데요 왜 C++ 빌더로 하면 범용성이 떨어지는지.. 박주현 1599 2003/02/05
6735             음~ 제가 말한 "범용성"이란... 박정모 2160 2003/02/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.