안녕하세여..타락임다..^^
조은 내용이군여..^^
흠.. 전 사실 C/C++을 선호합니다. 대다수의 C/C++ 코더가 그러하듯 최고라는 절대적인 믿음이 있습니다. 저 역쉬 씨언어 기반이 빈약해서 깊이 못들어 가고 자바를 선택한 사람들의 넉두리는 듣고 싶지 않고여, 막연히 MS때메 쓰면서 VC++ 이야 말로 C/C++ 언어툴로 생각하는 사람과 싸우고 싶은 맘도 없습니다.
저두 현제는 델파이를 쓰지만, 여전히 제일 자신있는 언어는 C/C++ 이고, 최고의 언어라고 생각합니다.
그런데 제가 델파이를 쓰는 이유는 순전히 개발툴 때문이져.. Hee ^_____________^
만약 VC++ 이 버그가 없다면, C++ Builder가 델파이 VCL이 아닌 C/C++로 만들어진 Library를 썼다면 사정이 많이 달라졌을 겁니다.
제 개인적인 생각으론 언어적인 면으로 본다면, C++ Builder가 기본툴이고, 델파이가 파스칼코드와 C/C++ 코드를 컴파일하는 툴로 만들어져야 겠었져. 그렇다면 프로그램계가 많이 달라졌을 겁니다.
하지만 다르게 생각한다면요, 비주얼한 툴은 파스칼 언어를 쓰는 델파이기에 가능했다고 생각합니다. C 의 기본정신은 "작은것이 아름답다" 입니다. 최초의 C Reference에도 "C는 작은 언어기 때문에 설명이 길 필요없다"라고 서두를 장식하는 것으로 압니다. 맞습니다. C 언어는 최적화 되어 있고 아름답습니다. 따라서 불필요한 코드가 많이 붙는 비주얼한 환경은 C 언어 관점에서 보면 Crazy 입니다.
결론을 말하자면, C 는 Perfect 해서 변화가 적지만, 파스칼은 부족해서 다른 방법으로 그 갭을 보충하려고 애썼으며, 비주얼하게 가게 되었습니다. 빌더가 언어적으론 좋지만, 델파이가 컴파일러로는 더 좋다고 생각함다.^^
즐푸하세여..
타락천사...^^
박지훈.임프 님이 쓰신 글 :
: 임프랍니다.
:
: 아래 글은, 좀전에 한델에 놀러갔다가 질문 글을 보고 답변으로서 쓴 글입니다.
: bcbdn에서도 종종 이런 내용의 질의가 오가길래 참고삼아 옮겨봤습니다.
:
:
http://www.delphi.co.kr/cgi-bin/cwb/CrazyWWWBoard.cgi?mode=read&num=54246&db=newqa&backdepth=1
: -------------------------------------------------------------------------------
:
: 임프랍니다.
:
: 간단히 한마디로 말하면, 델파이와 C++Builder의 차이는 언어의 차이 이상도 이하도 아닙니다.
: 하지만 그 언어의 차이가 크지요.
:
: 물론 어느 언어에 더 익숙한 사람인가, 기존 프로젝트가 파스칼로 짜여져 있는가 혹은
: C++로 짜여져 있는가에 따라 개인적인 선호나 개발 퍼포먼스가 달라질 수 있습니다.
:
: 하지만, C++과 파스칼은 "언어가 다르다"라고 한마디로 말하기엔 내재적인 차이가 너무
: 큽니다. 하나씩 나열해보지요.
:
: 일단, C++은 표준 지향적인 언어입니다. 반면에 파스칼은 표준이라고 할 만한 것이 없지요.
: C++ 컴파일러 개발사는 새로운 버전을 내놓을 때마다 ANSI/ISO 스펙을 따르고 있느냐
: 아니냐 하는 시비를 받습니다. C++Builder를 사용하는 볼랜드쪽 개발자들이 Visual C++
: 개발자들을 향해서 개발 퍼포먼스 외에 또한가지 공격하는 것이 Visual C++은 비표준이라는
: 겁니다.
:
: 이런 표준이 있다는 점은, 장단점이 있는데, 장점은 새로운 문법이 신중하게 추가되고
: 최초의 언어 설계 철학을 크게 벗어나지 않으므로 일부 표준을 따르지 않는 개발사 고유의
: 스펙을 추가하는 외에는, 표준을 따르는 거의 대부분의 코드는 소스레벨에서 호환성을
: 가진다는 것입니다. 실제로 Visual C++로 짜여진 모든 소스는 C++Builder에서 컴파일됩니다.
: 단점은, 컴파일러 개발사가 새로운 언어 특징을 추가하면서 최초의 C++ 설계 철학을
: 어기지 않도록 대단히 신중해져야 하고 기존의 문법에 항상 구속된다는 점입니다.
:
: 반면 거의 표준에 구속되는 일 없이 컴파일러 개발사의 독자적인 판단으로 언어 스펙이
: 추가되거나 변경될 수 있는 파스칼의 경우 아주 유연합니다. 하지만 지금 델파이로 작성한
: 코드가 다른 어느 파스칼 컴파일러에서 컴파일될 수 있는지를 생각해보면, 어떤 측면에서는
: 고립적이지요. 물론 델파이 외에 더이상 상용 파스칼 컴파일러가 나오지 않습니다만.
:
: 표준 지향적인지 아닌지 외에 다른 차이점은, 언어의 기본 설계 방향에서 볼 수 있습니다.
: C++은 기본적으로 시스템 프로그래밍을 위해 설계된 C의 위에 OOP를 덧씌운 언어입니다.
: 잘 아시다시피 C는 유닉스를 개발하는 과정에서 실무 차원에서 필요해서 개발 실무자에
: 의해 만들어진 언어입니다. 그래서 사실 C는 언어 구조적으로는 실무에 꼭 필요한 특징들을
: 제외하면 프로그래밍 언어로서의 예술성이랄까 구조성은 많이 떨어집니다.
: 또한 설계시부터 기존의 C 프로그래머들을 끌어들이기 위해 철저한 하위 호환성을 가지고
: 있기 때문에 C++의 설계 철학에도 시스템 프로그래밍적인 특징이 대단히 강합니다.
: 함축적인 표현에 유연하고, 특히 포인터 연산에 대단히 강하지요.
:
: 반면 파스칼의 경우엔 개발 실무자가 아닌 학자에 의해 만들어진 언어지요.
: 개인적인 취향의 차이는 있겠습니다만, C++ 전문인 제가 보더라도 파스칼 코드는 구조화에
: 대단히 많이 신경을 쓴 언어입니다. 반면 원래의 파스칼은 특별한 목적이 없는, 그냥
: 범용 언어입니다. 시스템 측면에서 뛰어나지도 않고, 더 쉽지도 않고, 더 OOP적이지도
: 않은, 그냥 범용 언어지요. 볼랜드에서는 과거 터보 파스칼에서부터 볼랜드 파스칼,
: 그리고 델파이에 이르기까지 이러한 파스칼의 약점을 보완하기 위하여 수없이 새로운
: 문법과 키워드들을 추가해왔습니다. 그리고 지금에 와서는, 못할 게 없는 대단히 강력한
: 언어가 되었습니다.
:
: 제가 개인적으로 생각하기에, C++과 오브젝트 파스칼은 모두 간략함이라는 특징을 가지고
: 있습니다. C++은 코드의 간략함, 반대로 오브젝트 파스칼은 구조의 간략함을 주로 하고
: 있습니다. 표현이 적절한지는 자신이 없습니다만.
: C++의 코드 간략함은 실무에서 최적화 가능성으로 나타납니다. 포인터를 능란하게 사용하는
: 분이 작성한 C++코드는 그야말로 코드 레벨 최적화의 절정을 보여줍니다. 물론 이 경우
: 가독성은 극적으로 떨어집니다만.
: 반대로 오브젝트 파스칼의 구조 간략함은 실무에서 쉽게 배워서 쉽게 사용할 수 있다는
: 점으로 나타납니다. 하지만 C++만큼의 코드 최적화 기회는 없습니다.
: 웬만한 중급 수준이상 오르게 되면 더 이상의 코드 최적화가 안됩니다. 물론 여기서
: 말하는 최적화란 아주 다른 방법을 도입하는 경우를 배제한, 같은 알고리즘으로 같은
: 코드를 만들 경우를 말합니다. C++의 경우엔 배워도 배워도 끝이 없을 정도로 표현의
: 한계가 끝이 없어보입니다.
: (어정쩡하게 C++을 공부하신 분의 반박은 사양합니다. 어쩌다보니 요 2,3년간 자바
: 프로그래머들을 계속 만나고 있는데, C++ 공부하다 지쳐 자바로 넘어간 분이 하는
: "나도 한때는 C++에 한칼했다"는 말에 정말 신물났습니다.)
:
: 델파이와 C++Builder의 컴파일러가 극에서 극에 이를 만큼 차이를 보이는 이유도 이때문입니다.
: C++코드는 대단히 유연한 문법으로 인해 파스칼보다 파싱이 훨씬 복잡합니다. C나 C++을
: 조금이라도 배워보신 분이라면, 보는 사람 열받게 포인터들과 ? : 연산자 등등을 섞어가며
: 비꼬고 틀어놓은 문장을 한번쯤은 보셨을 겁니다. 파스칼에서는 이런 표현이 안됩니다.
: C++의 이런 표현을 두고 좋지 않은 평을 하는 분들도 있고, 또 C++ 프로그래머 스스로도
: 이런 문장이 과연 의미가 있을까 하는 회의를 품게 되기도 합니다.
:
: 하지만 C/C++의 역사를 돌아보면 이런 비꼬인 문장이 괜히 보는 사람 열받으라고 만든
: 것은 아니란 걸 알 수 있습니다. C는 원래 시스템 프로그래밍 언어로 설계된 것이고,
: 경쟁 언어는 파스칼이나 베이직, 포트란 등이 아닙니다. 어셈블리지요. C는 처음부터
: 어셈블리를 대체하기 위해 만들어진 언어였기 때문에 CPU 클럭을 하나 더 쓰느냐 마느냐
: 혹은 메모리를 한번 더 할당하느냐 마느냐 하는, 지금 보기엔 대단히 사소할 수도 있는
: 문제에 매달릴 수밖에 없습니다. 지금도 임베디드 프로그래밍을 하시는 분은 역시 마찬
: 가지의 고민을 하고 계실 겁니다.
:
: 예를 들어서요. 파스칼에서 사용하는 스트링, 원래의 파스칼에서 사용하던 쇼트 스트링 말고
: 델파이2에서였던가 새로 도입된 안시스트링의 경우 말입니다. 범용적인 목적으로는 대단히
: 최적화가 잘 되어있습니다. 범용 최적화를 위해 내부 코드가 모두 어셈블리로 되어있지요.
: 그러니 기본 알고리즘이 동일하다면 누가 작성하더라도 상당히 좋은 성능이 나옵니다.
: 하지만 제대로 작성한 C++ 코드에는 비교가 안됩니다. 물론 델파이에도 PChar형을 직접
: 다루는 문자열 함수들이 별도로 있어서 이것들을 적절히 사용하면 표준 스트링을 사용했을
: 때보다 성능이 상당히 좋아집니다만, C++의 표현력은 절대 못따라가지요.
: 물론 이런 차이는 몇십 킬로바이트짜리 짧은 문자열에서는 별로 나타나지 않습니다만,
: 몇백단위가 넘어가게 되면 성능차이가 느껴지게 됩니다.
:
: 졸면서 썼더니 좀 앞뒤가 없군요.
: 결론은, 저도 역시 많은 분들이 하는 말을 되풀이하게 됩니다.
: "C++과 파스칼 중 더 익숙한 것이 있다면 그것을 선택하라, 하지만 숙련도에 차이가 없다면
: 시스템 프로그래밍을 하거나 퍼포먼스가 아주 중요한 경우가 아닌 한 파스칼을 하라"
:
: 디비 프로그래밍을 전문으로 하실 분이 처음 시작할 개발툴로 C++Builder를 선택하는 것은
: 바보짓입니다. 개인적으로 생각하기에 C++은 파스칼보다 배우는 시간이 두배 이상 걸립니다.
: 또 최고의 성능을 내야하는 분야로 입문하시는 분이 델파이를 선택하는 것도 껼망都求?
:
: 마지막으로 여기까지 끄적거린 것은, 공부하면서 찾아볼 수 있는 개발 리소스들.. 서적이나
: 웹문서 등등을 고려하지 않은, 그야말로 언어 자체만을 비교한 것이란 것을 말씀드립니다.
: 혹 C++Builder를 공부하거나 사용할 필요가 있으시다면 저희 사이트로 오십시오.
:
http://wwwborlandforum.com//
:
: 그럼 이만...
:
:
: 고양이 wrote:
: > 현재 저는 Delphi를 사용하고 있습니다.
: >
: > 델파이를 사용하면서... 원하는 기능 구현은 거진 전부다 하고 있거든요...
: >
: > 근데...
: >
: > C++ Builder 는 어떤지요...
: >
: > Delphi 와 C++ Builder 의 차이점을 알고 싶거든요...
: >
: > 델파이는 파스칼.... C++ Builder 는 말 그대로 C++ 을 사용하는거 가튼데..
: >
: > 언어에서 말고 큰 차이점이 무얼까요?
: >
: > 어느용도에선 장단점이 있을듯 한뎅..... 점 자세한 설명점 부탁드립니다.