D Język programowania w prawdziwym świecie? [Zamknięte]


138

Czy ktoś używa D do aplikacji w świecie rzeczywistym? Jeśli tak, do czego go używasz? Nie mogę znaleźć nic wielkiego w sieci napisanej w D.

Pomimo braku znanych dużych użytkowników, D wydaje mi się bardzo obiecującym językiem i według TIOBE jest dość popularny.


11
Niedawno ogłoszone na forach dlang , Facebook używa teraz D w produkcji.
sghill

Nie ma nic wielkiego, ponieważ samo D jest dość kiepskie do tworzenia dużych, złożonych aplikacji. Z pozoru wygląda świetnie, ale kiedy spróbujesz zrobić cokolwiek komercyjnego, wszystkie pęknięcia zaczynają się pojawiać, a fani nie mają ochoty tworzyć odpowiedniego oprogramowania dla odbiorców komercyjnych (jestem pewien, że pieniądze mają wiele wspólnego z ale tak samo jak przywództwo i organizacja). Jedną rzeczą jest napisanie narzędzia wiersza poleceń lub algorytmu linii 5k, ale zupełnie innego, aby stworzyć bardzo złożoną aplikację biznesową, która obejmuje wiele obszarów, takich jak GUI, audio itp.
Stretto

Jasne, że możesz coś zhakować, ale to nie jest komercyjne. Firma nie zamierza zainwestować swojego czasu / pieniędzy w coś, co jest tak niestabilne. Nie ma odpowiedniego IDE i każde z nich sprawiło, że chciałem coś wbić. Prawidłowe debugowanie aplikacji jest około 10 razy wolniejsze, ponieważ komunikaty o błędach są okropne, debugger nie działa lub działa przeciwko tobie, nowoczesne funkcje, których oczekujemy, nie istnieją lub są słabe, a biblioteka jest sfubarowana, ponieważ nie ma logicznej struktury (rzeczy są przenoszone "arbitralnie", dziwne schematy nazewnictwa, takie jak "chomp" i "detabber", itp.
Stretto

Myślę, że to yin / yang. Pewne rzeczy w D są niesamowite i nic się nie zbliża (jeszcze) ... ale z drugiej strony rzecz, w której zawodzi, też jest całkiem mocna. Można je znaleźć tylko wtedy, gdy faktycznie poświęcą czas na pisanie prawdziwych aplikacji, zamiast robić trywialne lub algorytmiczne rzeczy. Dopóki organizacja D nie zbierze wszystkiego do kupy (jak długo to im zajmie? 10, 20 lat?), Prawdziwe firmy nie będą w to inwestować. Czas to pieniądz i żadna firma nie chce poświęcać 10 razy więcej czasu na debugowanie aplikacji, ponieważ IDE nie jest w stanie zgasić.
Stretto

@Stretto co masz na myśli? dlang.org/orgs-using-d.html
Bauss

Odpowiedzi:


77

Używam D do mojej pracy naukowej w dziedzinie grafiki komputerowej. Ja i inni opublikowaliśmy artykuły z naszych dziedzin oparte na pracy wykonanej przy użyciu D. Myślę, że jest zdecydowanie gotowy do użycia w małych i średnich projektach badawczych, w których liczy się wydajność. Jest to dobre miejsce do pracy badawczej, ponieważ często i tak zaczynasz od zera, więc nie masz zbyt wiele starszego kodu, z którym musisz się martwić o integrację.

Innym popularnym obszarem zastosowań wydają się być usługi sieciowe. Miejmy nadzieję, że ktoś inny może skomentować, kto jest w tej przestrzeni, ale myślę, że w tym przypadku chodzi o to, że wydajność często naprawdę ma znaczenie, więc potrzebujesz języka skompilowanego do metalu. Usługi są często dość małymi, samodzielnymi procesami, więc współdziałanie z dużą ilością starszego kodu C ++ nie jest tak naprawdę konieczne ani przydatne. W ten sposób D może wbić stopę w drzwi.

Myślę, że D będzie w ten sposób nadal zdobywać oddolnych zwolenników - w mniejszych projektach, które z jakiegoś powodu mogą pozwolić sobie na porzucenie dziedzictwa C ++ w celu uzyskania języka programowania, który jest znacznie przyjemniejszy w użyciu, a być może także bardziej produktywny.

Ale dopóki nie będzie ogromnej liczby użytkowników oddolnych, podejrzewam, że nie będzie zbyt wiele na drodze dużych użytkowników korporacyjnych.


10
Tworzę aplikacje klient / serwer wyłącznie w języku D z pewnymi powiązaniami z bibliotekami C, ale tylko dla części GUI klienta dla jednej z bardziej popularnych usług w Holandii. Chociaż musiałem przekonać swojego szefa, ale wydaje się, że nie żałuje. ;-) - D szczególnie błyszczy tutaj, ponieważ standardowa biblioteka zapewnia implementację gniazd BSD, nawet w systemie Windows. Pisz raz, wdrażaj wszędzie, bardzo ładnie.
Jesse Brands

@JesseBrands Używasz fobosów czy tanga?
Qed

88

Zajmuję się bioinformatyką w D. Dla mnie kluczową rzeczą w D jest to, że przyjmuje bardzo zrównoważone podejście do kompromisów i uznaje zasadę malejących zysków.

W przeciwieństwie do C ++, który rygorystycznie przestrzega zasady zerowego narzutu, D dopuszcza funkcje, które mogą mieć niewielki koszt wydajności / przestrzeni, jeśli sprawiają, że język jest znacznie bardziej użyteczny. Obejmują one czyszczenie pamięci, obiekt monitorowania dla każdej klasy, informacje o typie środowiska uruchomieniowego itp.

W przeciwieństwie do Ruby, Python, PHP itp., D stara się być prawie tak samo szybki jak C, nawet jeśli jest mniej dynamiczny i nieco trudniejszy do programowania niż języki skryptowe.
Rezultatem jest język, który jest optymalny, gdy zarówno czas rozwoju, jak i czas wykonania mają równe znaczenie, co w mojej dziedzinie jest przez większość czasu.

Podobnie D ma bardzo zrównoważone podejście do kwestii bezpieczeństwa w porównaniu z elastycznością. Zakłada się, że programiści w zasadzie wiedzą, co robią, ale popełniają błędy.

W przeciwieństwie do C i C ++ zakłada, że ​​nie chcesz używać wskaźników, niebezpiecznych rzutów, ręcznego zarządzania pamięcią itp. Wszędzie w kodzie, ponieważ są one podatne na błędy i zakłada, że ​​nie chcesz przesiewać wielu -page szablonów komunikatów o błędach, gdy robisz coś źle tylko po to, by użyć tablic o zmiennym rozmiarze.

W przeciwieństwie do Javy i innych języków niewoli i dyscypliny, D zakłada, że ​​czasami wskaźniki, niebezpieczne rzutowanie, ręczne zarządzanie pamięcią itp. Są złem koniecznym i zakłada, że ​​jesteś wystarczająco inteligentny, aby radzić sobie z prawdziwymi szablonami, przeciążeniem operatora itp. Bez pisania zaciemniony kod. Zakłada również, że możesz schrzanić tablicę i uzyskać dostęp do tablicy poza granicami, ale programista wie najlepiej, jaki kompromis należy dokonać między bezpieczeństwem a szybkością w danej sytuacji. Dlatego to, czy tablice są sprawdzane w granicach, jest po prostu określane przez przełącznik kompilatora.


2
Co to jest obiekt monitora? Nie mogę znaleźć dla tego wyników.
Samaursa,

2
Bardzo podoba mi się język D w porównaniu do C ++. Szybszy czas kompilacji, możliwość użycia mniejszej ilości kodu, brak plików nagłówkowych itp. Problem polega jednak na tym, że brakuje nikogo, kto wykonuje poważną pracę z GUI. Jasne, mogę użyć GtkD, ale spróbuj narysować serię fantazyjnych wykresów. Widzę obiecującą pracę w integracji z Chromium dla GUI, ale ten projekt jest w dużej mierze nieudokumentowany i potrzebuje więcej graczy w tej przestrzeni. Mam nadzieję, że to się zmieni, ale to właśnie widzę tutaj we wrześniu 2015 r.
Volomike

Monitor obiektów to bzdura **. To blokuje całą metodę, to naprawdę marne ...
dev1223

@Volomike Ostatnio też patrzyłem na D i podobnie ciężko było stworzyć z nim narzędzia graficzne. Obecnie nie mam żadnych rozwiązań defacto do tworzenia eleganckich narzędzi GUI za pomocą D i mogę się tym zająć wkrótce.
dimiguel

32

Znam jedną małą firmę, która wysłała na rynek serwer pocztowy. Mieli co najmniej 2 osoby pracujące w pełnym wymiarze godzin nad projektem.

Ponadto jeden z głównych graczy w branży IT ma kilku pracowników używających D w większych projektach wewnętrznych.

Ponadto znam jedną firmę poszukującą finansowania venture, kilku (co najmniej 4) pracowników mniejszych firm korzystających z D w niepełnym lub pełnym wymiarze godzin i co najmniej kilku (w tym ja) aktywnie poszukujących możliwości na rynku konsultingowym.

Prawdopodobnie pominąłem kilka, o których powinienem był wiedzieć, i prawdopodobnie niektóre, o których nie słyszałem, ale one nadal istnieją, ponieważ powyżej są mniej więcej te, które znam za pośrednictwem społeczności.

Niewielki procent mojego obecnego dochodu pochodzi od D.


Czy mógłby Pan wyznaczyć te organizacje? Fajnie byłoby też dowiedzieć się więcej o tych projektach.
nbro

28

Używam D do tworzenia stron internetowych i okazało się, że jest znacznie bardziej produktywny w porównaniu do C / C ++. Oczywiście istnieje wiele frameworków opartych na ruby ​​/ php / python. Ale jeśli chcesz stworzyć coś wyjątkowego, co również musi być tak szybkie jak C i prawie tak proste, jak programowanie, jak w wielu językach skryptowych, wtedy D jest dobrym wyborem.


3
Czy mogę zapytać? Jakiego frameworka lub biblioteki używasz?
Zelenova

26

Używam D dla środowiska testowego sprzętu w pętli (HIL). Dotyczy to testów oprogramowania w branży motoryzacyjnej. D może być tutaj użyty, ponieważ jako systemowy język programowania można go używać w programach czasu rzeczywistego (obsługa IRQ w rozszerzeniu RTAI-LXRT w Linuksie).

Z trwającym portem SWT / JFace planuję zrobić więcej i pracować w D, co wcześniej robiłbym w Javie.



19

Używam D w badaniach dotyczących tłumaczenia kodu czasu kompilacji. Zaawansowane szablony w połączeniu z krotkami i mikserami znacznie ułatwiają tłumaczenie kodu i pozwalają na tłumaczenie kodu w czasie kompilacji bez konieczności stosowania oddzielnego narzędzia.

Istnieje kilka przykładów fizyków używających D do wzbogacania swoich programów o metaprogramowanie w D.

wideo - Rozmowa konferencyjna, nie można znaleźć strony źródłowej do wykorzystania przez fizyków.



17

Cała nasza infrastruktura sieciowa (o dużym natężeniu ruchu) oparta jest wyłącznie na D1 i tangu. Jesteśmy młodym startupem z Berlina: sociomantic.com


14

Moje obecne zadanie to system tłumaczenia języka C # na D. Jest to część projektu nastawionego na zysk, mającego na celu opracowanie systemu oprogramowania.




7

Wiele gier wydanych przez ABA Games jest napisanych w D 1.x, chociaż wyobrażam sobie, że porty konsoli musiały zostać przepisane w C ++.

Napisałem kilka prototypów gier w języku D, ale nie jestem pewien, czy kwalifikuje się to jako „prawdziwy świat”, ponieważ napisałem je dla własnej korzyści i nigdy żadnego z nich nie wydałem.


Czy mógłbyś bardziej szczegółowo określić, które gry zostały utworzone przy użyciu D?
nbro

7

Napisałem (i nadal utrzymuję i rozwijam) oprogramowanie do konwersji protokołów testerów z różnych stacji testujących sprzęt do ustandaryzowanego formatu wyjściowego w celu śledzenia i tym podobnych.

W sumie ponad 5 tys. Wierszy kodu, napisanych za pomocą D 1.xi biblioteki Phobos.

D jest tak łatwy do nauczenia, a lekceważenie niektórych pułapek (w bibliotece Phobos) to prawdziwa przyjemność z programowania.


6

Użyłem D do mojego projektu badawczego dotyczącego opracowania algorytmu optymalizacji globalnej. Zastosowałem to do problemu uczenia sieci neuronowych. To od Ciebie zależy, czy chcesz nazwać ten „prawdziwy świat”.


Czy jest dostępny kod źródłowy lub jakieś informacje dotyczące tego, co zrobiłeś?
nbro


6

Używam D2, drugiego standardu wersji. Pisałem aplikacje działające w czasie rzeczywistym (na przykład silnik 3D).

Język staje się z każdym dniem coraz potężniejszy. D jest bardzo pragmatyczne, a wszystkie wbudowane funkcje, zwłaszcza paradygmat metaprogramowania, sprawiają, że moim zdaniem jest daleko poza C ++. Składnia jest jaśniejsza, możesz wykorzystać siłę programowania funkcjonalnego poprzez funkcje takie jak filtrowanie lub zmniejszanie i jedną z najważniejszych cech: możesz używać wszystkich bibliotek C.

Zdecydowanie mój ulubiony język i jestem prawie pewien, że będzie to powszechnie używany język.


Czy można zobaczyć kod źródłowy czegoś, co utworzyłeś za pomocą D?
nbro

Minęło trochę czasu od tego komentarza! Obecnie głównie koduję w Rust i Haskell, ale mam kilka projektów. Mam trochę rzeczy na swoim githubie, ale nie sądzę, że warto je kopać. Ten komentarz ma 4 lata! Powinienem
rzucić

4

Przypuszczam, że możemy coś wyczytać z braku natychmiastowych odpowiedzi na to pytanie, a mianowicie, że niewielu / żaden z aktywnych respondentów stosu przepełnienia stosu używa D. Byłem również trochę zaskoczony poziomem jego rankingu w liście TIOBE, że ty łączyć z.

Powiedziawszy to, Walter Bright pracuje nad tym językiem już od wielu lat i myślę, że ma wielu obserwujących, którzy pamiętają, jak dobrą robotę wykonał z kompilatorem Zortech C ++ w latach 90-tych. Zwracam również uwagę, że język wydaje się skłaniać teraz w kierunku funkcjonalnym.


3
W rzeczywistości nie można teraz wyszukać D na tej stronie internetowej. Wyszukiwanie „d” lub „d programowanie” mówi „brak trafień”, a wyszukiwanie w tagach „d” powoduje wyświetlenie strony zawierającej znaczniki, które zawierają „d”, ale nie zawierają samego „d”. Więc to też może mieć z tym coś wspólnego.
Baxissimo,

20
wyszukaj [d] w polu wyszukiwania, aby uzyskać wyszukiwanie oparte na tagach.
Gregg Lind


0

Rozpoczynam projekt przepisania niektórych naszych wewnętrznych narzędzi z Perla na D. Wybrałem D, ponieważ jestem bardzo podekscytowany filozofią projektowania tego języka. Programuję od dawna i używałem wielu języków, od asemblerów po języki wysokiego poziomu (głównie C), języki skryptowe (głównie Perl), a D to pierwszy język, którym fascynowałem się od wielu lat .

Zdecydowałem się przejść na język kompilowany z jednego głównego powodu - bezpieczeństwa. Funkcjonalnie Perl działa całkiem dobrze w przypadku zestawu narzędzi, nad którym pracuję, ale jest niebezpieczny - każdy, kto może uruchomić skrypt, może również czytać, kopiować i tworzyć własną zmodyfikowaną wersję narzędzia. (I robią). Wiem, że istnieją okrężne metody obejścia tego problemu (w pewnym sensie), ale szczerze mówiąc, nie mam wystarczająco dużo godzin w ciągu dnia, aby to wszystko załatwić i nadal wykonywać swoją podstawową pracę.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.