D Linguagem de programação no mundo real? [fechadas]


138

Alguém está usando D para aplicativos do mundo real? Se sim, para que você está usando? Não consigo encontrar nada grande na web escrito em D.

Apesar da falta de grandes usuários conhecidos, D parece uma linguagem muito promissora para mim e, de acordo com o TIOBE , é bastante popular.


11
Recentemente anunciado nos fóruns dlang , o Facebook agora está usando D na produção.
sghill

Não há nada grande, porque o próprio D é muito ruim para a criação de grandes aplicativos complexos. Parece ótimo na superfície, mas depois que você tenta fazer algo comercial, todas as rachaduras começam a aparecer e há muito pouco desejo dos fãs de criar software estruturado adequado para o público comercial (tenho certeza que dinheiro tem muito a ver com mas liderança e organização). É uma coisa para escrever um utilitário de linha de comando ou um algoritmo de 5k linha, mas completamente diferente para criar um aplicativo de negócio muito complexo que envolve várias áreas como gui, áudio, etc.
Stretto

Claro que você pode invadir algo juntos, mas isso não é comercial. Uma empresa não vai investir seu tempo / dinheiro em algo que é tão esquisito. Não existe um IDE adequado e todos os que eu usei me fizeram querer compartilhar algo. É cerca de 10 vezes mais lento para depurar aplicativos corretamente porque as mensagens de erro são terríveis, o depurador não funciona ou trabalha contra você, os recursos modernos que esperamos são inexistentes ou ruins, e a biblioteca é adulterada porque não possui estrutura lógica (as coisas são movidas "arbitrariamente", esquemas de nomeação estranhos como "chomp" e "detabber" etc.)
Stretto

Eu acho que é o yin / yang. Certas coisas em D são incríveis e nada chega perto (ainda) ... mas, por outro lado, as coisas em que falham também são muito fortes. Só se descobre essas coisas quando eles realmente dedicam tempo para escrever aplicativos reais, em vez de fazer coisas triviais ou algorítmicas. Até a organização D reunir as coisas (quanto tempo elas levarão? 10, 20 anos?) Empresas reais não vão investir nela. Tempo é dinheiro e nenhuma empresa deseja gastar 10 vezes o tempo para depurar um aplicativo, porque o IDE não é adequado.
Stretto

@ Stretto, o que você quer dizer? dlang.org/orgs-using-d.html
Bauss

Respostas:


77

Estou usando D no meu trabalho de pesquisa na área de computação gráfica. Eu e outros publicamos artigos em nossos campos com base no trabalho realizado com D. Acho que ele está definitivamente pronto para uso em projetos de pesquisa de pequeno a médio porte, nos quais o desempenho é importante. É uma boa opção para o trabalho de pesquisa, porque geralmente você começa do zero de qualquer maneira, para não ter muito código legado com o qual se preocupar em se integrar.

Outra área popular de uso parece ser serviços da web. Espero que outra pessoa possa comentar quem está nesse espaço, mas também acho que a ideia é que o desempenho geralmente é realmente importante para que você queira uma linguagem compilada no metal. Os serviços geralmente são processos pequenos e independentes, portanto, a interoperabilidade com grandes quantidades de código C ++ herdado não é realmente necessária ou útil. Assim, D pode colocar o pé na porta.

Eu acho que o D continuará a ganhar seguidores populares dessa maneira - em projetos menores que, por qualquer motivo, podem abandonar o legado do C ++ para obter uma linguagem de programação muito mais agradável de usar e talvez mais produtiva.

Mas até que haja um grande número de usuários de base, não haverá muito no caminho de grandes usuários corporativos, suspeito.


10
Desenvolvo aplicativos cliente / servidor exclusivamente em D com algumas ligações às bibliotecas C, mas apenas para a parte da GUI do cliente para um dos serviços mais populares na Holanda. Embora eu tivesse que convencer meu chefe, ele parece não se arrepender. ;-) - D brilha especialmente aqui porque a biblioteca padrão fornece uma implementação de soquetes BSD, mesmo no Windows. Escreva uma vez, implante em qualquer lugar, muito bom.
Jesse Brands

@JesseBrands Você usa phobos ou tango?
qed

88

Eu trabalho com bioinformática em D. Para mim, o principal em D é que ela adota uma abordagem muito equilibrada das compensações e reconhece o princípio de retornos decrescentes.

Ao contrário do C ++, que segue rigorosamente o princípio de sobrecarga zero, D permite recursos que podem ter um pequeno desempenho / custo de espaço se tornarem o idioma muito mais utilizável. Isso inclui coleta de lixo, um objeto de monitor para cada classe, informações sobre o tipo de tempo de execução, etc.

Diferentemente de Ruby, Python, PHP, etc, D tenta ser quase tão rápido quanto C, mesmo que seja menos dinâmico e um pouco mais difícil de programar do que as linguagens de script.
O resultado é uma linguagem ideal quando o tempo de desenvolvimento e o tempo de execução são igualmente importantes, o que na minha área é na maioria das vezes.

Da mesma forma, D adota uma abordagem equilibrada entre segurança e flexibilidade. Parte do pressuposto de que os programadores sabem basicamente o que estão fazendo, mas cometem erros.

Ao contrário de C e C ++, ele pressupõe que você não deseja usar ponteiros, conversões inseguras, gerenciamento manual de memória etc. em todos os lugares do seu código, porque eles são propensos a erros e pressupõe que você não deseja filtrar várias de erro de modelo de página-página quando você estraga apenas para usar matrizes redimensionáveis.

Ao contrário de Java e outras linguagens de cativeiro e disciplina, D assume que, às vezes, ponteiros, elencos inseguros, gerenciamento manual de memória etc. são um mal necessário e assume que você é inteligente o suficiente para lidar com modelos reais, sobrecarga de operador etc. sem escrever código ofuscado. Ele também pressupõe que você pode estragar e acessar uma matriz fora dos limites, mas que o programador sabe melhor que compensação deve ser feita entre segurança e velocidade em qualquer situação. Portanto, se as matrizes têm limites verificados é simplesmente determinado por uma opção de compilador.


2
O que é um objeto de monitor? Não consigo encontrar resultados para isso.
Samaursa

2
Eu amo muito a linguagem D em comparação com C ++. Tempos de compilação mais rápidos, capacidade de usar menos código, sem arquivos de cabeçalho etc. O problema, no entanto, é que falta a alguém que faça um trabalho sério na GUI. Claro, eu posso usar o GtkD, mas tente desenhar uma série de gráficos sofisticados. Vejo um trabalho promissor na integração com o Chromium para uma GUI, mas esse projeto é amplamente indocumentado e precisa de mais participantes nesse espaço. Espero que isso mude, mas é o que vejo aqui em setembro de 2015.
Volomike

O monitor de objetos é uma besteira **. Ele bloqueia método inteiro, é realmente muito wastefull ...
dev1223

@Volomike Eu também tenho visto D recentemente e, da mesma forma, tem sido difícil criar ferramentas de interfaces gráficas com ele. Atualmente, não tenho nenhuma solução padrão para criar ferramentas GUI elegantes com D e isso é algo que posso começar a resolver em breve.
dimiguel

32

Conheço uma empresa pequena que enviou um produto de servidor de correio ao mercado. Eles tinham pelo menos 2 pessoas trabalhando em período integral no projeto.

Além disso, um participante importante no negócio de TI tem vários funcionários usando D em projetos internos maiores.

Além disso, conheço uma empresa que busca financiamento para empreendimentos, vários (pelo menos 4) funcionários de empresas menores que usam D, em período parcial ou integral, e pelo menos um casal (inclusive eu) buscando ativamente oportunidades no mercado de consultoria.

Provavelmente deixei de lado algumas que eu deveria conhecer, e provavelmente algumas sobre as quais não ouvi falar, mas que ainda existem, pois as acima são mais ou menos as que me conheço através da comunidade.

Uma pequena porcentagem da minha renda atual vem de D.


Você poderia indicar as organizações? Também seria bom saber mais sobre esses projetos.
Nck 12/01

28

Eu uso D para desenvolvimento web e provou ser muito mais produtivo em comparação com C / C ++. Existem muitos frameworks baseados em ruby ​​/ php / python, é claro. Mas quando você deseja desenvolver algo único que também precisa ser tão rápido quanto C e quase tão fácil quanto programar como em muitas linguagens de script, D é uma boa escolha.


3
Posso perguntar? Qual estrutura ou biblioteca você usa?
precisa saber é o seguinte

26

Eu uso D para um ambiente de teste de hardware no loop (HIL). Isto é para testes de software na área automotiva. D pode ser usado aqui, porque como uma linguagem de programação do sistema, é possível ser usado em programas em tempo real (manipuladores IRQ em uma extensão em tempo real Linux RTAI-LXRT).

Com a porta em andamento do SWT / JFace, pretendo fazer mais e trabalhar em D, o que já teria sido feito em Java antes.



19

Estou usando D em pesquisas sobre compilação de tradução de código de tempo. O modelo avançado combinado com tuplas e mixins facilita muito a tradução de código e permite que ela seja feita durante o tempo de compilação sem a necessidade de uma ferramenta separada.

Existem alguns exemplos de físicos usando D para aprimorar seus programas com metaprogramação em D.

vídeo - Discussão em conferência, não foi possível encontrar o site fonte de uso físico.


Um projeto meu categoricamente semelhante, também em Dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS

17

Toda a nossa infraestrutura de rede (tráfego intenso) é baseada apenas em D1 e tango. Somos uma empresa jovem de startups em Berlim: sociomantic.com


14

Minha tarefa de trabalho atual é um sistema para converter C # para D. Isso faz parte de um projeto com fins lucrativos para desenvolver um sistema de software.




7

Muitos dos jogos lançados pela ABA Games são escritos em D 1.x, embora eu imagine que as portas do console tenham que ser reescritas em C ++.

Eu escrevi alguns protótipos de jogos em D, mas não tenho certeza se isso se qualifica como 'mundo real' desde que os escrevi para meu próprio benefício e nunca os liberei.


Você poderia ser mais específico sobre quais jogos foram criados usando D?
N11 12/01

7

Eu escrevi (e ainda estou mantendo e desenvolvendo) um software para a conversão de protocolos de testador de várias estações de teste de hardware em um formato de saída padronizado para rastreabilidade e coisas assim.

Todos juntos em 5k linhas de código, escritas com D 1.x e a biblioteca Phobos.

D é tão fácil de aprender, e desconsiderar algumas armadilhas (na biblioteca Phobos) é uma verdadeira alegria para programar.


6

Eu usei D no meu projeto de pesquisa sobre o desenvolvimento de um algoritmo de otimização global. Eu o apliquei ao problema de treinar redes neurais. Depende de você se você deseja chamar isso de "mundo real".


O código fonte ou algumas informações estão disponíveis sobre o que você fez?
Nck 12/01


6

Eu uso o D2, o segundo padrão da versão. Escrevi aplicativos em tempo real (mecanismo 3D, por exemplo).

A linguagem fica cada vez mais poderosa a cada dia. D é muito pragmático e todos os recursos incorporados, especialmente o paradigma da metaprogramação, chegam muito além do C ++, na minha opinião. A sintaxe é mais clara: você pode usar a força da programação funcional por meio de funções como filtrar ou reduzir e um dos recursos mais importantes: você pode usar todas as bibliotecas C.

Definitivamente, meu idioma favorito, e tenho certeza de que será um idioma usado espalhado.


É possível ver o código fonte de algo que você criou usando D?
Nck 12/01

Já faz um tempo desde esse comentário! Atualmente, estou codificando em Rust e Haskell, mas tenho alguns projetos. Eu tenho algumas coisas no meu github, mas acho que não vale a pena cavar. Esse comentário tem 4 anos! Eu deveria dar uma olhada no status atual de tudo isso ...
phaazon

4

Suponho que possamos ler algo sobre a falta de respostas imediatas a esta pergunta e que muitos dos respondedores ativos de stackoverflow estão usando D. Também fiquei um pouco surpreso com o nível de sua classificação na listagem TIOBE que você Link para.

Dito isto, Walter Bright trabalha na linguagem há vários anos e eu acho que ele tem muitos seguidores que se lembram do bom trabalho que ele fez com o compilador Zortech C ++ nos anos 90. Noto também que o idioma parece estar inclinado na direção funcional agora.


3
Na verdade, é impossível pesquisar por D neste site agora. Procurar "d" ou "d programação" indica "sem acertos" e pesquisar nas tags por "d" lista uma página cheia de tags que contêm "d" mas não "d" por si só. Então, isso pode ter algo a ver com isso também.
Baxissimo 17/09/08

20
pesquise [d] na caixa de pesquisa para obter uma pesquisa baseada em tags.
Gregg Lind


0

Estou iniciando um projeto para reescrever algumas de nossas ferramentas internas de Perl para D. Escolhi D porque estou bastante empolgado com as filosofias de design da linguagem. Eu tenho programado por um longo tempo e usado muitas linguagens, de assemblers a linguagens de alto nível (principalmente C) e de script (principalmente Perl), e D é a primeira linguagem que me entusiasmo em aprender há muitos anos. .

Decidi mudar para uma linguagem compilada por um motivo principal - segurança. Funcionalmente, o Perl funciona muito bem para o conjunto de ferramentas em que trabalho, mas é inseguro - qualquer pessoa que possa executar um script também pode ler, copiar e criar sua própria versão modificada da ferramenta. (E eles sabem.) Sei que existem métodos tortuosos para contornar esse problema (mais ou menos), mas, para ser sincero, não tenho horas suficientes no dia para gerenciar tudo isso e ainda fazer meu trabalho principal.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.