자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi Dephi가 C#과 비교해 어떤 장점이 있나요?
2015.04.07 18:25
안녕하세요.
Dephi가 C#과 비교해 어떤 장점이 있나요?
답변부탁드립니다.
번호 제목 글쓴이 날짜 조회 수
공지
[프로그래밍 강의] 2021.6~2021.12
관리자 2015.01.22 19811
공지
유용한 관련 사이트
관리자2 2014.03.20 58773
공지
본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다.
관리자 2012.01.10 102333
5
RAD Server에서 TFDConnection 트랜잭션 미작동 질문
[4] clogic 2020.04.20 215
4
[Q]Delphi 5, 7의 Oracle 12c 지원 문의
[2] 지롱 2016.01.27 438
»
Dephi가 C#과 비교해 어떤 장점이 있나요?
[1] 베스트드레곤 2015.04.07 5259
2
iOS Simulator F9시 에러
[1] 강성범 2014.08.28 1886
1
Delphi 6.0 및 TLabel 관련문의
[1] Fury 2012.03.08 12276
Delphi Dephi가 C#과 비교해 어떤 장점이 있나요?
2015.04.07 18:25
안녕하세요.
Dephi가 C#과 비교해 어떤 장점이 있나요?
답변부탁드립니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [프로그래밍 강의] 2021.6~2021.12 | 관리자 | 2015.01.22 | 19811 |
공지 | 유용한 관련 사이트 | 관리자2 | 2014.03.20 | 58773 |
공지 | 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. | 관리자 | 2012.01.10 | 102333 |
5 | RAD Server에서 TFDConnection 트랜잭션 미작동 질문 [4] | clogic | 2020.04.20 | 215 |
4 | [Q]Delphi 5, 7의 Oracle 12c 지원 문의 [2] | 지롱 | 2016.01.27 | 438 |
» | Dephi가 C#과 비교해 어떤 장점이 있나요? [1] | 베스트드레곤 | 2015.04.07 | 5259 |
2 | iOS Simulator F9시 에러 [1] | 강성범 | 2014.08.28 | 1886 |
1 | Delphi 6.0 및 TLabel 관련문의 [1] | Fury | 2012.03.08 | 12276 |
안녕하세요.
Delphi와 C#의 문법 구조는 매우 유사합니다. 예를 들어 두 언어 모두 namespace라는 키워드가 있습니다. C#이 처음 만들어질 때 Delphi 엔지니어가 MS로 이직하여서 기여를 한 때문일 수도 있습니다.
컴퓨터 프로그래밍 언어가 많은 이유는 각자 특징이 있고 사용자에 따라 보다 적합한 언어가 다르기 때문입니다. 언어를 선택할 때에는 나에게 또는 우리 회사에게 필요한 것이 무엇인지를 정하고 나서 그것을 기준으로 장점과 단점을 비교하는 것이 의미가 있습니다.
예를 들어 전북대학교병원이 델파이를 선택하고 C#을 선택하지 않은 이유는 다음과 같습니다:
http://www.devgear.co.kr/file/casestudy/2015-rad-case-study-%EC%A0%84%EB%B6%81%EB%8C%80%EB%B3%91%EC%9B%90_KR.pdf
C#과 Delphi를 단순 비교하여 장점을 내세운다는 것은 일반론에 속할 뿐입니다.
하지만 명확한 차이점인 (1)구조와 (2)개발 환경에 대한 제조사의 입장에 대해 비교해보겠습니다:
[순수네이티브 vs 가상머신]
- 델파이는
순수하게 binary로 작동되는 네이티브 앱을 안드로이드, iOS, 윈도우, 맥 OS용으로 만듭니다.
- C#은
닷넷(.NET)이라는 가상머신에 의존하는 애플리케이션을 만듭니다. 대체로 만들어진 앱보다 닷넷의 크기가 훨씬 큽니다. (물론 2000년 이후의 윈도에는 닷넷이 기본 탑재되어 있습니다) 혹시 닷넷 버전을 맞추어 주어야 한다면 예를 들어 최신 윈도우에 과거 닷넷이 없고, C#으로 만든 앱이 과거 닷넷에만 의존적이라면, 만들어지 앱과 함께 해당 닷넷을 사용자에게 별도로 배포해주어야 합니다. 가상머신이란, 하나의 독립된 소프트웨어 계층입니다. 따라서 순수 네이티브 앱보다 한 계층을 더 거쳐야 하므로 구조적으로 성능과 기능에 제약이 있을 수 있습니다. (성능은 어떻게 튜닝하느냐에 따라 달라지기도 하고, 미미한 속도 차이는 의미가 없을 수도 있습니다. 하지만, 구조 상으로는 분명히 그렇습니다). 또한 닷넷과 자바 가상머신은 공통 소프트웨어 영역이므로 해커들이 이런 가상머신의 약점을 노리는 경향이 많습니다. 그리고 개발자들은 이 가상머신 영역을 사용할 뿐 통제하지는 못합니다. 예를 들어 가비지 컬렉션을 통한 메모리 반환은 전적으로 가상머신이 알아서 처리하므로 개발자는 내가 만든 오브젝트가 실제로 언제 메모리에서 벗어나는 지 알 거나 통제하기 어렵습니다. 성능 튜닝 또한 마찬가지 입니다. 이에 비해 델파이는 자동 참조 카운트 (ARC, Auto Reference Count)를 사용하며 명시적으로 제어할 수 있으며, 개발자가 놓치는 경우에도 안전하게 메모리를 해제할 수도 있습니다.
[개발 환경에 대한 제조사의 입장]
- 델파이는
20년 이상 같은 개발 환경을 유지해오고 있습니다. 물론 많은 발전된 기술을 적용하고 있지만, 개발자의 입장에서는 델파이 언어를 그대로 사용하고 델파이 개발환경에서 컴포넌트를 중심으로 사용하는 기본 접근이 동일합니다. 예를 들어 데이터액세스 컴포넌트로 FireDAC이라는 것이 새로 나와서 대량 업데이트 성능이 현격히 높아지고, DB 앱에 모니터링과 추적을 쉽게 적용할 수 있는 등 많은 발전이 있지만, 개발자 입장에서는 BDE 사용하던 방식과 거의 같은 방식으로 FireDAC을 사용하면 됩니다. 또한 이제 델파이에서 안드로이드 앱을 만들 수 있는데, 개발자들이 안드로이드를 바닥부터 학습하는 것이 아니라 기존에 델파이로 윈도 애플리케이션 만드는 것과 같은 방식으로 개발하면 컴파일 할 때 델파이가 선택한 운영체제에 맞는 실행파일을 만들어줍니다.
- C#은
언어적으로 일관성있게 발전하고, 델파이만큼 깔끔하고 좋은 구조를 가지고 있습니다. 하지만, 마이크로소프트사는 개발툴 제조사라기 보다는 플랫폼 제조사입니다. 따라서 마이크로소프트 기술 특히 VC++ 이 아닌, C# 을 오랫동안 사용한 개발자라면 거의 3~4년 주기로 발표되는 실버라이트, WPF,... 개발플랫폼을 항상 새롭게 배워왔을 것입니다. 배움이라는 것이 좋기는 하지만, 10년 정도 전에 사용하던 개발 방법과 10년 후에 사용하던 개발 방법이 그 구조와 플랫폼 부터 다시 이해하고 적용해야한다면, 현업에 바쁜 개발자들에게는 그다지 쉽지는 않습니다. 개발자는 나와 내 회사가 가진 어려움을 소프르웨어를 통해 풀어내기 위해 문제를 더 잘 이해하고 해법을 프로그래밍을 통해 잘 구현하는 것이 가장 중요합니다. 새로운 플랫폼을 공부하는 것은 그 다음입니다. 물론 개발자의 개발 능력 향상을 위해서는 개발자가 새로운 플랫폼이나 기술을 배워야 합니다. 하지만, 그 효과에 비해 학습할 것이 너무 많고, 학습의 이유가 플랫폼 제조사의 목적이 더 많다면 쉽지 않습니다. 이에 비해 델파이는 개발자를 위해 개발자입장에서 일관되게 개발할 수 있는 환경을 유지해오고 있습니다.