Delphi vs PyQt

freezm7의 이미지

개인적으로 Qt 와 Python 은 조금 공부를 했고, Qt 로 작은 프로젝트를 하나 했습니다.
MFC 로 할때보다 훨씬 생산성이 좋더군요.
그래서 Qt 의 Python 바인딩인 PyQt 를 공부하려고 하고 있습니다.

그런데 주위 선배 중에, Delphi 를 애용하시는 분이 계신데
몇명이 안 쓰는 툴인데도 쓰는 것을 보면 그만큼 편리하게 때문이지 않을까 싶어서 궁금증이 생겼습니다.

어떤 툴이 항상 더 우세하진 않다는 것은 알지만, 각각의 장단점이 있다고 생각할때
Delphi 의 장,단점은 무엇일까요?
공부해보기엔 국내에 책이 너무 없네요..

지리즈의 이미지

한마디로 비베의 생산성의 장점과 C의 실행속도 및 간결함을 두루 가추었다 하고 싶습니다.

다만, 이를테면 dll을 만든다던가 ActiveX를 생성한다는 가하면, 가끔 호환성 문제가 있더군요.(극복 불가능한 것은 아닙니다.)
커뮤니티가 작은 것도 단점이구요.

한마디로 매우 훌륭한 툴인데, 브랜드가치가 떨어지는게 흠.

PyQt와 비교한다면, 음...

툴값이 비싸다?

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

rgbi3307의 이미지

델파이는 매우 생산력있는 SDK(Software Development Kit)라고 생각합니다.
지금까지 델파이로 먹고사는 문제를 해결하고 있습니다.
C와 리눅스는 창조적인 작업을 하기에는 좋더군요.
그런데, C와 리눅스만 하고 싶어도, 배고픈 소크라테스가 될까봐 두려워지는 현실이 못마땅합니다.

From:
*알지비 (메일: rgbi3307(at)nate.com)
*학창시절 마이크로마우스를 만들었고, 10년동안 IT관련 개발자로 일하고 있음.
*틈틈히 커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

lazycoder의 이미지

딱히 툴에 단점이 있어서 잘 안쓰는게 아니라..
MS 윈도우즈 개발 툴 중에 델파이란 놈은 VB와 VC++의 사이에서 어중간하게 위치합니다.
DB응용프로그램 개발 툴로 보자니 PB 형님이 계셨고 오라클 디벨로퍼도 있었고..
안그래도 설 자리가 마땅치 않은데 2000년쯤에 .NET까지 나와버렸으니.. 쯧쯧..
그때 이미 볼랜드는 개발툴 부문에 대한 투자의욕을 잃어버렸을겁니다.
아직도 델파이 하는 사람들이 툴에 대한 자부심이 좀 강합니다.
이젠 안타까워요. 솔직히 MS 윈도우즈 환경에서 Visual Studio가 완소 개발툴이 된지는 한참 오래되었죠.

지리즈의 이미지

꽤나 많은 어플리케이션이 여전히 delphi로 나오고 있죠.

dev-c++나 kmp나... (요즘 나오는 웹하드 클라이언트는 거의 대부분 vb6아니면 델파이더군요)
저희 회사에서도 전체 코드의 1/5가량은 델파입니다.(개발자중 일부가 delphi개발자라)

제 생각에는 vb6만큼이나 오래갈껄요?

앞으로 한 10년쯤더?

어쩌면 20년?

솔직히 단일 exe 딸랑 하나 복사해서 실행가는한 바이너리를 만들어 줄 수 있는 생산성이 강한 툴이 델파이 외에 있나요?

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

lazycoder의 이미지

델파이 툴이 안좋다는 것은 아니에요. 일단 기본 컨트롤이 이쁘다는게 50먹고 들어가고, 기능도 굳이 Win32 API로 도배를 하지 않아도 될만큼 쉽게 사용가능하죠.

그런데.. 윈도우7이 몇년 안에 윈도우 전체 시장의 과반수를 넘어서 90%가까이 차지할 것으로 보이는데요.
이런 세상에선 .NET만큼 윈도우 프로그래밍 하기 편한게 없을 것 같습니다. (이때는 .NET도 어셈블리 파일 한개로 동작이 가능해요)
이게 또 멀티플랫폼을 지원하는지라 간단한 것은 모노로 컴파일하고 그 파일을 그냥 copy해서 윈도우에서 실행해도 동작된다는거죠. 지금도 그런데 앞으로는 뭐...

그래서 델파이보다는 다른 것도 좀 둘러보는게 어떻냐 싶어서 쓴 글입니다. 꼭 .NET을 하라는것은 아니고.. ^^;

지리즈의 이미지

Win32 API 도배와 진배없구요 ^^
(워낙 드라마틱하게 win32 api를 쓰기 때문에 표가 안나지만.)

새로운 개발자들이야 신기술을 진작진작 흡수하지만,
경력이 10년 넘어가는 사람들은 자신이 아는 기술에서 머물게 마련입니다.

사실, 하드웨어를 로우 레벨 하게 조작하려면,
.net은 제한점이 많은데다가, 순수 바이너리보다는 느릴 것 같다는 편견이 아직도 우세한지라..

그리고, 여전히 XP 사용자가 많기 때문에 회사 입장에서는 .net은 현시점에서는 시기상조로 봅니다.

xp 사용자가 20% 미만까지 내려가야...

그런데, 이게 xp 임베디드나 pos ready와 같은 xp family 까지 포함하면,
앞으로 향후 10년은 전체 시장의 20%는 xp를 사용할 겁니다.
(데스크탑 시장은 64bit가 대세지만, 32bit cpu가 여전히 많은 분야에서 사용중입니다.)

델파이로 범용 소프트웨어는 만들지 않지만,
특수한 용도의 소프트웨어 시장도 여전히 존재하기 때문에...
vs6와 델파이도 당분간 생명력을 잃지 않겠죠.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

djinni의 이미지

단점
1. 비쌉니다... (MS 툴들에 비해 많이 비싸죠)
2. 닷넷이 골치 아픕니다.... 닷넷 전용... 이런 라이브러리들 어쩔수 없이 쓸때... 방법은 많지만... 귀찮고 차라리 C# 쓰는게 나을 경우가...
3. 이름값이 약함... 먼지 모르는 사람들 많아요... 이름을 잘못 지은 듯...;
4. 업데이트가 잦다 - 매년 하나씩 나옵니다 -_-; 2011버전도 또 나오죠 (1번에 포함 되는 내용일지도...)
5. 신규 인력이 없다 - 사람에 따라 장점이라 느낄 수도...
6. 편리하다 -> 아무나 만든다 -> 델파이 쓰는 사람은 실력이 부족하다 라는 인식의 팽배 (이런 경우도 더러있습니다.)
7. 생산성이 높으면 그만큼 일을 더 시킨다. -> 결국 일하는 시간은 같음 (이 때문인지 델파이 고수들은 프리가 많음)

dalmagi의 이미지

장점:
배포의 용이
고품질 컴파일러와 언어로 인한 빠른 개발속도
쉬운 UI 제작

단점:
오픈소스(!자유소프트웨어)에 대한 무지
그로인한 시장 협소화, 커뮤니티 보수화
그것을 만회하기 위한 지나치게 비싼 가격

화이팅(fighting) 말고 화이트닝(whitening) 하면 안되나요.

grassman의 이미지

장점:
1. 컴파일러 회사에서 설계한 RAD 툴이다.

단점:
1. 운영체제 회사에서 판매하지 않았다.

너무 줄여 오해의 소지가 있을듯 해서 좀 덧붙이자면...

컴파일러 회사에서 의욕있게 만든 RAD 툴이라서 언어나 라이브러리
등의 구조가 아주 잘 짜여져 있습니다. 그래서 직관적으로 생각해서
응용 프로그램을 작성할 수 있습니다. (이건 위에서 다른 분들이
누차 설명했으니 넘어가도 될 것 같고요)

그런데 프로그램이 돌아가는 운영체제를 다른 회사에서 만드는데다
거기에 컴파일러까지 팔고 있습니다. 당연히 마이너로 전락할 수 밖에
없는 상황이죠. PB나 다른 개발툴 들도 현재 상황을 보면 Delphi
보다 우위에 있다고 할 수 있는 상황은 아닐겁니다.

Delphi 사용자 층이 얕은 이유가 이것입니다.

그리고 지금 새로 배운다고 한다면 굳이 Delphi에 관심을 둘 필요는
없다고 봅니다. (Qt 역시 괜찮은 툴입니다. MFC만 봤던 분들은 감탄
하는 분들도 계시더군요.) 다른 분들도 비슷하겠지만 제가 Delphi를
처음 접했을 때가 13년 쯤 전이었고 손에 익어서 계속 쓰는거니까요.

sblade의 이미지

Qt를 쓸 줄 아신다면 PyQt도 그대로 쓸 수 있습니다. 거의 모든게 1:1 대응됩니다. 가장 큰 차이라면 PyQt 에서는 SIGNAL-SLOT 루틴으로 python object를 주고받을 수 있다는 것 정도가 있겠습니다. 나머지는 거의 같으므로 tutorial 하나 정도만 따라해보고 나면 바로 프로그램을 만들 수 있습니다. Python 과 Qt를 그대로 쓸 수 있어서 생산성에 있어서는 제가 써 본 다른 어떤 툴보다 압도적이었습니다.

그런데 퍼포먼스에서는 조금 문제가 있습니다. 기본적으로 python interpreter 하에서 Qt 위에 PyQt 레이어 하나가 더 돌아가는 형태이므로 느릴 수 밖에 없습니다. 사실 일반적인 GUI 의 용도로는 느리지 않은데, 만약 graphicsview 같은 걸 쓰고 싶다면 상당한 퍼포먼스 문제가 있습니다.