D는 Java 및 C ++의 확실한 대안입니까? [닫은] 개선하고 다시 열 수

는 IS D 언어는 자바와 C ++에 대한 신뢰할 수있는 대안? 믿을만한 대안이 되려면 무엇이 필요할까요? 나는 그것을 배우고 귀찮게해야합니까? 복음을받을 가치가 있습니까?

내가 묻는 주된 이유는 거의 여기에 새로운 C ++ 표준 (c ++ 0x)이 있기 때문에 언어를 이해하는 사람과 관련하여 언어가 돌아 오지 않는 지점을 넘어 섰다는 것이 분명합니다. C / C ++는 결코 죽지 않을 것이지만 어느 시점에서 우리는 계속 나아가 야한다는 것을 알고 있습니다. COBOL조차도 시대를 맞았으며 Java는 여러면에서 C + +를 취소했습니다. 다음은 무엇입니까? D는 청구서를 채우나요?



답변

실제 소프트웨어 개발을위한 프로그래밍 언어의 성공과 인기를 결정하는 것은 언어 자체의 품질과 부분적으로 만 관련이 있습니다. 순수한 언어 인 D는 C ++과 Java에 비해 많은 장점을 가지고 있습니다. 최소한 순수한 언어로서 신뢰할 수있는 대안이며 다른 모든 것들은 평등합니다.

그러나 소프트웨어 개발에는 언어 (그 자체가 실행하는 플랫폼 수), 디버거 지원, IDE 지원, 표준 라이브러리 품질, 동적 라이브러리 지원, 공통 API에 대한 바인딩, 문서, 개발자 등 언어 그 이상이 있습니다. 커뮤니티, 운동량 및 상업적 지원 등이 있습니다. 이러한 측면에서 D는 Java, C ++ 및 C #보다 절망적으로 뒤떨어집니다. 사실, 나는 파이썬, 펄, PHP, 루비, 심지어는 JavaScript와 같은 소위 “스크립트”언어의 배후에 있다고 주장합니다.

둔감하게도, 단순히 D를 사용하여 대규모의 크로스 플랫폼 애플리케이션을 구축 할 수 없습니다. 미성숙 표준 라이브러리를 사용하면 최신 IDE (Visual Studio 및 Xamarin Studio / MonoDevelop 모두에 대한 플러그인)가 지원되지 않습니다. 동적 / 공유 라이브러리 지원 및 다른 언어에 대한 바인딩이 거의없는 D는 오늘날 옵션이 아닙니다.

D에 대한 것을 좋아한다면 반드시 배우십시오. 이미 Java와 C ++을 알고 있다면 오래 걸리지 않습니다. 저는 전도가 도움이되지 않을 것이라고 생각합니다.이 시점에서 D가 성공하기 위해서는 더 많은 사람들이 조용히 그것을 사용하고 표준 라이브러리 및 IDE 지원과 같은 주요 단점을 해결해야합니다.

마지막으로 C ++의 경우 언어가 너무 복잡하다는 데 동의하지만 수천 개의 회사가 언어의 더 작고 명확하게 정의 된 하위 집합 만 허용함으로써 여러 언어를 건강한 언어 조합의 일부로 C ++을 성공적으로 사용하고 있습니다. 원시 성능과 작은 메모리 사용이 모두 필요할 때 C ++을이기는 것은 여전히 ​​어렵습니다.


답변

내 경험을 믹스에 추가하기 만하면됩니다.

약 1 년 전에 저는 3 개월 동안 소규모 게임 프로젝트 (3 개의 코더)를 작업했는데 여기서 D를 기본 언어로 사용했습니다. 우리는 SDL과 우리가 사용하고있는 다른 툴에 대한 바인딩을 이미 가지고 있었기 때문에 부분적으로 실험으로 선택했으며, 대부분 C ++보다 이점이있는 것으로 보입니다.

우리는 그것을 사용하는 것을 좋아했습니다. 빨리 배우고 쓰기가 쉬웠습니다. 그것의 많은 기능들이 귀중한 것으로 판명되었고, C ++로 돌아간 것이 그리워졌습니다.

그러나 다음과 같은 점으로 인해 우리의 삶은 더욱 어려워졌습니다.

  1. 당시 주요 문제였던 좋은 IDE는 없었습니다. 우리는 Scite를 커스터마이징함으로써 우리 자신의 것을 만들었습니다. 이것은 정상적으로 작동했지만 이상적이지 않았습니다.
  2. 당시에는 디버거가 없었습니다. 우리는 WINDBG가 적중에 따라 작동하도록 만들었지 만 신뢰할 수 없었습니다. 디버거없이 코드를 디버깅하면 때때로 삶이 어려워졌습니다.
  3. 당시에 선택할 수있는 2 개의 표준 라이브러리 (Tango 및 Phobos)가있었습니다. 우리는 하나에서 시작하여 다른 것으로 전환했으며 실제로 (Tangobos!) 두 기능의 혼합이 필요했습니다. 이로 인해 두통이 발생하고 일부 코드가 다시 작성되었습니다.
  4. 다른 도구에 바인딩 할 수 없습니다. 결국 우리는 DirectX로 전환해야했습니다. DirectX에 대한 바인딩이 없었으므로 C ++로 직접 작성하여 .dll로 빌드하고 바인딩해야했습니다. 이것은 상당히 불쾌한 일이었고 시간이 걸렸습니다.

전반적으로, 우리는 D를 작성하는 것을 좋아했습니다. 실제로 코드를 작성하는 것은 쉬워졌고 빨리 배울 수있었습니다. 내가 언급 한 문제는이 질문에 대해 받아 들여진 답변을 반영합니다. D에서 어드레싱해야하는 “추가”비트가 핵심입니다.


답변

C ++이 막 다른 언어가되고 있다는 데 동의합니다. 지난 17 년 동안 사용한 후에는 그 말을 아프게합니다.

나는 D가 C ++의 올바른 후계자라고 생각합니다. 언어 관점에서 볼 때 “모든 옳은 일을한다”(매 순간 결정에 동의하지 않더라도). 저는 C와 C ++에서 D를 제외하고는 현대 언어의 세계에서 스스로를 유지하면서 실제로 할 수있는 다른 시스템 수준의 언어가 없다고 생각합니다! D는이 역할을 수행 할뿐만 아니라 뛰어납니다. D1.x를 살펴보면 충분히 확신 할 수있을 것입니다. 그러나 D2.0을 살펴보면 실망하게됩니다. 필연적으로 기능적 프로그래밍 패러다임을 연결하는 데 D2.0뿐만 아니라 작동하는 다른 언어가 없다고 생각합니다. 앞으로 몇 년 만에 더 중요해질 것입니다.

성숙뿐만 아니라 대규모 라이브러리를 – – 또는 가시성 – 주류 수용의 부족 이다 과정의 장애물. 그러나 나는 이것이 당신이 그것을 쓸 수 있다고 생각하지 않습니다. 앞으로 몇 년 안에 D 가장 중요한 언어 중 하나로 성장할 것이라고 확신합니다. 현재 진지하게 받아들이고있는 언어는 그 시대가 오면 리드를 잡을 수있는 좋은 위치에있게 될 것입니다.

저는 Andrei Alexandrescu의 참여로 인해 그 차이가 발생할 것이라고 생각합니다. D를 세상에 데려 오는 데있어 중대한 일을 해낸 월터 브라이트는 어떤 식 으로든 낙담하지 않습니다. 그러나 Alexandrescu는 확실히 C ++ 커뮤니티에서 중요하고 매력적이며, 대부분의 잠재적 인 D 스위처가 나올 곳입니다. 또한 그는 함수형 프로그래밍 지원에서 D2.0에 중요한 기여를했습니다.

D가 시스템 수준 언어의 베타 맥스 인 것으로 판명 된 것으로 판명 될 수 있습니다. 그러나 내 돈은 앞으로 2 년 안에 돌아 서고 있습니다.


답변

나는 D가 천재의 작품, 주로 Zortech 컴파일러가 당시 환상적 인 월터 브라이트 (Walter Bright)의 작품이라는 것을 좋아합니다.

대조적으로 Bjarne이 영향을 주더라도 C ++은위원회에 의해 너무 많은 디자인입니다. 너무 많은 애드온 기능과 이상한 새로운 구문. 이 차이는 학습의 용이성과 일상적인 사용의 용이성, 버그 수 감소를 반영합니다.

보다 일관된 언어는 더 나은 생산성과 프로그래머의 즐거움으로 이어집니다. (내 답변에 투표해야한다고 생각합니다)


답변

D는 좋은 언어 이고인기 가 있지만 모든 언어와 마찬가지로 다른 도구 일뿐입니다. 어떤 도구를 사용할지는 사람의 종류, 생각하는 방식, 작업 환경, 프로그램에 적용되는 언어의 제한 사항, 가장 중요한 것은 프로그램 자체에 따라 다릅니다. 시간이 있다면 D. 최악의 시나리오를 배우는 것이 좋습니다. 절대 사용하지 않을 것입니다. 아마도 당신은 당신이 가장 좋아하는 부분과 그것이 가장 밝게 빛나는 조건을 배우고 새로운 프로그램을 만들 때 그것을 활용할 것입니다.

내가보고 추천 할 것입니다 D 비교 차트 가 바로 당신을위한 소리 경우 기능은 언어이며, 어떻게 볼 수 있습니다.


답변

D 언어는 현대적입니다. 완벽한 언어는 없으며 이것에 대해 의심의 여지가 없습니다. 그러나 언어는 인생을 더 쉽게 만들기 위해 태어났습니다. C ++에 비해 D 언어는 복잡성 측면에서 많은 좋은 기능을 가지고 있습니다. 다른 많은 언어 조합 전문이 관련되어있어 다른 언어에 의해 도입 된 TOP 기능을 사용하여 코더가 더 빠르게 코딩 할 수 있습니다. D 및 기타 언어에 대한 자세한 내용은 다음 참조하십시오.

  • D vs C ++는 호환성이 있으며, 거대한 C ++ 언어가 관여하고 D와의 호환성이 필요합니다. D는 이미 C와 100 % 호환성을 허용하므로 여전히 좋은 승리입니다.

  • D 대 C ++, C ++은 제 의견은 매우 좋은 언어이지만 코딩하기가 어렵고 시간이 오래 걸리며 성공하려면 더 많은 경험이 필요하지만 D는 단순성과 동일한 작업을 수행 할 수 있습니다

  • D 대 C ++, C ++이 확실하지 않지만 D는 “auto”를 사용하여 유형 제한 변수 할당을 허용하지 않습니다. 엄격한 유형을 만들 때 변수 동적을 갖는 것이 좋습니다.

  • D vs C ++, 다른 언어 경험이 있다면 바로 시작할 수 있고, 학습 로드맵이 쉽고, 숙련 된 팀 및 회사 지원으로 설계되었습니다.

  • D 대 C ++, D에서 찾은 아주 좋은 점은 코드 스타일이며, C / C ++와 똑같은 모양과 느낌을줍니다.

D 언어에 대한 더 많은 이유가 있습니다. 언어를 과소 평가할 이유가 없으며 항상 사용자 선택입니다.


답변

D로 작성 대규모 상업 응용 프로그램 – 정말 귀하의 요구가 무엇인지에 따라 달라 서버 측에 존재를하고, (일반적으로 탱고 / 망고 사용)이 D에 대한 완벽한 적합하고, 당신은 가능성이 더 많은 요청을 제공 할 수 있습니다 다른 언어 / 플랫폼보다.

프로토콜 및 상호 작용 성 (많은 것이 많음) 측면에서보다 전문화 된 솔루션의 경우 필요한 라이브러리를 찾는 데 더 많은 문제가 있으며 도구가 부족하면 더 많은 영향을 줄 수 있습니다.