문제

D 언어 Java 및 C++에 대한 신뢰할 수 있는 대안?신뢰할 수 있는 대안이 되려면 무엇이 필요합니까?귀찮게 배워야 하나?복음을 전할 가치가 있나요?

내가 묻는 주된 이유는 새로운 C++ 표준(c++0x)이 거의 여기에 도달함에 따라 언어가 그것을 이해하는 사람과 관련하여 돌아올 수 없는 지점을 훨씬 넘어섰다는 것이 분명하다는 것입니다.나는 C/C++가 결코 죽지 않을 것이라는 것을 알고 있지만 어느 시점에서는 계속 나아가야 합니다.COBOL에도 전성기가 있었고 Java는 여러 측면에서 C++를 취소했습니다.그럼 다음은 무엇입니까?D가 청구서를 채우나요?

도움이 되었습니까?

해결책

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

그러나 소프트웨어 개발에는 언어 자체보다 더 중요한 다른 것들이 있습니다.이식성(얼마나 많은 플랫폼에서 실행되는지), 디버거 지원, IDE 지원, 표준 라이브러리 품질, 동적 라이브러리 지원, 공통 API에 대한 바인딩, 문서, 개발자 커뮤니티, 모멘텀, 상용 지원 등이 있습니다.이러한 모든 측면에서 D는 Java, C++ 및 C#에 절망적으로 뒤쳐져 있습니다.사실 저는 이러한 점에서 Python, Perl, PHP, Ruby, 심지어 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. 당시에는 큰 문제가 없었습니다. 우리는 Scite를 사용자 정의함으로써 우리 자신을 만들었습니다. 이것은 괜찮 았지만 이상적이지 않았습니다.
  2. 당시에는 디버거가 없었습니다. 우리는 Windbg가 히트 또는 미스를 기준으로 일하게했지만 신뢰할 수 없었습니다. 디버거가없는 디버깅 코드는 때때로 인생을 지옥으로 만들었습니다.
  3. 당시 선택할 수있는 2 개의 표준 라이브러리 (Tango and Phobos)가있었습니다. 우리는 하나로 시작하여 다른 하나로 전환했으며 실제로 두 가지 (Tangobos!)의 혼합이 필요했습니다. 이로 인해 두통이 생겼고 일부 코드는 다시 작성되었습니다.
  4. 다른 도구에 바인딩을 사용할 수 없습니다. 결국 우리는 DirectX로 전환해야했습니다 (내가 들어 가지 않을 이유로). DirectX에 대한 바인딩은 없었으므로 C ++로 직접 작성하고 .dll로 작성하고 바인딩해야했습니다. 이것은 상당히 불쾌한 일이었고 시간이 걸렸습니다.

전반적으로, 우리는 D를 쓰는 것을 좋아했습니다. 실제로 코드를 쉽게 작성하고 신속하게 배우게되었습니다. 내가 언급 한 문제는이 질문에 대해 받아 들여진 답변을 반영합니다. D에서 주소를 다루는 "추가"비트입니다.

나는 C ++가 막 다른 언어가되고 있다는 데 동의합니다. 그리고 지난 17 년 동안 그것을 사용한 후에는 고통을 겪습니다.

나는 D가 C ++의 정당한 후임자라고 생각합니다. 언어 관점에서 볼 때 그것은 "모든 옳은 일을합니다"(매 순간 결정에 동의하지 않더라도). 나는 C와 C ++를 사용하여 쇠퇴에 대해 D를 제외하고는 현대 언어의 세계를 유지하면서 실제로하는 일을 할 수있는 다른 시스템 수준 언어가 없다고 생각합니다! 이 역할을 채우는 것뿐만 아니라 탁월합니다! D1.x를 살펴보면 그 사실을 확신시키기에 충분할 것입니다. 그러나 D2.0을 볼 때 그것은 당신을 날려 버립니다. 오늘날에는 명령적이고 기능적인 프로그래밍 패러다임을 연결하는 데 D2.0뿐만 아니라 D2.0뿐만 아니라 다른 언어가 없다고 생각합니다. 이는 앞으로 몇 년 동안 더욱 중요해질 것입니다.

주류 수용 부족 또는 가시성과 대규모, 성숙한 라이브러리 등 - ~이다 물론 장애물. 그러나 나는 당신이 이것 때문에 그것을 쓸 수 있다고 생각하지 않습니다. 나는 d ~ 할 것이다 향후 몇 년 안에 가장 중요한 언어 중 하나가되기 위해 성장하십시오. 그리고 지금 그것을 진지하게 받아들이는 사람들은 그 시간이 오면 리드를 잡을 수있게 될 것입니다.

나는 그 차이가 대부분 Andrei Alexandrescu의 참여로 인해 발생할 것이라고 생각합니다. 그것은 어떤 식 으로든 Walter Bright를 불신하지는 않습니다. 그러나 Alexandrescu는 C ++ 커뮤니티에서 중요하고 설득력있는 모습입니다. 잠재적 인 D 스위처의 대부분이 어디에서 나올 곳이 있습니다. 또한 기능 프로그래밍 지원에있어 D2.0에 크고 중요한 기여를했습니다.

D는 여전히 시스템 수준의 언어의 베타 맥스가 될 것이라는 것이 여전히 밝혀 질 수 있지만, 내 돈은 향후 2 년 안에 돌아 다니고 있습니다.

나는 D가 천재, 주로 한 마음의 작품이라는 점을 좋아합니다. Walter Bright는 당시 Zortech 컴파일러가 환상적이었습니다.

이와 대조적으로 C++는 Bjarne이 영향을 미쳤음에도 불구하고 위원회에 의해 너무 많은 디자인을 적용했습니다.추가 기능이 너무 많고 이상한 새 구문이 있습니다.이러한 차이는 학습의 용이성과 일상적인 사용의 용이성, 더 적은 버그를 반영합니다.

더 일관된 언어는 더 나은 생산성과 프로그래머의 즐거움으로 이어집니다. 그러나 이것은 주관적이며 논쟁의 여지가 있습니다!(나는 내 ​​자신의 답변에 투표해야 할 것 같아요)

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

나는 그것을 보는 것이 좋습니다 D 비교 차트 언어의 기능이 무엇인지 확인하고 그것이 당신에게 적합한 소리인지 확인하십시오.

D 언어는 현대적입니다. 어떠한 언어도 완벽하지 않으며 이것에 대해 의심의 여지가 없습니다. 그러나 언어는 삶을 편하게하기 위해 태어났습니다. C ++에 비해 D 언어는 복잡성 측면에서 많은 좋은 기능을 가지고 있습니다. 다른 많은 언어 조합 전문 분야가 포함되어있어 코더가 다른 언어가 도입 한 최고의 기능을 통해 코더가 더 빠르게 코딩하는 데 도움이됩니다. 참조하십시오 :D 및 기타 언어에 대한 자세한 내용은

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

  • D vs C ++, C ++는 내 의견이 매우 좋은 언어이지만 코딩하기 어렵고 시간이 많이 걸리기 위해서는 성공을 거두기 위해 점점 더 많은 경험이 필요하지만 D는 단순성과 동일하게 수행 할 수 있습니다.

  • d vs c ++, c ++가할지 확실하지 않지만 d는 "auto"를 사용하여 유형 제한 변수 할당을 허용합니다.

  • D vs C ++, 다른 언어 경험이 있다면 직접 시작할 수 있고, 쉽게 학습 로드맵을 배우고, 강력한 경험이 풍부한 팀과 회사 지원에 의해 설계 될 수 있습니다.

  • D vs C ++, 내가 D에서 찾은 아주 좋은 것은 코드 스타일입니다. 그것은 C/C ++와 정확히 같은 모양과 느낌을주는 동안, 코딩하는 반면, D라고 불리는 현대적인 C/C ++를 상기시켜줍니다.

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

그것은 당신의 요구가 무엇인지에 달려 있습니다 - D로 작성된 대규모 상업용 응용 프로그램 하다 서버 측에 존재하며 해당 D (일반적으로 탱고/망고 사용)는 완벽하게 맞으며 다른 언어/플랫폼보다 더 많은 요청을 제공 할 수 있습니다.

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

D는 매우 인상적이며 Andrei의 책은 잘 작성되었습니다. 그러나 다른 사람들이 말했듯이 도구와 플랫폼 지원이 필요합니다. GDC는 시간이 지남에 따라 둘 다에 대한 답이 될 수 있습니다.

당신은 이것을 본 적 있습니까?

"GNU 디버거는 D 언어 지원을 추가합니다":http://www.linux.com/news/enterprise/biz-enterprise/358956-gnu-debugger-adds-language-support

또한 DigitalMars 사이트에는 C 및 C ++ 인터페이스를 논의하는 페이지가 있습니다 (없이는 살 수없는 라이브러리의 경우). C 헤더 파일이 주어지면 D 프로토 타입을 작성하는 데 찌르는 도구가 있는지 궁금합니다.

개인적으로 나는이 시점에서 D에서 큰 프로젝트를 수행하려는 것을 추진하지는 않았지만 나는 ~일 것이다 사내 도구에 d를 사용하고 경험을 얻고 다른 사람들을 소개하십시오.

원래 질문은 D가 Java와 C ++에 대한 신뢰할 수있는 대안인지 여부였습니다. 나는 D와 Java가 실제로 실제로 많은 경쟁을 할 것이라고 생각하지 않습니다. D는 C ++와 경쟁하고 이제 이동합니다. 다른 질문은 D와 GO의 차이점을 다루지 만 GO는 일반적으로 사용하기 쉽게 간주됩니다. 그래서 나는 D의 미래가 C ++, 현재 언덕의 왕 사이에 숨을 쉬기위한 공간이 얼마나 많은지에 달려 있고, Go Go는 Google의 후원을 가진 훨씬 쉬운 대안입니다.

업데이트 : 방금 발견했습니다 Andrei의 책에서 내가 가장 좋아하는 장, 동시성은 온라인에서 무료로 제공됩니다. 확실히 읽을 가치가 있습니다!

그리고 여기에 a GO 및 D의 상대 장점/목표/접근법에 대한 LOOONG 토론.

질문에 대한 대답이있는 것 같습니다. D는 C ++에 비해 더 나은 언어입니다.

실제 목적으로 D가 더 나은 인프라를 가지고 있는지 여부에 대한 문제는 부차적입니다.

간단히 말해서, 그들 주위에 지원이없는 새로운 언어라면 D는 더 나은 언어입니다. Ergo는 더 나은 언어입니다.

언어로서, 나는 항상 d가 c ++보다 c#에 더 가깝다고 느꼈다. 기능과 라이브러리가 아니라 "느낌"에 있습니다. 훨씬 더 깨끗하고, 더 좋고 ... 재미 (C ++보다). 신뢰할 수있는 대안이되는 가장 큰 장애물은 도구, IDE 및 디버거입니다. D가 광범위한 사용/채택의 장애물을 극복하면 더 많은 도구와 라이브러리가 나타납니다. (사용 가능한 IDE와 디버거가 있다면 나는 나 자신이 D로 돌아갈 것이다.)

내 애완 동물 프로젝트에 적합합니다. 나는 고용주의 프로젝트에 그것을 사용할 것이지만, 내가 계속 진행 한 후에 소스를 인수 할 사람을 찾는 것이 얼마나 어려운지 모른다. 적어도 지원되는 플랫폼에서는 피해야 할 기술적 인 이유가 없습니다. (나무 노크)

한 가지 방법은 해당 지역의 일자리를 찾는 것입니다. 하고 싶은 일자리를 찾고 그들이 어떤 기술을 요구하는지 확인하십시오. 그들이 C ++ 또는 Ruby 또는 Oracle 또는 D를 요구하는 경우, 그것은 대부분 원하는 직업을 얻는 데 도움이되는 기술입니다.

매우 잘 설계된 언어처럼 보입니다. C -C ++보다 훨씬 낫습니다 - 목표 C. 나는 IDE 나 디버거없이 잠시 동안 살 수 있지만 d 2.0에 대한 양호한 문서화 된 라이브러리가 없으면 살 수 있습니다.

6 개월 후에 다시 확인하겠습니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top