패턴,설계 관련 책은 C++/JAVA 밖에 없나요?

gurugio의 이미지

C++을 배워보려고 몇번을 시도했지만 어렵기만 합니다.
자바도 마찬가지네요.

설계관련 패턴이나 아키텍쳐 책들을 보면 모두 C++/JAVA로 작성되는것 같습니다.
멀티프로세서 프로그래밍, 병행 프로그래밍도 C는 없는것 같습니다.
서문에는 분명 자바를 많이 알지못해도 이해할 수 있다고 하지만
책내용보다 예제코드 이해하는게 더 어려울것 같다는 생각이 듭니다.

진즉에 공부좀 할껄..

semmal의 이미지

언어는 따지지 말고 자바도 같이 공부하세요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

powersys의 이미지

너무 독선적인 말투군요...

님은 배우고싶은것 외에 다른언어 배우라면 좋겠어요?

전 반대입니다. 자신이 하고자하는것만해도 부족한 시간에.. 다른것 배우라니요..

물론 배워 남주진 않겠지만 좀 그렇네요.

더구나 원래하고 싶어했던 언어의 패턴,설계를 JAVA의 스타일로 배우라는듯 강요하는 어투라 싫군요.

semmal의 이미지

필요하면 배워야하지 않나요?
배움이 필요하다는 건, 지금 모른다는 뜻이고.
모르는 상태에서 판단을 내리면 올바른 판단일 가능성도 적겠죠.
자바 배운다고 배웠던 C나 C++가 머리속에서 사라지는 것도 아니고.
그것도 배워서 남주진 않는다는 것을 아시면서.
제가 독선적이고 싫은 말투를 썼다고 해서, 기분나빠서 못배우겠다면 그건 님의 선택이겠지만.
얼굴도 모르는 사람이 싫어서 배울건 안배우는건 별로 현명한 처사가 아닌건 분명해 보입니다.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

johan의 이미지

패턴이라면 디자인 패턴 이야기 맞죠? 프로그래밍 언어가 파워풀 할 수록 일반적으로 알려진 디자인 패턴이 무의미하게 되는 경우가 많습니다. 무슨 무슨 패턴이고 그 딕셔너리고 하는 것들이 많을 수록 프로그래밍 언어가 파워풀하지 않다고 볼 수 있습니다. 구글의 피터노빅인가 하는 사람이 그와 관련된 패턴을 파이썬인가로 보여주면서 파이썬에서는 불필요한 패턴이 무엇인지 자바나 C 등에서 불가능하지만 파이썬에서 가능한 패턴이 무엇인지 보여준 내용이 있었던 것으로 기억합니다 (세부적인 기억이 틀릴 수도 있다는 이야깁니다)

아무래도 폰노이만식 컴퓨터에서 로우레벨 프로그래밍은 C에 가까운 프로그래밍 언어가 나을 겁니다 (자바도 폰노이만식 아닌가요?)

eyeless의 이미지

기계(하드웨어)에 대한 이야기입니다. 프로그래밍 언어를
대상으로 하는 표현은 아닌 것으로 알고 있습니다.
java와 c를 묶어주는 요소라면 algol계열 언어라는 것이
더 적절하겠네요.

johan의 이미지

잘 모르면 최소한 한번 찾아보고 반박하는 센스:

http://en.wikipedia.org/wiki/Von_Neumann_programming_languages

lacovnk의 이미지

1) 아무래도 패턴, 설계가 OOP를 기반으로 하기 때문에 C는 별로 없는게 아닐까요.

2) 필요한 내용은 별 설명 없이 코드만 봐도 이해가 가죠.
하지만 그렇지 않은 사례의 설명은 코드 들어가기 전에 아키텍처도 잘 안읽히죠 -_-;

3) 크게 보면 공통적인 패턴이 있는가 하면, 경우에 따라 별로 사용하지 않는 패턴도 있는 겁니다. 윗분 말씀처럼 언어 따라 그럴수도 있고, 아니면 프로그램 종류 따라 그럴수도 있고...

4) 참고로 "리팩토링" 서문을 보면 다음과 같은 말이 등장합니다

이 책에서는 자바로 된 예제를 사용한다. 물론 리팩토링은 다른 언어에서도 될 수 있고, 나는 이 책이 다른 언어로 일하는 사람들에게도 유용하기를 바란다. 그러나 나는 이 책이 자바에 초점을 맞추는 것이 가장 좋겠다고 생각했는데, 왜냐하면 내가 가장 잘 아는 언어가 자바이기 때문이다. 가끔씩 다른 언어에서의 리팩토링을 위한 노트를 첨가했지만, 나는 다른 사람들이 특정 언어를 목표로 한 책으로 기초를 쌓기를 바란다.
jj의 이미지

기분나쁘게 듣지는 마시구요, 디자인패턴을 기술한 예제를 Java/C++ 코드라서 읽기 힘들다면, 어떤 언어로 써있어도 어려울것 같다는 생각이드는데요. 공부를 하셔야 할듯... Java만큼 읽기 쉬운 코드도 없습니다. Java를 좋아하지는 않지만...

덧. 아니 근데 써놓고보니, 많이 보던 ID입니다;; gurugio님 정도면 다 아실듯한데... 엄살이셨군요;; 괜히 심각했음;;

--
Life is short. damn short...

--
Life is short. damn short...

winner의 이미지

Pattern이 별 거 있나요. C 함수 pointer가 고적 전략(strategy) pattern이라고 하죠.
함수 pointer를 구조체에 묶으면 그대로 객체지향적 전략 pattern이 될테고...
strtok 함수는 반복(iterator) pattern 비스므리합니다.
이것도 구조체와 함께 잘 쓰면 iterator pattern이라고 할 수 있을 듯...
C에서는 union도 쓰지만 void *를 잘 쓰면 factory pattern 비스므리 하게 할 수 있을 것 같고...
이건 언어 지원만으로는 한계가 있으므로 OS dependant 하겠지만요..

이런 식으로 하다보면 C++ 같은 언어 하나 만들지도... -_-.

sloth_의 이미지

Ruby로 설명하는 패턴책도있더군요
하긴 무슨 언어든지 C++ 보다 어렵긴 힘들지말입니다^^

eyeless의 이미지

디자인 패턴은 주로 객체지향 프로그래밍을 지원하는
언어로 설명하던데요. 디자인 패턴 자체가 가정하는 바가
아닌가 생각됩니다만..

물론 c로도 객체지향 프로그래밍이 가능하겠죠. 하지만,
언어적으로 지원하는 java에 비하면 간결하게 되지는 않을 것 같습니다.

개인적으로는 프로그래밍을 취미로 하는 수준이지만,
번역되어 나온 Haskell 책을 보면서 같은 개념을 어떻게
다른 표현으로 작성하는지 보니 흥미롭더군요.

semmal의 이미지

Haskell의 클래스는 OO의 클래스와는 의미가 아예 다릅니다. 이건 수학의 카테고리 이론에서 말하는 클래습니다.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

xyhan의 이미지

저는 주로 자바만 개발하지만요..
패턴이란건 객체지향의 장점을 사용한 면이 많습니다...

예전.. 자바 선생님에게 배운바에 의하면..
객체지향의 장점으로 인해.. 패턴이 생겨났고..
그런 좋은 패턴이 모여 프레임워크가 된걸로 알고 있습니다.

============================================================

선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스-
의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-

============================================================

============================================================

선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스-
의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-

============================================================