GUI 프로그래밍을위한 Delphi vs C #


20

나는 C에 대한 지식이 거의없는 PHP와 Python 배경에서 왔으며 이제 많은 웹 기반 응용 프로그램을 수행했으며 Windows 플랫폼 용 데스크톱 응용 프로그램을 생각하고 있습니다.

친구가 델파이로 가라고 말했고 다른 사람들은 C #이 최고라고 말하고 있습니다.

  1. 간단
  2. 생산력
  3. 좋은 API 문서
  4. 속도
  5. 끌어서 놓기
  6. 멀티 스레딩 및 우수한 네트워크 API

감사

답변:


20

델파이, 확실히 :

  1. 단순성-Delphi의 구문은 배우기 쉽도록 명시 적으로 설계된 Pascal을 기반으로하며, 그 약속을 이행 할 수 있습니다. C #의 잘했다 ... ...는 C 제품군을 기반으로 하지 .
  2. 생산성-Delphi는 Turbo Pascal의 후손이며 여전히 가장 빠른 컴파일러로 사람 의 생산성을 크게 향상시킵니다. 또한 디버거가 있습니다. Visual Studio는 디버거가 자랄 때와 같기를 바랍니다. 특히 최신 버전의 Delphi에서는 디버깅이 훨씬 쉽습니다.
  3. 좋은 API 문서- "API"는 요즘 모든 종류의 것을 포괄하는 아주 모호한 단어입니다. 나는 당신이 도서관을 의미한다고 가정하고, 여기에 일종의 던지기가 있습니다. .NET 프레임 워크와 Delphi 표준 라이브러리는 모두 좋은 온라인 문서와 평범하고 사용하기 어려운 오프라인 문서를 가지고 있습니다. (Delphi 팀이 Visual Studio와 동일한 끔찍한 도움말 시스템을 사용하기로 결정한 결과, 다음 버전에서 멀어지게 될 것입니다.)
  4. 속도-델파이가 쉽게 이깁니다. 네이티브 코드 ( JIT 단계가 없기 때문에 빠른 실행 및 훨씬 빠른 시작)로 컴파일되며 관리되는 포인터를 사용하지 않으므로 객체 액세스가 빠르고 캐시에 덜 친숙합니다.
  5. 끌어서 놓기-VCL의 기본 제공 기능입니다.
  6. 멀티 스레딩-델파이에는 스레드 클래스가 내장되어 있지만 동시성으로 복잡한 작업을 수행하려는 경우 더 나은 옵션이 있습니다. 델파이 커뮤니티 회원 인 Primoz Gabrijelcic 는 제가 기여한 훌륭한 동시성 라이브러리 를 개발하고 있습니다. 작업 풀링, 병렬 FOR 루프 및 다단계 파이프 라인 프로세스와 같은 일반적인 스레딩 목표에 대한 높은 수준의 지원을 제공합니다.
  7. 훌륭한 네트워크 API-Delphi는 인터넷 연결을 쉽게 설정하고 관리 할 수있는 성숙한 오픈 소스 라이브러리 인 Indy와 함께 제공됩니다. 우리는 방송 미디어에서 작업하지 않으면 들어 보지 못한 업계 최고의 앱을위한 커뮤니케이션 계층을 제공하기 위해 직장에서 사용합니다.
  8. 배포-목록에 없었지만 언급 할 가치가 있습니다. .NET 프레임 워크가 사전 설치되어 있지 않은 시스템이 여전히 있습니다. 기본적으로 Delphi는 표준 라이브러리를 EXE로 컴파일 한 다음 smartlinker를 사용하여 사용하지 않는 부분을 제거하여 사용자가 가질 수있는 수백 MB의 대용량 런타임 라이브러리에 의존하지 않는 작은 EXE를 생성합니다. 별도로 다운로드하여 설치하십시오.

2
@Elf : 사용할 수있는 C # 작업이 더 많을 수 있지만 더 많은 사람들이 경쟁하고 있습니다. 숙련 된 Delphi 개발자는 작업을 찾는 데 어려움이 없습니다.
메이슨 휠러

5
C #은 C ++뿐만 아니라 Delphi 및 Java를 기반으로합니다. 나도 파스칼에서 프로그래밍을 배웠고, C #에서 그 철학의 많은 부분을 보았습니다. 관리되는 포인터와 관련하여 역방향으로 관리 포인터를 통해 데이터에 액세스하는 오버 헤드가 없으며 참조 계산을 사용하는 시스템보다 변경 속도가 빠릅니다.
Guffa

12
배우기 쉬운 델파이 구문은 완전히 주관적인 진술입니다. 나는 델파이 구문에 분노했고, 그런 이유로 그것을 배우지 않기로 결정했습니다.
Tjaart

8
-1 :이 답변은 미친 것처럼 편향되어 있습니다. Visual Studio 디버거는 Delphi보다 좋지는 않지만 적어도 좋습니다. 델파이 문서는 MSDN과 비교하여 존재하지 않습니다.
marco-fiset

4
배포-전체 실패 Deplhi에는 Windows가 필요하므로 C #에서 한 단계 뒤로 이동합니다. C #은 Mono 덕분에 휴대용 및 다중 플랫폼입니다. 델파이는 아닙니다. 명시 적으로 Win32 라이브러리를 사용하지 않는 C #으로 작성된 프로그램을 실행하기 위해 Windows를 구입할 필요는 없습니다. 단순성-또한 실패. C #의 구문은 읽기 쉽고 간결하며 쓰기 쉽습니다. 델파이는 아닙니다. API 문서-안돼! "웹 서비스 C #"을 작성하면 수많은 관련 결과가 나타납니다. 델파이에게는 그런 것들이 없습니다. 속도, 스레딩, 특히 디버거-거짓.
TheLonelyCoder

15

C #은 일반적으로 더 큰 사용자 기반을 갖게되고 앞으로 더 많은 개발을 진행할 것이며 Visual Studio를 통한 RAD 개발 도구는 믿을 수 없습니다.

  1. 구문은 PHP 및 C에서 사용한 것과 유사합니다.
  2. 도구와 IntelliSense가 포함 된 Visual Studio는 매우 생산적입니다.
  3. MSDN
  4. 다시 한 번 VS 도구 + Intellisense를 사용하지만 속도는 실제로 언어와 기능에 익숙해야합니다.
  5. WinForms, WPF의 VS 디자이너.
  6. System.Threading 및 System.Net

델파이에 대한 경험이 많지 않고 C #에 대한 경험에 대해서만 이야기하고 있습니다. 내가 일하는 곳에서 프로그래머가 아닌 사람들이 구상 한 마감일이 촉박하며 업무용 데스크탑 응용 프로그램을 매우 빠르게 펌핑 할 수 있습니다. 지난 3 주 동안 저는 두 가지 winforms LOB 응용 프로그램의 사양에서 배포로 이동했습니다. VS를 사용한 C #의 GUI 개발 생산성은 미친 짓입니다.


4
감사는에서 포스트에 따르면 daniweb.com/forums/thread54305.html 델파이, Win32 API를 통합 및 completness 심지어 C 능가
elf1984

2
C #이 데스크탑 응용 프로그램을 빠르게 생성하기위한 최고의 개발 환경이라고 생각한다면 실제로 Delphi를 살펴 봐야합니다. 비주얼 스튜디오로 데스크탑을 만들어야 할 때 개인적으로 싫어하지만 요즘에는 항상 불행히도 선택의 여지가 없습니다.
Wouter van Nifterick

1
Visual Studio의 RAD (form design) 도구는 솔직합니다.
Warren P

1
@WarrenP 좀 더 자세히 설명해 주시겠습니까?
Tjaart

1
델파이는 크래킹하기 어려운 네이티브 코드를 생성하기 때문에 C #에서 서버 애플리케이션을 만들고 델파이에서 데스크탑 애플리케이션을 만듭니다!
justyy

14

둘 다 원하는 6 점을 모두 가지고 있지만 C #은 모두가 아니라면 가장 우위에 있다고 생각합니다.

요점을 살펴 보려면 :

  1. 델파이는 메모리 관리를 필요로하므로 C #만으로도 더 간단 해 진다고 주장 할 수 있습니다. 허용되는 대답은 여기에 구문을 언급하는데, C # 구문은 PHP 및 Java와 유사하므로 두 배경 중 하나에서 더 빨리 시작하고 실행하려면 C #이 우위에 있습니다.
  2. 생산성, C #에서 더 빨리 수행 할 수 있다고 생각합니다. .net 라이브러리는 당신에게 나쁜 일을 많이 제공하므로 써드 파티 델파이 구성 요소를 제공해야합니다.
  3. 문서, 델파이는 항상 좋았고 MSDN은 더 좋았습니다. 더 큰 지원 커뮤니티를 찾으시려면 아래의 스택 오버플로 분석을 참조하십시오.
  4. 속도, 델파이는 이것에 우위를 가질 수 있지만, 어셈블리는 모든 것을 능가하므로 일반적으로 언어를 선택하는 좋은 이유는 아닙니다. 내가 지적한 것 중 하나는 사람들이 C #이 해석된다고 인용하는 것을 들었다는 것입니다. 그것은 결코 JIT를 가진 적이 없었습니다.
  5. 드래그 앤 드롭 모두 가능합니다.
  6. 멀티 스레딩, 델파이는 훌륭하지만 C #은 lock(){}병렬 확장 과 같은 구조와 새로운 빌드에서 우수 합니다 await.

추가로, 질문 제목은 GUI 프로그래밍입니다.이 때문에 저는 .nets WPF의 열렬한 팬입니다. 델파이가 반쯤 가졌던 유일한 것은 Bold 였습니다.

델파이와 C # 태그에 대한 이것과 스택 오버플로에 대한 질문 수를 비교하면 커뮤니티 크기가 C # 커뮤니티의 크기가 훨씬 더 큽니다.

스택 오버플로:

  • 델파이 17K
  • C # 367K
  • 자바 312K
  • c 73K

c언어 연령에 문제가 아니며 Java비교를 위해 문제가 없음을 보여주기 위해을 추가했습니다 .

저는 C # 또는 Java 팬이 아니며, 7 년 동안 전문적인 델파이 개발자 인 큰 델파이 팬 이었지만 2005 년부터는 .net에 실패하여 .net의 안정성을 떨어 뜨 렸으며 네이티브 32 비트 컴파일을위한 IDE. 델파이 7은 제 생각에 언어의 정점이었습니다.


그 downvote에 대한 답변은 어떻습니까?
weston

1
나는 downvoter가 아니지만, 당신이 그 질문에 대답하지 않았다고 말할 것입니다. 스택 오버 플로우에서 델파이의 인기를 평가하고 있습니다. 당신은 확실히 요점을 말하지만 IMHO는 아주 작습니다. 기술을 사용하는 유일한 사람이 항상 나쁜 것은 아닙니다.
Simon Bergot

@Simon 페어 포인트, 나는 이제 모든 포인트에 답하고 질문 수의 분석을 커뮤니티 규모에 대한 더 넓은 포인트로 통합했습니다.
weston

더 많은 질문을하는 언어는 사용하기가 더 복잡하다고 주장 할 수 있습니다. ;-) Bold는 WPF와 어떻게 비슷합니까? WPF를 사용했지만 유사점을 보지 못했습니다.
짐 McKeeth

@JimMcKeeth Bold 및 WPF는 데이터가 변경 될 때 UI가 업데이트되고 필요한 경우 UI가 업데이트되도록 UI 컨트롤에 데이터를 바인딩하는 프레임 워크를 제공합니다.
weston

8

제가 유니에있을 때, 델파이로 프로그래밍하는 법을 배웠습니다. 조금 녹슬었지만 현재 C # 응용 프로그램으로 이식하기 위해 많은 델파이 코드를 읽고 있습니다.

델파이의 OO 기대와 절차에 비해 C #의 기능적 기대와 OO를 선호합니다. 코드를 선택할 때 코드를 선호하는 방법을 고려해야합니다. 단순함에 관해서는 많은 것이 없다고 생각합니다. 생산성도 마찬가지입니다.

RAD (rapid application development) 측면에서 winform과 Delphi GUI 디자인 사이에는 별다른 차이가 없습니다. 그들은 나에게 서로를 생각 나게한다.

반면에 WPF는 선언 스타일로 둘 다 선호하는 것입니다.

C # 또는 Delphi에 대한 공급 업체 제공 문서의 품질과 적용 범위에는 큰 차이가 없다고 생각합니다. C #에 대한 비 공급 업체 정보를 더 많이 찾을 것이라고 생각하지만 델파이를 많이 찾지 않았기 때문일 수 있습니다.

델파이로 쓰레드 프로그래밍을 할 필요가 없었으며, 몇 년 전에 내가했던 네트워킹은 기억할 수 없습니다.

병렬 처리, 이벤트 및 기타 스레딩 작업을위한 .NET 라이브러리가 좋습니다. 그래서 당신은 거기서 빠지지 않을 것입니다. 네트워킹과 관련하여 많은 지원이 있으므로 다시 권장합니다.

전반적으로 C # /. NET을 사용합니다. 이것은 부분적으로 WPF 때문이지만 C #으로 작성한 코드를 선호합니다. 델파이는 Linq와 같은 것을 가지고 있지 않다는 것을 알고 있습니다.


당신의 훌륭한 답변에 감사드립니다. 초보자로서 어떤 책을 읽었습니까? 이제 VS 2010에서 C # 4 및 .NET 4를 시작할 예정입니다.
elf1984

4
Delphi 앱을 C #으로 이식하려고 시도하십시오. 내가 시도하는 회사에 대해 들었을 때마다, 그들은 Joel이 "당신이 절대로하지 말아야 할 것들, 1 부"에서 한 모든 점을 확인하고 제품과 회사를 위해 재앙을 겪었습니다.
메이슨 휠러

죄송합니다. 초보자를위한 C # 4에 대한 조언은 없습니다. c #을 시작할 때 하나가 확실하지 않습니다 (1.1 일로 돌아갔습니다. 일부는 있었지만 읽지 못했습니다). 내가 시작했을 때 내가 사용한 첫 번째 책은 Jesse Liberty가 21 일 만에 Teach Yourself C ++이라고 생각했는데, 나는 UNI를 시작하기 전에 읽었습니다. 그것을 극복하는 데 나이가 걸렸지 만 많은 것을 배웠습니다. 내가 가진 또 다른 좋은 책은 Discover Delphi였습니다. 내가 추천하는 책은 David West의 Object Thinking입니다. OOP와 OOD, Bill Wagner의 효과적인 C #에 대해서도 생각할 수 있습니다.
Matt Ellen

... 초보자 책은 아니지만 기본 사항이 있으면 더 나은 프로그래머가되는 방법에 대한 훌륭한 팁과 조언을 얻습니다.
Matt Ellen

BTW Delphi에서 LINQ를 찾고 있다면 Alexandru Ciobanu의 DeHL 라이브러리를 확인하십시오. LINQ 스타일 컬렉션 및 연산자를 제공합니다. LINQ 구문 (의사 SQL 항목)은 아직 델파이에 없지만 컴파일러 팀은 향후 릴리스를 위해 노력하고 있습니다.
메이슨 휠러
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.