D 현실에서 프로그래밍 언어? [닫은]


138

실제 응용 프로그램에 D를 사용하는 사람이 있습니까? 그렇다면 무엇을 사용하고 있습니까? D로 작성된 웹에서 큰 것을 찾을 수없는 것 같습니다.

알려진 큰 사용자의 부족에도 불구하고 D는 나에게 매우 무시할만한 언어 인 것처럼 보이고 TIOBE 에 따르면 상당히 인기가 있습니다.


11
최근 dlang 포럼 에서 발표 된 Facebook은 현재 프로덕션 환경에서 D를 사용하고 있습니다.
sghill

D 자체가 큰 복잡한 응용 프로그램을 구축하기에는 상당히 좋지 않기 때문에 큰 것은 없습니다. 그것은 표면에 멋지게 보이지만 일단 상업적인 일을 시도하면 모든 균열이 보이기 시작하고 팬 보이가 상업적 청중을 위해 적절한 구조화 된 소프트웨어를 만들고자하는 욕구는 거의 없습니다 (돈과 관련이 있다고 확신합니다) 리더십과 조직도 마찬가지입니다). 명령 줄 유틸리티 나 5k 라인 알고리즘을 작성하는 것이 한 가지이지만 GUI, 오디오 등과 같은 여러 영역을 포함하는 매우 복잡한 비즈니스 응용 프로그램을 만드는 것은 완전히 다릅니다.
Stretto

물론 당신은 무언가를 해킹 할 수 있지만 그것은 상업적이지 않습니다. 기업은 시간이 너무 오래 걸리는 것에 투자하지 않을 것입니다. 적절한 IDE가 없으며 내가 사용한 모든 것이 방금 무언가를 bash로 만들고 싶었습니다. 오류 메시지가 끔찍하고 디버거가 작동하지 않거나 작동하지 않기 때문에 앱을 올바르게 디버깅하는 데 약 10 배 느립니다. 우리가 기대하는 현대적인 기능이 존재하지 않는거나 가난하고, 더 논리적 구조가 없습니다 그것을 가지고 (가지, "임의" "씹는"와 "detabber"등 같은 이상한 명명 체계를 이동하기 때문에 라이브러리는 fubar'ed한다
Stretto

음과 양인 것 같아요. D의 어떤 것들은 놀랍습니다. 아직 아무것도 오지 않습니다 (아직) ... 그러나 다른 한편으로는 실패한 것은 꽤 강합니다. 하나는 사소하거나 알고리즘적인 일을하지 않고 실제 앱을 작성하는 데 실제로 시간을 할애 할 때만 그러한 것들을 발견합니다. D 조직이 똥을 til 때까지 (얼마나 오래 걸립니까? 10 년, 20 년?) 실제 기업은 그것에 투자하지 않을 것입니다. IDE는 문제가되지 않기 때문에 시간은 비용이 들며 비즈니스는 앱을 디버깅하는 데 10 배의 시간을 소비하지 않습니다.
Stretto

@Stretto 무슨 뜻인가요? dlang.org/orgs-using-d.html
Bauss

답변:


77

컴퓨터 그래픽 분야의 연구 작업에 D를 사용하고 있습니다. 나와 다른 사람들은 D를 사용하여 수행 한 작업을 바탕으로 우리 분야에 논문을 발표했습니다. 성능이 중요한 중소 규모의 연구 프로젝트에 사용할 준비가 된 것 같습니다. 어쨌든 처음부터 시작하기 때문에 연구 작업에 적합합니다. 따라서 통합에 대해 걱정할 레거시 코드가 많지 않습니다.

널리 사용되는 또 다른 영역은 웹 서비스 인 것 같습니다. 다른 사람이이 공간에있는 사람에 대해 언급 할 수 있기를 바랍니다. 그러나 저 역시 아이디어가 성능이 종종 중요하므로 컴파일 된 금속 언어를 원한다고 생각합니다. 서비스는 종종 상당히 작은 자체 포함 프로세스이므로 많은 양의 레거시 C ++ 코드와의 상호 운용이 실제로 필요하거나 유용하지는 않습니다. 따라서 D는 문에 발을 넣을 수 있습니다.

D는 이런 식으로 풀뿌리 추종자들을 계속 얻을 것이라고 생각합니다. 어떤 이유로 든 C ++ 레거시를 버릴 수있는 작은 프로젝트에서 사용하기가 훨씬 더 즐겁고 생산적인 프로그래밍 언어를 얻을 수 있습니다.

그러나 풀뿌리 사용자가 엄청나게 많을 때까지 대기업 사용자에게는 큰 영향을 미치지 않습니다.


10
나는 C 라이브러리에 대한 바인딩을 사용하여 순수하게 D로 클라이언트 / 서버 응용 프로그램을 개발하지만 네덜란드에서 가장 인기있는 서비스 중 하나에 대한 클라이언트의 GUI 부분만을 위해 개발합니다. 상사를 설득해야했지만 후회가없는 것 같습니다. ;-)-D는 특히 표준 라이브러리가 Windows에서도 BSD 소켓의 구현을 제공하기 때문에 빛납니다. 한 번만 작성하고 모든 곳에 배포하십시오.
Jesse Brands

@JesseBrands 포보 또는 탱고를 사용하십니까?
qed

88

저는 D에서 생물 정보학 연구를하고 있습니다. 저에게 D의 핵심은 트레이드 오프에 대해 매우 수준이 높은 접근법을 취하고 수익 감소의 원리를 인식한다는 것입니다.

오버 헤드 제로 (zero-overhead) 원칙을 엄격하게 준수하는 C ++와 달리 D는 언어를보다 유용하게 사용할 수있는 경우 성능 / 공간 비용이 작은 기능을 허용합니다. 여기에는 가비지 수집, 각 클래스의 모니터 객체, 런타임 유형 정보 등이 포함됩니다.

Ruby, Python, PHP 등과 달리 D는 스크립트 언어보다 동적이면서 프로그래밍하기가 다소 어려워도 C만큼 빠릅니다.
결과는 개발 시간과 실행 시간이 똑같이 중요 할 때 최적의 언어이며, 필자의 분야에서는 대부분의 시간입니다.

마찬가지로 D는 안전성과 유연성에 대해 매우 수준 높은 접근 방식을 취합니다. 프로그래머는 기본적으로 자신이하는 일을 알고 있지만 실수를한다고 가정합니다.

C 및 C ++와 달리, 코드의 모든 위치에서 포인터, 안전하지 않은 캐스트, 수동 메모리 관리 등을 사용하고 싶지 않다고 가정합니다. 오류가 발생하기 쉬우므로 크기 조정 배열을 사용하기 위해 망칠 때 -page template 오류 메시지가 표시됩니다.

Java 및 기타 속박 및 훈련 언어와 달리 D는 때때로 포인터, 안전하지 않은 캐스트, 수동 메모리 관리 등이 필요악 한 것으로 가정하고 실제 템플릿, 연산자 오버로드 등을 작성하지 않고 처리 할 수있을 정도로 똑똑하다고 가정합니다. 난독 화 된 코드. 또한 범위를 벗어난 배열을 망쳐 놓고 액세스 할 수 있다고 가정하지만 프로그래머는 주어진 상황에서 안전과 속도 사이에 어떤 트레이드 오프가 이루어져야하는지 잘 알고 있다고 가정합니다. 따라서 배열의 범위 검사 여부는 단순히 컴파일러 스위치에 의해 결정됩니다.


2
모니터 개체 란 무엇입니까? 이것에 대한 결과를 찾지 못하는 것 같습니다.
Samaursa

2
나는 C 언어에 비해 D 언어를 많이 좋아합니다. 더 빠른 컴파일 시간, 더 적은 코드를 사용하는 기능, 헤더 파일 등이 없습니다. 그러나 문제는 심각한 GUI 작업을 수행하는 사람이 없다는 것입니다. 물론 GtkD를 사용할 수는 있지만 일련의 멋진 차트를 사용해보십시오. GUI를 위해 Chromium과 통합하는 데 유망한 작업이 있지만 그 프로젝트는 문서화되지 않았으며 그 공간에서 더 많은 플레이어가 필요합니다. 나는 그 변화를 바라고 있지만 2015 년 9 월에 내가 본 것입니다.
Volomike

개체 모니터가 멋지다 **. 그것은 모든 방법을 잠그고, 정말 낭비입니다 ...
dev1223

@Volomike 나는 또한 최근 D를 보았고 마찬가지로 그래픽 인터페이스 도구를 만드는 것이 힘들었습니다. 나는 현재 D로 우아한 GUI 도구를 만들기위한 사실상의 솔루션을 가지고 있지 않으며 곧 해결을 시작할 수 있습니다.
dimiguel

32

메일 서버 제품을 시장에 보낸 작은 회사가 있습니다. 그들은 적어도 2 명의 사람들이이 프로젝트에서 풀 타임으로 일했습니다.

또한 IT 비즈니스의 주요 업체에는 대규모 내부 프로젝트에서 D를 사용하는 직원이 여러 명 있습니다.

또한 벤처 자금을 찾는 한 회사, D를 파트 또는 풀 타임으로 D를 사용하는 소규모 회사의 직원 (최소 4 명), 컨설팅 시장에서 적극적으로 기회를 찾는 커플 (나 포함)을 알고 있습니다.

나는 아마 내가 알아야 할 몇 가지를, 아마도 내가 들어 보지 못했던 몇 가지를 생략했지만 위의 내용은 내가 커뮤니티를 통해 나 자신을 아는 사람들이 많기 때문에 여전히 존재합니다.

현재 소득의 작은 비율이 D에서 발생합니다.


단체를 지명 해 주시겠습니까? 이 프로젝트들에 대해 더 많이 아는 것도 좋을 것입니다.
nbro

28

나는 웹 개발에 D를 사용하고 C / C ++에 비해 훨씬 더 생산적인 것으로 판명되었다. 물론 루비 / php / 파이썬을 기반으로하는 많은 프레임 워크가 있습니다. 그러나 많은 스크립트 언어에서와 마찬가지로 C만큼 빠르고 프로그래밍하기 쉬운 독창적 인 것을 개발하려면 D가 좋은 선택입니다.


3
내가 요청할 수 있습니다? 어떤 프레임 워크 또는 라이브러리를 사용하십니까?
Zelenova

26

루프 (HIL) 테스트 환경의 하드웨어에 D를 사용합니다. 자동차 분야의 소프트웨어 테스트를위한 것입니다. D는 시스템 프로그래밍 언어로서 실시간 프로그램 (리눅스 실시간 확장 RTAI-LXRT의 IRQ 핸들러)에서 사용될 수 있기 때문에 여기서 사용할 수 있습니다.

진행중인 SWT / JFace 포트를 사용하여 이전에 Java에서 수행했던 D에서 더 많은 작업을 수행하고 작업 할 계획입니다.



19

컴파일 타임 코드 변환에 대한 연구에서 D를 사용하고 있습니다. 튜플 및 믹스 인과 결합 된 고급 템플릿은 코드 변환을 훨씬 쉽게하고 별도의 도구없이 컴파일 시간 동안 코드 변환을 수행 할 수 있습니다.

D를 메타 프로그래밍하여 프로그램을 향상시키기 위해 D를 사용하는 물리학 자의 예가 있습니다.

비디오 -컨퍼런스 토크, 물리학자가 사용하는 소스 사이트를 찾을 수 없습니다.



17

트래픽이 많은 전체 네트워크 인프라는 D1과 탱고에만 기반합니다. 우리는 베를린에있는 젊은 스타트 업 회사입니다 : sociomantic.com


14

현재 진행중인 작업은 C #을 D로 변환하는 시스템입니다. 이것은 소프트웨어 시스템을 개발하기위한 수익 프로젝트의 일부입니다.




7

콘솔 포트를 C ++로 다시 작성해야한다고 생각하지만 ABA Games 가 출시 한 많은 게임 은 D 1.x로 작성되었습니다.

나는 D로 게임 프로토 타입을 꽤 많이 썼지 만, 자신의 이익을 위해 그것들을 썼고 그중 어떤 것도 발표하지 않았기 때문에 그것이 '실제 세계'에 해당되는지 확실하지 않습니다.


D를 사용하여 만든 게임에 대해 더 구체적으로 말씀해 주시겠습니까?
nbro

7

다양한 하드웨어 테스트 스테이션에서 테스터 프로토콜을 추적 성 및 그와 유사한 것들을 위해 표준화 된 출력 형식으로 변환하기위한 소프트웨어를 작성했습니다.

D 1.x와 Phobos 라이브러리로 작성된 5k 라인 이상의 코드.

D는 배우기 매우 쉬우 며 (Pobos 라이브러리의) 함정을 무시하고 프로그램하기에 진정한 기쁨입니다.


6

글로벌 최적화 알고리즘 개발에 대한 연구 프로젝트에 D를 사용했습니다. 신경망 훈련 문제에 적용했습니다. 이것을 "실제 세계"라고 부르는 것은 당신에게 달려 있습니다.


당신이 한 일에 관한 소스 코드 나 정보가 있습니까?
nbro


6

버전의 두 번째 표준 인 D2를 사용합니다. 실시간 애플리케이션 (예 : 3D 엔진)을 작성했습니다.

언어는 매일 점점 더 강력 해집니다. D는 매우 실용적이며 모든 임베디드 기능, 특히 메타 프로그래밍 패러다임은 C ++보다 훨씬 뛰어납니다. 구문은 더 명확합니다. filter 또는 reduce 와 같은 함수를 통해 기능적 프로그래밍 의 장점을 사용할 수 있으며 가장 중요한 기능 중 하나는 모든 C 라이브러리를 사용할 수 있습니다.

확실히 내가 가장 좋아하는 언어이며, 널리 사용되는 언어가 될 것입니다.


D를 사용하여 만든 소스 코드를 볼 수 있습니까?
nbro

그 의견 이후로 오래되었습니다! 나는 지금 Rust와 Haskell로 코딩하고 있지만, 몇 가지 프로젝트가 있습니다. 내 github에 물건이 있지만 파낼 가치가 있다고 생각하지 않습니다. 그 의견은 4 살입니다! 이 모든 것의 현재 상태를 살펴 봐야합니다…
phaazon

4

나는 우리 가이 질문에 대한 즉각적인 답변이 부족하다는 것을 읽을 수 있다고 생각합니다. 즉, 많은 스택 스택 플로우 응답자가 D를 사용하고 있지 않다는 것입니다. 또한 TIOBE 목록의 순위 수준에 대해 약간 놀랐습니다. 다음으로 연결.

월터 브라이트 (Walter Bright)는 현재 몇 년 동안이 언어를 연구 해 왔으며 90 년대에 조르 테크 C ++ 컴파일러로 어떤 일을 잘했는지 기억하는 많은 추종자들이 있다고 생각합니다. 또한 언어는 현재 기능적인 방향으로 기울어지고있는 것으로 보입니다.


3
실제로이 웹 사이트에서 D를 검색하는 것은 현재 불가능합니다. "d"또는 "d programming"을 검색하면 "no hits"가 표시되고 "d"에 대한 태그를 검색하면 "d"는 포함하지만 "d"는 포함하지 않은 여러 페이지의 태그가 나열됩니다. 그래서 그것과도 관련이있을 수 있습니다.
Baxissimo

20
검색 창에서 [d]를 검색하여 태그 기반 검색을합니다.
Gregg Lind 18


0

Perl에서 D로 내부 도구 중 일부를 다시 작성하는 프로젝트를 시작하고 있습니다. 언어의 디자인 철학에 매우 흥분하여 D를 선택했습니다. 저는 오랫동안 프로그래밍을 해왔으며 어셈블러에서 고급 (대부분 C), 스크립팅 언어 (대부분 Perl)에 이르기까지 많은 언어를 사용했으며 D는 몇 년 동안 배우고 싶은 첫 번째 언어입니다. .

보안이라는 한 가지 주요 이유로 컴파일 된 언어로 전환하기로 결정했습니다. 기능적으로 Perl은 내가 작업하고있는 툴셋에서 잘 작동하지만 안전하지 않다. 스크립트를 실행할 수있는 사람은 누구나 수정 된 버전의 툴을 읽고, 복사하고, 만들 수있다. 나는이 문제를 해결할 수있는 회로적인 방법이 있다는 것을 알고 있지만, 솔직히 말해서 하루 종일 그 모든 것을 관리하고 여전히 내 주요 업무를 수행 할 시간이 충분하지 않습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.