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 ++로 돌아간 것이 그리워졌습니다.
그러나 다음과 같은 점으로 인해 우리의 삶은 더욱 어려워졌습니다.
- 당시 주요 문제였던 좋은 IDE는 없었습니다. 우리는 Scite를 커스터마이징함으로써 우리 자신의 것을 만들었습니다. 이것은 정상적으로 작동했지만 이상적이지 않았습니다.
- 당시에는 디버거가 없었습니다. 우리는 WINDBG가 적중에 따라 작동하도록 만들었지 만 신뢰할 수 없었습니다. 디버거없이 코드를 디버깅하면 때때로 삶이 어려워졌습니다.
- 당시에 선택할 수있는 2 개의 표준 라이브러리 (Tango 및 Phobos)가있었습니다. 우리는 하나에서 시작하여 다른 것으로 전환했으며 실제로 (Tangobos!) 두 기능의 혼합이 필요했습니다. 이로 인해 두통이 발생하고 일부 코드가 다시 작성되었습니다.
- 다른 도구에 바인딩 할 수 없습니다. 결국 우리는 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 vs C++, i am not sure if C++ does, but D do allow none type restriction variable assignment using "auto", which is good to have a variable dynamic, when require you can make a strict type
D vs C++, if you have other language experience, you can straight get started with it, it has easy learning road map, and its getting designed by a strong experienced team and company support
D vs C++, the very nice thing i found of D, is the code style, it gives the look and feel exactly the same like C/C++, while coding it reminds i am doing really modern C/C++ which called D
There are lot of more good reason for D language, there is no reason to underestimate any language, its always the user choice.
It really depends on what your needs are - large scale commercial applications written in D do exist on the server side, and for that D (typically using Tango/Mango) is a perfect fit, and you are likely to be able to serve more requests than with any other language/platform.
For more specialized solutions in terms of protocols and interactivity (which many are) you will have more problems finding the needed libraries, and the lack of tools is likely to affect you more.
D is pretty impressive, and Andrei's book about it is well-written. But as others have said, you need the tools and the platform support. GDC may, over time, be the answer to both.
Have you seen this?
"GNU Debugger adds D language support": http://www.linux.com/news/enterprise/biz-enterprise/358956-gnu-debugger-adds-d-language-support
Also, the digitalmars site has pages discussing interfacing to C and C++ (for those libraries you just can't live without). I wonder if there are any tools that, given a C header file, will take a stab at writing the D prototypes.
Personally I wouldn't at this point push for doing a large project in D, but I would use D for in-house tools, getting experience with it and introducing others to it.
The original question was whether D is a credible alternative to Java and C++. I don't think D and Java are really going to compete much in practice; D competes with C++ and now Go. Other questions address the differences between D and Go, but Go is generally considered easier to use. So I suspect that the future of D depends a lot on how much room there is for it to breathe between C++, the current king of the hill, and Go, the much easier alternative that has Google's backing.
UPDATE: I just discovered that my favorite chapter of Andrei's book, the one on concurrency, is available for free online. Definitely worth a read!
And here's a loooong discussion about the relative merits/objectives/approaches of Go and D.
It looks like the question has been answered. D is the better language compared with C++.
The question of whether for practical purposes D has better infrastructure around is secondary.
In short if they are both brand new languages without any support around them D is the better language, ergo it is the better language.
As a language, I always felt that D is closer to C# than C++. Not in features and libraries, but in "feeling". It's much cleaner,nicer ... fun (than C++). IMHO the biggest obstacle in becoming a credible alternative is tools,IDE and debugger. If D overcomes some obstacles of widespread usage/adoption, more tools and libraries will manifest. (I myself will return to D, if there will be an usable IDE and debugger.)
Works great for my own pet projects. I'd use it for employers' projects but for not knowing how hard it would be for them to find someone to take over the source after i move on. There are no technical reasons to avoid it, at least on the supported platforms. (knock on wood)
One approach is to search for jobs in your area. Find the jobs you would like to do and see what skills they are asking for. If they are asking for C++ or Ruby or Oracle or D, then that is the skill which is mostly to help you to get the job you want.
It looks like a very well designed language; much better than C - C++ - Objective C. I can live without an IDE or a debugger for a while, but not without a good, documented library for D 2.0.
I'll check back in 6 months...
참고URL : https://stackoverflow.com/questions/146850/is-d-a-credible-alternative-to-java-and-c
'Programing' 카테고리의 다른 글
div를 부모의 상단에 맞추고 인라인 블록 동작을 유지하는 방법은 무엇입니까? (0) | 2020.06.03 |
---|---|
IntelliJ IDEA에서 명령 줄 인수를 어떻게 입력합니까? (0) | 2020.06.02 |
VIM에서 실제로 하나의 긴 줄을 여러 줄로 나누려면 어떻게해야합니까? (0) | 2020.06.02 |
Spark 데이터 프레임에 전체 열 내용을 표시하는 방법은 무엇입니까? (0) | 2020.06.02 |
C에서 void 포인터에 대한 포인터 산술 (0) | 2020.06.02 |