D Linguaggio di programmazione nel mondo reale? [chiuso]


138

C'è qualcuno là fuori che usa D per le applicazioni del mondo reale? In tal caso, per cosa lo stai usando? Non riesco a trovare nulla di grosso sul web scritto in D.

Nonostante la mancanza di grandi utenti noti, D mi sembra un linguaggio molto promettente e, secondo TIOBE , è abbastanza popolare.


11
Recentemente annunciato nei forum di dlang , Facebook ora sta usando D in produzione.
sghill

Non c'è nulla di grande perché la stessa D è piuttosto scarsa per la creazione di applicazioni complesse di grandi dimensioni. Sembra fantastico in superficie, ma una volta che provi a fare qualcosa di commerciale tutte le crepe iniziano a mostrare e c'è molto poco desiderio da parte dei fan boy di creare un software strutturato adeguato per il pubblico commerciale (sono sicuro che i soldi hanno molto a che fare con ma anche leadership e organizzazione). Una cosa è scrivere un'utilità da riga di comando o un algoritmo a riga 5k ma del tutto diversa per creare un'app aziendale molto complessa che coinvolge più aree come gui, audio, ecc.
Stretto,

Sicuramente puoi hackerare qualcosa insieme ma non è commerciale. Un'azienda non investirà il proprio tempo / denaro in qualcosa di così traballante. Non esiste un IDE corretto e tutti quelli che ho usato mi hanno fatto venire voglia di colpire qualcosa. È circa 10 volte più lento per eseguire correttamente il debug delle app perché i messaggi di errore sono terribili, il debugger non funziona o funziona contro di te, le caratteristiche moderne che ci aspettiamo sono inesistenti o scadenti, e la libreria è fubar perché non ha una struttura logica (le cose vengono spostate "arbitrariamente", strani schemi di denominazione come "chomp" e "detabber", ecc.
Stretto

Immagino sia lo yin / yang. Alcune cose in D sono sorprendenti e nulla si avvicina (ancora) ... ma dall'altra parte la cosa in cui fallisce è anche abbastanza forte. Si scoprono queste cose solo quando in realtà mettono il tempo di scrivere app reali anziché fare cose banali o algoritmiche. Fino a quando l'organizzazione D non riuscirà a farcela insieme (quanto tempo impiegheranno? 10, 20 anni?) Le imprese reali non vi investiranno. Il tempo è denaro e nessuna azienda vuole spendere 10 volte di più per eseguire il debug di un'app perché l'IDE non è all'altezza.
Stretto,

@Stretto cosa intendi? dlang.org/orgs-using-d.html
Bauss

Risposte:


77

Sto usando D per il mio lavoro di ricerca nell'area della computer grafica. Io e altri abbiamo pubblicato articoli nei nostri campi basati sul lavoro svolto con D. Penso che sia sicuramente pronto per l'uso su progetti di ricerca di piccole e medie dimensioni in cui le prestazioni contano. È perfetto per il lavoro di ricerca perché spesso inizi comunque da zero, quindi non hai molto codice legacy di cui preoccuparti per l'integrazione.

Un'altra area popolare per l'uso sembra essere i servizi web. Spero che qualcun altro possa commentare chi c'è in questo spazio, ma anche lì penso che l'idea sia che le prestazioni contino davvero, quindi vuoi un linguaggio compilato al metal. I servizi sono spesso processi autonomi piuttosto piccoli, quindi interoperare con grandi quantità di codice C ++ legacy non è realmente necessario o utile. Quindi D può mettere piede nella porta.

Penso che D continuerà a guadagnare seguaci di base in questo modo - su progetti più piccoli che per qualsiasi motivo possono permettersi di abbandonare l'eredità del C ++ al fine di ottenere un linguaggio di programmazione che è molto più piacevole da usare e forse anche più produttivo.

Ma fino a quando non ci sarà un numero enorme di utenti di base, non sospetterò molto in termini di grandi utenti aziendali.


10
Sviluppo applicazioni client / server esclusivamente in D con alcuni collegamenti alle librerie C, ma solo per la parte GUI del client per uno dei servizi più popolari nei Paesi Bassi. Anche se ho dovuto convincere il mio capo, ma sembra non avere rimpianti. ;-) - D qui brilla soprattutto perché la libreria standard fornisce un'implementazione di socket BSD, anche su Windows. Scrivi una volta, distribuisci ovunque, molto bello.
Jesse Brands,

@JesseBrands Usi phobos o tango?
Qed

88

Faccio lavoro di bioinformatica in D. Per me, la cosa chiave di D è che adotta un approccio molto equilibrato ai compromessi e riconosce il principio dei rendimenti decrescenti.

A differenza del C ++, che aderisce rigorosamente al principio zero overhead, D consente funzionalità che possono avere un piccolo costo di prestazioni / spazio se rendono il linguaggio molto più utilizzabile. Questi includono la garbage collection, un oggetto monitor per ogni classe, informazioni sul tipo di runtime, ecc.

A differenza di Ruby, Python, PHP, ecc., D cerca di essere quasi veloce come C, anche se è meno dinamico e leggermente più difficile da programmare rispetto ai linguaggi di scripting.
Il risultato è un linguaggio ottimale quando sia il tempo di sviluppo che il tempo di esecuzione contano allo stesso modo, cosa che nel mio campo è la maggior parte delle volte.

Allo stesso modo, D adotta un approccio molto diretto alla sicurezza rispetto alla flessibilità. Presuppone che i programmatori sappiano sostanzialmente cosa stanno facendo, ma commettono errori.

A differenza di C e C ++, si presume che non si desideri utilizzare puntatori, cast non sicuri, gestione manuale della memoria, ecc. Ovunque nel codice, poiché sono soggetti a errori e si presume che non si desideri vagliare più -pagina i messaggi di errore del modello quando si rovina solo per usare array ridimensionabili.

A differenza di Java e di altri linguaggi di schiavitù e disciplina, D presume che a volte puntatori, cast non sicuri, gestione manuale della memoria, ecc. Siano un male necessario e presume che tu sia abbastanza intelligente da gestire modelli reali, sovraccarico dell'operatore, ecc. Senza scrivere codice offuscato. Presuppone anche che si possa rovinare e accedere a un array fuori limite, ma che il programmatore sappia meglio quale compromesso dovrebbe essere fatto tra sicurezza e velocità in una determinata situazione. Pertanto, se gli array sono controllati dai limiti è semplicemente determinato da uno switch del compilatore.


2
Che cos'è un oggetto monitor? Non riesco a trovare risultati per questo.
Samaursa,

2
Amo molto il linguaggio D rispetto al C ++. Tempi di compilazione più rapidi, possibilità di utilizzare meno codice, nessun file di intestazione, ecc. Il problema, tuttavia, è che manca a chiunque esegua seriamente il lavoro con la GUI. Certo, posso usare GtkD, ma provo a disegnare una serie di grafici fantasiosi. Vedo un lavoro promettente nell'integrazione con Chromium per una GUI, ma quel progetto è ampiamente privo di documenti e ha bisogno di più giocatori in quello spazio. Spero che cambi, ma è quello che vedo qui nel settembre 2015.
Volomike,

Il monitoraggio degli oggetti è una cazzata **. Blocca l'intero metodo, è davvero molto dispendioso ...
dev1223

@Volomike Ho anche visto D ultimamente e allo stesso modo è stato difficile creare strumenti di interfaccia grafica con esso. Al momento non ho soluzioni defacto per creare eleganti strumenti con l'interfaccia grafica grafica con D e questo è qualcosa che potrei iniziare ad affrontare presto.
dimiguel

32

Conosco una piccola azienda che ha inviato sul mercato un prodotto server di posta. Avevano almeno 2 persone che lavoravano a tempo pieno sul progetto.

Inoltre, uno dei principali attori nel settore IT ha diversi dipendenti che utilizzano D in progetti interni più grandi.

Inoltre conosco una società che cerca finanziamenti in capitale di rischio, diversi (almeno 4) dipendenti in società più piccole che utilizzano D a tempo parziale o a tempo pieno, e almeno una coppia (incluso me) attivamente alla ricerca di opportunità nel mercato della consulenza.

Probabilmente ne ho lasciati fuori alcuni di cui avrei dovuto sapere, e probabilmente alcuni di cui non ho sentito parlare, ma che esiste ancora, poiché quanto sopra è più o meno quelli che conosco io stesso attraverso la comunità.

Una piccola percentuale del mio reddito attuale proviene da D.


Potresti per favore nominare le organizzazioni? Sarebbe anche bello sapere di più su questi progetti.
nbro,

28

Uso D per lo sviluppo web e si è rivelato molto più produttivo rispetto a C / C ++. Ci sono molti framework basati su ruby ​​/ php / python, ovviamente. Ma quando vuoi sviluppare qualcosa di unico che deve anche essere veloce come C e quasi facile da programmare come in molti linguaggi di script, allora D è una buona scelta.


3
Posso chiedere? Quale framework o libreria utilizzare?
Zelenova,

26

Uso D per un hardware nell'ambiente di test loop (HIL). Questo è per i test software nell'area automobilistica. D può essere utilizzato qui, perché come linguaggio di programmazione del sistema è possibile essere utilizzato in programmi in tempo reale (gestori IRQ in un'estensione in tempo reale Linux RTAI-LXRT).

Con il porto in corso di SWT / JFace, ho intenzione di fare di più e lavorare in D, cosa che avrei fatto prima in Java.



19

Sto usando D nella ricerca sulla traduzione del codice temporale di compilazione. Il modello avanzato combinato con tuple e mixin rende molto più semplice la traduzione del codice e consente di eseguire la traduzione del codice durante il tempo di compilazione senza richiedere uno strumento separato.

Ci sono alcuni esempi di fisici che usano D per migliorare i loro programmi con meta-programmazione in D.

video - Conferenza, non è stato possibile trovare il sito di origine dell'uso del fisico.


Un mio progetto categoricamente simile, anche in D dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS

17

Tutta la nostra infrastruttura di rete (ad alto traffico) si basa solo su D1 e tango. Siamo una giovane startup a Berlino: sociomantic.com


14

La mia attuale attività lavorativa è un sistema per tradurre C # in D. Questo è parte di un progetto a scopo di lucro per sviluppare un sistema software.




7

Molti dei giochi rilasciati da ABA Games sono scritti in D 1.x, anche se immagino che le porte della console debbano essere riscritte in C ++.

Ho scritto diversi prototipi di giochi in D, ma non sono sicuro che si qualifichi come "mondo reale" da quando li ho scritti a mio vantaggio e non ne ho mai rilasciato nessuno.


Potresti essere più specifico riguardo a quali giochi sono stati creati usando D?
nbro,

7

Ho scritto (e sto ancora mantenendo e sviluppando) un software per la conversione dei protocolli tester da varie stazioni di test hardware in un formato di output standardizzato per la tracciabilità e cose del genere.

Tutti insieme su 5k righe di codice, scritte con D 1.xe la libreria Phobos.

D è così facile da imparare e trascurare alcune insidie ​​(nella biblioteca di Phobos) è una vera gioia da programmare.


6

Ho usato D per il mio progetto di ricerca sullo sviluppo di un algoritmo di ottimizzazione globale. L'ho applicato al problema dell'allenamento delle reti neurali. Sta a te decidere se vuoi chiamare questo "mondo reale".


Il codice sorgente o alcune informazioni sono disponibili riguardo a ciò che hai fatto?
nbro,


6

Uso D2, il secondo standard della versione. Ho scritto applicazioni in tempo reale (motore 3D, ad esempio).

La lingua diventa sempre più potente ogni giorno. D è molto pragmatico e tutte le funzionalità incorporate, in particolare il paradigma di metaprogrammazione, lo rendono molto più di C ++, secondo me. La sintassi è più chiara, puoi usare la forza della programmazione funzionale attraverso funzioni come filtro o riduzione e una delle caratteristiche più importanti: puoi usare tutte le librerie C.

Sicuramente la mia lingua preferita, e sono abbastanza sicuro che sarà una lingua diffusa.


È possibile vedere il codice sorgente di qualcosa che hai creato usando D?
nbro,

È passato un po 'di tempo da quel commento! Sto scrivendo codice in Rust e Haskell per lo più ora, ma ho alcuni progetti. Ho delle cose sul mio github, ma non credo che valga la pena scavarle. Quel commento ha 4 anni! Dovrei dare un'occhiata allo stato attuale di tutto questo ...
phaazon

4

Suppongo che possiamo leggere qualcosa nella mancanza di risposte immediate a questa domanda e cioè che non molti / nessuno dei rispondenti di stackoverflow attivi stanno usando D. Sono stato anche un po 'sorpreso dal livello della sua classifica nella lista TIOBE che tu Collegamento a.

Detto questo, Walter Bright ha lavorato sulla lingua per un certo numero di anni ormai e penso che abbia un certo numero di `follower 'che ricordano che buon lavoro ha fatto con il compilatore Zortech C ++ negli anni '90. Noto anche che la lingua sembra inclinarsi ora verso la direzione funzionale.


3
In realtà è impossibile cercare D su questo sito web in questo momento. La ricerca di "d" o "d programmazione" indica "nessun risultato" e la ricerca nei tag di "d" elenca una pagina piena di tag che contengono "d" ma nessuna "d" da sola. Quindi potrebbe avere qualcosa a che fare anche con questo.
Baxissimo,

20
cerca [d] nella casella di ricerca per ottenere una ricerca basata su tag.
Gregg Lind,


0

Sto iniziando un progetto per riscrivere alcuni dei nostri strumenti interni da Perl a D. Ho scelto D perché sono piuttosto entusiasta delle filosofie progettuali del linguaggio. Sto programmando da molto tempo e ho usato molte lingue, dagli assemblatori ai linguaggi di alto livello (principalmente C) agli script (principalmente Perl), e D è la prima lingua che mi ha appassionato di apprendimento in molti anni .

Ho deciso di passare a una lingua compilata per un motivo principale: la sicurezza. Funzionalmente, Perl funziona abbastanza bene per il set di strumenti su cui lavoro, ma è insicuro: chiunque sia in grado di eseguire uno script può anche leggere, copiare e creare la propria versione modificata dello strumento. (E lo fanno.) So che ci sono metodi tortuosi per aggirare questo problema (una specie di), ma ad essere sincero non ho abbastanza ore al giorno per gestire tutto ciò e continuare a svolgere il mio lavoro principale.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.