영향력있는 사람들의 OOP에 대한 평가들.

프로그래밍 일반에 관한 포럼입니다.

Moderator: 류광

Locked
biablo
Posts: 222
Joined: 2006-12-08 14:39

영향력있는 사람들의 OOP에 대한 평가들.

Post by biablo »

C++의 OOP가 실패했다고 의심하던 중에 영향력있는 사람들의 평가를 얻었습니다.

1.Richard Stallman wrote in 1995, "Adding OOP to Emacs is not clearly an improvement; I used OOP when working on the Lisp Machine window systems, and I disagree with the usual view that it is a superior way to program."[8]

2.A study by Potok et al. [9] has shown no significant difference in productivity between OOP and procedural approaches.

3.Christopher J. Date stated that critical comparison of OOP to other technologies, relational in particular, is difficult because of lack of an agreed-upon and rigorous definition of OOP.[10]

4.Alexander Stepanov suggested that OOP provides a mathematically-limited viewpoint and called it, "almost as much of a hoax as Artificial Intelligence" (possibly referring to the Artificial Intelligence projects and marketing of the 1980s that are sometimes viewed as overzealous in retrospect)[11][12].

5.Edsger W. Dijkstra wrote:
... what society overwhelmingly asks for is snake oil. Of course, the snake oil has the most impressive names —otherwise you would be selling nothing— like "Structured Analysis and Design", "Software Engineering", "Maturity Models", "Management Information Systems", "Integrated Project Support Environments" "Object Orientation" and "Business Process Re-engineering" (the latter three being known as IPSE, OO and BPR, respectively)." — EWD 1175: The strengths of the academic enterprise


4번의 Alexander Stepanov는 STL을 만든 사람중 한명입니다.
만약에 C++이 C++이라는 이름을 가지지 않았다면 우리는 다른 C의 변종 (예 : Objective-C)를 공부하고 있지
않을까요?
C++의 OOP는 엉망이라고 생각합니다. 동의하시는 분 계세요?
Last edited by biablo on 2008-03-31 23:06, edited 1 time in total.
비회원

다중상속의 개념이 근래에 와서는 쓰잘데기 없다는 의견들이 있습니다.

Post by 비회원 »

다중상속의 개념이 <개념상으로는> 아주 멋지고 쿨한 것들이지만..
실제로는 구현의 까다로움과, 실제로는 오히려 객체화를 해친다는 측면과
객체간의 종속관계를 억지로 조장하는 측면이 있어서
객체의 설계를 더 모호하게 만든다면서 근래에는 다중상속을 C++에 추가한 것은 좋은 판단이 아니라는
견해들이 있더군요.
주로.. Objective-C 유저그룹에서 이런 말을 많이하죠..
저도 양 언어를 다 사용해 본바. 설계/코드직관성/유지보수 모두 Objective-C의 손을 들어주고 싶습니다.
비회원

.

Post by 비회원 »

C#에 있는 interface라는 개념을 도입하면 다중상속 문제를 해결할 것 같은데..
nikola2
Posts: 886
Joined: 2005-07-12 01:19
Location: (주) 신규 소프트

Post by nikola2 »

글상으로는 OOP가 실패한 것이라고 얘기되어지는건지, C++이 OOP를 소화하는데 실패한 것이라고 얘기하는건지 아직도 구분을 못했습니다..

사실상 '실제 예'를 들어서 어느 부분이 적합하지 않은지 조목조목 살펴보게 되면 더 유익하겠습니다....

'다중상속'은 c++에서는 필수가 아니라 선택의 문제라고 여기기에...
그것으로, c++이 까일것은 아니라고 생각하구요....
집사람이 국력이다...
비회원

Post by 비회원 »

적어놓으신 인용문구에는 어디에도 C++에 대한 지적이 없는데 OO에 대한 얘기에서 갑자기
C++로 확장해석하는데는 좀 무리가 있는듯 싶습니다.
( 특히 5번의 다익스트라의 얘기는 앞뒤 얘기도 궁금해집니다..snake oil(만병통치약)처럼 떠든다. 는 식으로 얘기하는 것으로 봐서는 굳이 특정기술만을 얘기하기 보단 어떤 세태에 대한 비판한게 아닌가 싶구요...)

다중상속이 문제가 많다. ( 특히 구현의 어려움 )는 것은 다들 알고 있고, 실제로 쓰는 사람도 거의 없죠.
(저도 6년간 밥벌어먹으면서 써본적이 없네요... ) 하지만 C++에서 다중상속을 반드시 써야하는 이유도 없고,
안쓴다고 피해보는것도 없습니다..인터페이스식의 다중상속도 지원되구요.~
비회원

저도 C++에서 있었으면 하는것...

Post by 비회원 »

저도 C++ 에서 다중상속이 제거되고 인터페이스가 추가되었으면 하는 소망이 있습니다.
C++로 인터페이스를 구성할 경우 점점 거대해 지는 인터페이스를 피할 수가 없습니다.
다중상속은 좋은 개념이긴 한데, 실제로 쓰이는것을 보면 부모 자식관계로 쓰이는것이
아니라 클래스 합성에 주로 쓰이더군요. 음.. 엄마 아빠가 만나 두명의 특질을 가진 클래스
가 태어난 것이다라고 해석한다면 할말이 없지만 말입니다.^^
biablo
Posts: 222
Joined: 2006-12-08 14:39

OOP가 실패한 패러다임이면 C++안에 있는 것도 마찮가지겠죠.

Post by biablo »

적어놓으신 인용문구에는 어디에도 C++에 대한 지적이 없는데 OO에 대한 얘기에서 갑자기
C++로 확장해석하는데는 좀 무리가 있는듯 싶습니다.
OOP가 실패한 패러다임이면 역시 C++에서 지원하는 OOP도 실패한 패러다임이지 않을까요?

C++을 주창한 비야네스트롭스트룹씨도 C++이 다중 패러다임언어지 OOP패러다임 중심적인 언어는 아니라고
하지 않습니까? (The C++ Programming Language에서요.)

참고로 제가 쓴 맨 위의 글은 wikipedia에서 OOP로 검색했을 때 나오는 critisism입니다.
비회원

Post by 비회원 »

C++의 OOP가 왜 엉망이라고 하시는지 알아야 동의를 하든지 말든지 하죠.
zupet
Posts: 2764
Joined: 2003-05-13 03:34
Location: NCSOFT LE팀

Post by zupet »

안녕하세요. 매크로 없는 메비~랍니다.

언제 발언인지도 중요합니다. 80년대부터 연구되어 90년대 초부터 일반적으로 쓰여진 것으로 알고 있습니다만 80년대말부터 90년대 초까지 OO 에 대해 기술한 전문 서적들을 보면 그 용도와 방향성이 난해하기 그지 없습니다. 단어 그대로 만병 통치약 같은 느낌으로 90년대 한창 떠들던 'OO DB' 같이 무엇인가 대단한 것이며 언젠가는 모든 것을 해결할 것 같이 표현되고 있죠.

그에 비해 90년대 중반을 넘어서면서 2000년으로 넘어오면서 적절한 용도와 사용법이 제시되기 시작했다고 생각합니다. Design Pattern 도 94년 가을에 나왔고 전공 서적들에서도 뜬구름 잡던 내용보다 좀더 실용적인 면에서의 OO 를 언급하기 시작 했으니까요.

어떤 언어가 C++ 보다 나은 OO를 갖고 있는지 모르겠지만 C++은 OO 에서 요구하는 대부분의 기능을 포함하고 있습니다. C++ 의 목적이 C + Object 가 아닌 C 언어에 더해서 다양한 기능성을 부가한 언어인 만큼 C++ 를 OO 언어 만으로만 평가하는건 무리가 있죠. 앞에서 Alexander Stepanov 가 OO 에 대해 '깠던 것'은 C++을 깐 것이 아니라 Generic Language 를 신봉하는 사람으로서 OO 적인 표현과 OO 자체를 깠던 것이라 생각됩니다.

OO 도 그렇지만 모든 기법, 기술, 개념에는 장단점이 있습니다. 20세기는 여러 이데올로기가 싸웠었지만 결과적으로 민주주의+자본주의 시스템이 수정을 거치며 성공했듯이 마지막에 인정받는 것은 다수가 사용하고 세계를 지배하는 녀석 뿐입니다. LISP 같은 언어로 무척이나 멋진 결과물을 내는 사람들도 있지만 한두사람이 멋진 결과물을 내고 좋은 평을 내준다고 세계가 따라와주진 않는 법이죠.

사실.. C++ 같이 어려운 언어가 주류 언어로 되어버린건 좀 골치아프죠. -_-a
비회원

Post by 비회원 »

The C++ Programming Language 책을 읽어 봤다면 , 이런 불필요한 이야기를 할 필요가 없었을텐데요

다중 패러다임 언어입니다

OOP를 쓰고 싶으면 쓰는거고 아니면 마는겁니다

The C++ Programming Language 에서 강조하는건 C++ 이 OOP가 아니라

쓸수 있는 수많은 방법중 하나가 OOP라고 강조합니다


물론 핵심적인 기능중 하나임에는 분명하지만 ,


선택할수 있는것중 하나인 OOP의 또 하나의 선택인 , 다중 상속을 가지고 이런 이야기를

한다는게 좀 아이러니 하네요
Hybrid
Posts: 223
Joined: 2006-12-30 23:39
Contact:

Post by Hybrid »

바로 위 비회원님과 biablo 님 말씀에 보태면...
C++ 은 공식적으로 (C++ 만든 사람 말에 의하면) C++ 에서 OOP 는 "지원 가능" 할 뿐입니다. OOP 를 강제하지 않습니다. 그렇기 때문에 여러 제약사항이 없는 것인데, 그걸 가지고 C++ 탓을 하는것은 옳지 못하다고 생각합니다.

위에서도 나온 얘기지만, 본문은 C++ 의 OOP 가 아닌 그냥 OOP 에 대한 말을 하는데, 왜 C++ 의 OOP가 질타를 받아야 되는지가 첫번째 궁금증이구요. 위의 글들의 출처를 적어주셔야지 저렇게 일부분만 불펌해서는 안된다고 생각합니다.

다시 C++ 로 초점을 맞추면, 쓰레드 여신 분께서 왜 C++ 의 OOP 가 엉망이라고 생각하시는지좀 알고 싶습니다. 설마 OOP 를 강제하지 않기 때문에 엉망이라고 생각하시는건 아니라고 믿고싶습니다.

참고로 stroustrup 의 OOP의 입장이 Is C++ an Object-Oriented language? 라는 FAQ 에 있습니다.
C++ is a multi-paradigm programming language that supports Object-Oriented and other useful styles of programming. . If what you are looking for is something that forces you to do things in exactly one way, C++ isn't it.
출처 : http://www.research.att.com/~bs/bs_faq. ... d-language
Imagination is more important than knowledge - Albert Einstein
비회원

.

Post by 비회원 »

c++ 과 c#을 써보고 제가 느낀 가장큰 차이점이라면
컨텐츠를 만들기 위해서 내가 해야할일이었습니다.

c++은 stl 을 제외하곤 제공되는 기반 라이브러리가 턱없이 부족하고
그마저 표준도 아닙니다. 난 알아도 다른이는 모릅니다.(ex: boost )

다중패러다임 언어라는건 oop와 c를 섞어서 쓸수 있다는 말도 되지만
다른말로 하면
완전 짬뽕이란뜻입니다. 다중패러다임이 장점이자 단점인셈입니다.
어느하나 적극적인 지원이 부족할뿐입니다.
손으로 다 만들어야 합니다.
개발자가 10명이면 같은 기능을 하는10개의 라이브러리가 만들어집니다.
매우 비효율적입니다.

바꿔말해서
개발자의 능력에 따라 안정성과 성능이 천차만별이 될수있단 의미입니다.
그렇게 되다보니 자신이 이미 만들어 놓은 도구가 없으면
새로이 작업하기위한 기반작업 시간이 너무 많이 소요될수도 있습니다.
그렇게 되다보니 무언가 새로이 도전하기엔 너무 이른 피로감에
머릿속으로만 코딩하고 끝나기도 하네요.

c#은 단점으로 모두 속도를 꼽지만
제가 보기엔 눈에 보이는 렌더링 관련속도가 페널티가 되는 기간은
이제 곧 얼마 남지 않은듯보입니다.

그것을 제외하곤 닷넷프레임워크가 널리 퍼지지않았다는건데
이것또한 시간문제에 불과한것같구요
directx역시 초기에 이런 비판에 직면했었지만
directx플랫폼이 널리 사용된 이후로는
일반유져들이 인식하기를 왜 쓰이는지는
몰라도 당연히 있어야 하는것으로 인식하고있습니다.
그런 연유로 닷넷프레임워크 또한 큰걸림돌로 보기엔 어려울듯 합니다.
Hybrid
Posts: 223
Joined: 2006-12-30 23:39
Contact:

Re: .

Post by Hybrid »

비회원 wrote:c++ 과 c#을 써보고 제가 느낀 가장큰 차이점이라면
컨텐츠를 만들기 위해서 내가 해야할일이었습니다.
그럼 제공 라이브러리의 분량과 OOP 와 어떤 관계가 있는지 설명 좀 해주세요.
내가 해야할 일이 많으면 OOP 를 안지킨거고, 내가 해야할 일이 적으면 OOP 를 잘 지킨걸까요?
이건 전혀 별개의 문제지, C++ 의 OOP 를 걸고 넘어갈 문제가 아닙니다.
Imagination is more important than knowledge - Albert Einstein
비회원

Re: .

Post by 비회원 »

Hybrid wrote:
비회원 wrote:c++ 과 c#을 써보고 제가 느낀 가장큰 차이점이라면
컨텐츠를 만들기 위해서 내가 해야할일이었습니다.
그럼 제공 라이브러리의 분량과 OOP 와 어떤 관계가 있는지 설명 좀 해주세요.
내가 해야할 일이 많으면 OOP 를 안지킨거고, 내가 해야할 일이 적으면 OOP 를 잘 지킨걸까요?
이건 전혀 별개의 문제지, C++ 의 OOP 를 걸고 넘어갈 문제가 아닙니다.
저분은 완전히 잘못 집으신거 같은데요

라이브러리 양으로 따지자면 C/C++ 관련 라이브러리는 C#과 비교도 안되게 많습니다

공식적인 표준라이브러리 말고도 , 수많은 커뮤니티와 , C#에서는 꿈도 못꾸는 플레폼용 라이브러리등등

엄청나죠


단지 웹같은 쪽이나 , C++ 과 원래 컨셉이 맞지 않은 분야에서 (네이티브 컴파일이 비효율적인 분야)
사용하려니까 , 불편하고 그에 관련된 라이브러리가 부족한겁니다

C++ 이 만능은 아니거든요


각각의 용도에 맞는 도구만 있을뿐 , 희안한 논리로 실패작 운운 자체가 넌세스입니다
biablo
Posts: 222
Joined: 2006-12-08 14:39

제가 OOP가 실패한 패러다임이라고 의심하게 된 이유.

Post by biablo »

C++의 OOP가 실패했다고 하는 이유는 "소프트웨어 개발의 지혜"같은 책을 본다 하더라도 OOP를 잘 사용하는

방법이 여전히 모호하다는 것입니다.

여기서 잘 이라는 의미는 "생산성있게, 유지보수가 편리하게, 코드분석이 쉽게" 라고 볼 수 있겠지요.

그리고 하필 왜 C++을 골라서 지적했느냐면 가장 OOP개념을 많이 도입해서 프로그래밍하는 언어가

대표적으로 C++이기 때문입니다.

제가 염두에 두고 있는 것은 "OOP에 대한 기대를 줄여야 한다."는 것입니다.

어쩌면 C++로 프로그래밍을 하지 않게 되는 것이 일반화되는 것을 감히 상상해 봅니다.

아마도 1980년대 초반 C프로그래머들이 그러지 않았을까 싶습니다.
nikola2
Posts: 886
Joined: 2005-07-12 01:19
Location: (주) 신규 소프트

Re: 제가 OOP가 실패한 패러다임이라고 의심하게 된 이유.

Post by nikola2 »

biablo wrote:C++의 OOP가 실패했다고 하는 이유는 "소프트웨어 개발의 지혜"같은 책을 본다 하더라도 OOP를 잘 사용하는

방법이 여전히 모호하다는 것입니다.

여기서 잘 이라는 의미는 "생산성있게, 유지보수가 편리하게, 코드분석이 쉽게" 라고 볼 수 있겠지요.

그리고 하필 왜 C++을 골라서 지적했느냐면 가장 OOP개념을 많이 도입해서 프로그래밍하는 언어가

대표적으로 C++이기 때문입니다.

제가 염두에 두고 있는 것은 "OOP에 대한 기대를 줄여야 한다."는 것입니다.

어쩌면 C++로 프로그래밍을 하지 않게 되는 것이 일반화되는 것을 감히 상상해 봅니다.

아마도 1980년대 초반 C프로그래머들이 그러지 않았을까 싶습니다.
음.... 레퍼런스의 내용을 토대로 말씀하셨는데..... 체감상 동의가 가려면 역시 실제 예가 필요할것 같습니다..
생산성,유지보수,코드분석 모두 실제 예를 근거로 해서, OOP스타일과 OOP아닌 스타일을 비교하질 않으면...
너무 추상적인 수준에서 주장/반론이 거듭될것 같네요.....(코드수준의 예를 들면 제일 좋을것 같은데요...)
집사람이 국력이다...
myevan
Posts: 1314
Joined: 2003-03-04 10:21
Contact:

Post by myevan »

biablo wrote:C++의 OOP가 실패했다고 하는 이유는 "소프트웨어 개발의 지혜"같은 책을 본다 하더라도 OOP를 잘 사용하는

방법이 여전히 모호하다는 것입니다.

여기서 잘 이라는 의미는 "생산성있게, 유지보수가 편리하게, 코드분석이 쉽게" 라고 볼 수 있겠지요.

그리고 하필 왜 C++을 골라서 지적했느냐면 가장 OOP개념을 많이 도입해서 프로그래밍하는 언어가

대표적으로 C++이기 때문입니다.

제가 염두에 두고 있는 것은 "OOP에 대한 기대를 줄여야 한다."는 것입니다.

어쩌면 C++로 프로그래밍을 하지 않게 되는 것이 일반화되는 것을 감히 상상해 봅니다.

아마도 1980년대 초반 C프로그래머들이 그러지 않았을까 싶습니다.
일단 많이 사용되는 프로그래밍 언어 순위를 보겠습니다.
http://www.tiobe.com/index.php/content/ ... index.html
1위 Java
2위 C
3위 (Visual)Basic
4위 PHP
5위 C++
6위 Perl
7위 Python
8위 C#
9위 Delphi
10위 Ruby
11위 JavaScript
...
20위 Lua
위의 언어 대부분이 OOP 패러다임을 채택하고 있습니다. (확실하게 OOP 를 언어적으로 채택안한건 C정도일까요... )

이중 Java 정도가 (C++은 비교도 안되는)골수 OOP 언어이고
Basic, PHP, Python, Ruby 등은 C++ 처럼 다중 패러다임 언어입니다.

여기서 중요하게 보실점은
Python, Ruby, Lua 처럼 비교적 최근에 등장한 언어들이
모두 OOP 개념을 가지고 있다는 점입니다.
OOP가 실패한 패러다임이라면 채택하지 않았겠죠 ~(-_-)~

-----------------------

1. "OOP에 대한 기대를 줄여야 한다." 하는 말은 맞습니다.
하지만 이말은 OOP 가 만능일거라는 기대를 버리라는 것이지
OOP 가 실패해기 때문에 그러라는 것은 아닙니다.

-----------------------

2. C++ 로 프로그래밍하는 것이 일반화되지 않게 된것은 오래되었습니다.

위의 순위를 보시는 것처럼 Java 가 짱먹은지는 꽤 오래됐습니다 ~(-_-)~

최악의 조건에서 풍부한 라이브러리를 가지고 돌아가는 c언어도 아직 쌩쌩하죠.

웹의 시대가 열리면서 ASP(Basic), PHP, JavaScript 3형제의 기세가 상당히 올라갔으며

다목적 스크립트로는 perl 과 python 이 장악했습니다.

그러므로 C++ 이 OOP 언어 를 대표한다고 보는것은 현재 게임 프로그래밍이라는 범위안에서만 유효합니다.

-----------------------

3. 게임과 OOP

결론부터 이야기하면 게임 프로그래밍에서 OOP의 영향력은 절대적입니다.

게임은 크게 'UI' 와 '게임' 두가지로 나누어집니다.

UI 는 전통적으로 OOP 의 텃밭입니다.

게임의 주요 구성요소 (배경/캐릭터/아이템/이펙트) 등 역시
OOP 방식으로 프로그래밍할때 가장 관리하기 쉽습니다.

다만 C++ 의 메모리 관리와 이벤트 처리가 어렵다는 점에서 언어적 차원의 한계를 가지고 있을뿐입니다.
이런 요소들은 python, ruby, lua, c# 등을 도입해서 해결할 수 있습니다.
(이들 언어를 사용할때도 oop 를 사용해서 해결하죠 ~(-_-)~ )


ps. 최근 언어 패러다임은 '필요한 상황에 적절한 언어를 (없다면 만들어서)사용하자' 입니다 ~(-_-)~
빗자루네 http://www.myevan.net >_<b
Hybrid
Posts: 223
Joined: 2006-12-30 23:39
Contact:

Re: 제가 OOP가 실패한 패러다임이라고 의심하게 된 이유.

Post by Hybrid »

biablo wrote:C++의 OOP가 실패했다고 하는 이유는 "소프트웨어 개발의 지혜"같은 책을 본다 하더라도 OOP를 잘 사용하는

방법이 여전히 모호하다는 것입니다.

여기서 잘 이라는 의미는 "생산성있게, 유지보수가 편리하게, 코드분석이 쉽게" 라고 볼 수 있겠지요.

그리고 하필 왜 C++을 골라서 지적했느냐면 가장 OOP개념을 많이 도입해서 프로그래밍하는 언어가

대표적으로 C++이기 때문입니다.

제가 염두에 두고 있는 것은 "OOP에 대한 기대를 줄여야 한다."는 것입니다.

어쩌면 C++로 프로그래밍을 하지 않게 되는 것이 일반화되는 것을 감히 상상해 봅니다.

아마도 1980년대 초반 C프로그래머들이 그러지 않았을까 싶습니다.
OOP 의 문제점을 지적하는 것과 C++ 의 OOP 의 문제점을 지적하는 것은 다릅니다.
제가 보기에는 처음 쓰레드를 여신분은 본문을 보면 OOP 라는 것이 C++ 에만 있는걸로 잘못 알고 계신거 같습니다.
biablo wrote:가장 OOP개념을 많이 도입해서 프로그래밍하는 언어가 대표적으로 C++이기 때문입니다.
왜 이런 말씀을 하셨는지는 잘 이해가 되지 않습니다. C++ 은 OOP 를 지원하는 언어일뿐, Java 같은 언어가 훨씬 더 OOP 를 잘 지원합니다. (그 외에도 더 잘 지원하는 다른 언어들도 많구요.)
C++ 은 오히려 OOP 에 너무 벗어났다고 지적당할 수 있을지는 모르겠지만 (물론 그에 대한 반론은 제가 위에 써둔 FAQ 로 대신할 수 있습니다.) C++ 이 OOP 의 개념을 가장 많이 도입했다는 의견은 처음 듣습니다. 또 그렇기 때문에 OOP 에 대한 비난이 C++ 로 가는 것도 이해할 수가 없구요.

제가 biablo 님의 글을 뭔가 잘못 이해하고 있다면 지적해주시기 바랍니다.
Imagination is more important than knowledge - Albert Einstein
xevious7
Posts: 175
Joined: 2006-03-30 17:31
Contact:

C++은 많이 사용되고 있는 언어들 중에 하나일뿐..

Post by xevious7 »

안녕하세요 .

제가 하고 싶은 이야기를 자루님이 다 해주셔서 :)

추가적으로 말씀 드리자면 , 전산학(Computer Science)라는 것은 What's truth? 를 찾는 학문이라기보단
How to? 를 찾는 학문이기 때문에 , 정답은 없다라는 것입니다.

그래서 언어와 개발툴 OS에 대한 논쟁은 어찌보면 돌고도는 이야기가 될 수 있습니다.

무슨 언어 프로그래머 이기전에 (C프로그래머 , C++프로그래머) 그냥 프로그래머가 되는것이
좋은것이 아닐까 생각합니다.

언어는 프로그래머가 선택하는 것이니까요 :)

http://www.xevious7.com/285
imays
Posts: 1044
Joined: 2003-02-18 10:29
Contact:

저의 생각

Post by imays »

= C++의 OOP는 엉망이다? =

객체지향 언어와 C++을 동일시하는 것은 저도 반대에 한표입니다. C++은 C에다 객체지향을 가능하게 해주도록 붙인 것이지, 객체지향을 강제하는게 아니다보니 '안전한 객체지향 프로그래밍'을 준수하지는 못하죠. 다중 상속도 그러한 예 중 하나이고요.

즉, C++의 OOP는... 엉망까지는 아니고요... 좀 거시기하다고 해야 하겠죠. ^^;

= 첨언(근거 생략 -_-) =

* C++은 일단 빌드 속도가 느려터져서, 그리고 디버깅할때 변수가 정확히 나오지 않아서 이미 반은 깎아먹습니다. 메모리 긁을 염려도 크고요.

* 코딩은 OOP가 더 '신나고 엘레강스'하지만 정작 디버깅은 procedural code가 더 쉽더라구요. 일반적인 개발 방법론에서 코딩보다 디버깅이 훨씬 많은 시간을 차지한다는 점은 무시할 수 없는 요소죠. program to interface 패턴으로 만들어진 코드를 디버깅하는건 짜증난다는 점은 저 말고도 겪은 분이 많을거라 봅니다.

* OOP가 적절한 부분이 적절하지 않은 부분보다 더 많은 것은 사실입니다. 하지만 OOP가 적절하지 않은데서 억지로 적용하려고 하면 득보다 실이 큰 경우도 분명히 존재합니다.

* OOP만 들여다보지 마시고, 다양한 프로그래밍 기법을 숙지하는게 좋습니다.

Aspect-oriented programming
Functional decomposition
Object-oriented programming
Post-object programming
Structured programming
Rule-based programming

Agile software development
Crystal Clear
Extreme programming
Lean software development
Scrum (in management)
(출처: wikipedia)
온라인 게임 서버 엔진 ProudNet
http://www.nettention.com
Locked