A linguagem D é uma alternativa confiável para Java e C ++? O que é preciso para se tornar uma alternativa credível? Eu deveria me preocupar em aprender isso? Merece evangelizar?
A principal razão pela qual pergunto é que, com o novo padrão C ++ (c ++ 0x) quase aqui, fica claro para mim que a linguagem passou do ponto de não retorno em relação a alguém que a entenda. Eu sei que C / C ++ nunca morrerá, mas em algum momento precisamos seguir em frente. Até o COBOL teve seu dia e o Java, em muitos aspectos, desfez o C ++. Então o que vem depois? D preenche a conta?
Respostas:
O que determina o sucesso e a popularidade de uma linguagem de programação para o desenvolvimento de software no mundo real está apenas parcialmente relacionado à qualidade da própria linguagem. Como uma linguagem pura, D sem dúvida tem muitas vantagens sobre C ++ e Java. No mínimo, é uma alternativa credível como linguagem pura, sendo todas as outras coisas iguais.
No entanto, outras coisas são importantes para o desenvolvimento de software - quase mais do que a própria linguagem: portabilidade (em quantas plataformas ele é executado), suporte a depurador, suporte a IDE, qualidade de biblioteca padrão, suporte a biblioteca dinâmica, ligações para APIs comuns, documentação, desenvolvedor comunidade, dinâmica e suporte comercial, apenas para citar alguns. Em todos esses aspectos, D está irremediavelmente atrás de Java, C ++ e C #. Na verdade, eu argumentaria que está mesmo por trás das chamadas linguagens de "script", como Python, Perl, PHP, Ruby e até JavaScript nesse sentido.
Para ser franco, você simplesmente não pode criar um aplicativo de plataforma cruzada em larga escala usando D. Com uma biblioteca padrão imatura,
não há suporte para IDEs modernos(existem plugins para o Visual Studio e o Xamarin Studio / MonoDevelop), limitado suporte de biblioteca dinâmica / compartilhada e poucas ligações a outros idiomas, D simplesmente não é uma opção hoje.Se você gosta do que vê de D, por todos os meios, aprenda - não demorará muito se você já conhece Java e C ++. Eu não acho que o evangelismo seria útil - neste ponto, se D vai ter sucesso, o que ele realmente precisa é de mais pessoas que o usem silenciosamente e abordem suas principais deficiências, como biblioteca padrão e suporte a IDE.
Finalmente, como no C ++, enquanto a maioria concorda que a linguagem é muito complexa, milhares de empresas estão usando com êxito o C ++ como parte de uma mistura saudável de linguagens, permitindo apenas um subconjunto menor e bem definido da linguagem. Ainda é difícil superar o C ++ quando o desempenho bruto e o uso pequeno de memória são necessários.
fonte
Apenas para adicionar minhas próprias experiências à mistura:
Há cerca de um ano, trabalhei em um projeto de jogo em pequena escala (3 codificadores) com duração de 3 meses, onde usamos o D como idioma principal. Nós o escolhemos em parte como um experimento, em parte porque ele já tinha ligações para SDL e algumas outras ferramentas que estávamos usando, e principalmente pelos benefícios que parece ter sobre o C ++.
Adoramos usá-lo. Foi rápido para aprender e fácil de escrever. Muitos de seus recursos se mostraram inestimáveis, e sinto falta deles voltando ao C ++.
No entanto, os seguintes pontos tornaram nossa vida mais difícil:
No geral, adoramos escrever D. Tornou realmente fácil escrever código e foi rápido em aprender. Os problemas que mencionei ecoam a resposta que foi aceita para essa pergunta - são os bits "extras" que precisam ser abordados em D, o núcleo é sólido.
fonte
Concordo que o C ++ está se tornando uma linguagem sem saída - e me custa dizer isso, depois de usá-lo nos últimos 17 anos.
Eu acho que D é o sucessor legítimo do C ++. Do ponto de vista da linguagem, "faz todas as coisas certas" (mesmo que eu não concorde com cada decisão minuciosa). Penso que, com C e C ++ em declínio, não há outra linguagem de nível de sistema que possa realmente fazer o que faz, enquanto se mantém no mundo das linguagens modernas - exceto D! D não apenas desempenha esse papel - ele se destaca! Uma olhada no D1.x deve ser suficiente para convencê-lo disso - mas quando você olha para o D2.0, você fica impressionado. É minha opinião que hoje não existe outra linguagem que funcione tão bem quanto o D2.0 para superar os paradigmas de programação imperativos e funcionais - o que só será mais significativo nos próximos anos.
A falta de aceitação convencional - ou mesmo a visibilidade -, bem como bibliotecas maduras e em larga escala - são um obstáculo, é claro. No entanto, acho que você não pode escrever por causa disso. Estou convencido de que D irá crescer para se tornar um dos mais importantes idiomas ao redor dentro dos próximos anos - e aqueles que estão levando a sério agora vão ser bem colocado para assumir a liderança quando essa hora chegar.
Penso que a diferença se deve, em grande parte, ao envolvimento de Andrei Alexandrescu. Isso não é para desacreditar Walter Bright, que fez um trabalho importante em trazer D ao mundo. Mas Alexandrescu é uma figura importante e convincente na comunidade C ++ - e é aí que a maioria dos possíveis comutadores D virá. E ele também fez uma contribuição significativa e importante para o D2.0 em seu suporte à programação funcional.
Ainda pode acontecer que D esteja fadado a ser o Betamax das linguagens de nível de sistemas - mas meu dinheiro está voltando nos próximos dois anos.
fonte
Gosto que D seja o trabalho de um gênio, principalmente uma mente - Walter Bright, cujo compilador Zortech foi fantástico em sua época.
Em contraste, o C ++ é muito elaborado pelo comitê, mesmo que Bjarne seja uma influência. Muitos recursos adicionais e nova sintaxe estranha. Essa diferença reflete na facilidade de aprendizado e no uso diário, menos bugs.
As linguagens mais coerentes levam a melhor produtividade e alegria do programador - mas isso é subjetivo e discutível! (acho que devo votar minha própria resposta)
fonte
D é uma boa linguagem e decentemente popular , mas como todas as línguas, é apenas mais uma ferramenta. Qual ferramenta usar depende do tipo de pessoa que você é, como pensa, o ambiente em que está trabalhando, quais restrições dos idiomas aplicam o programa e, o mais importante, o próprio programa. Se você tiver tempo, eu recomendaria definitivamente aprender D. No pior cenário, você nunca o usará. É mais provável que você aprenda quais aspectos você mais gosta e sob quais condições ele brilha mais e aproveite isso para criar novos programas.
Eu recomendaria olhar para o gráfico de comparação D para ver quais são os recursos do idioma e ver se ele soa certo para você.
fonte
A linguagem D é moderna. Nenhuma linguagem é perfeita, e não há dúvida sobre isso. Mas as línguas nascem para facilitar a vida. Onde a linguagem D, comparada ao C ++, possui muitos recursos bons, em termos de complexidade. Muitas outras especialidades de combinação de idiomas estão envolvidas, o que ajuda os codificadores a codificar mais rapidamente, com os recursos TOP introduzidos por outros idiomas. Veja também: para mais detalhes sobre D e outros idiomas
D vs C ++, é a compatibilidade, onde grandes linguagens C ++ estão envolvidas e exigem compatibilidade com D. D já permitem 100% de compatibilidade com C, o que é uma boa vitória ainda.
D vs C ++, C ++ é minha opinião uma linguagem muito agradável, mas difícil de codificar e demorada exige mais e mais experiência para obter sucesso, mas D permite fazer o mesmo com simplicidade
D vs C ++, não tenho certeza se C ++ faz, mas D não permite atribuição de variável de restrição de tipo usando "auto", o que é bom ter uma variável dinâmica, quando é necessário fazer um tipo estrito
D vs C ++, se você tiver outra experiência com o idioma, pode começar com ele, ele tem um roteiro de aprendizado fácil e está sendo projetado por uma equipe experiente e forte suporte da empresa
D vs C ++, a coisa mais legal que encontrei em D, é o estilo do código, que dá a aparência e a aparência exatamente como C / C ++, enquanto a codificação lembra que estou fazendo um C / C ++ realmente moderno, chamado D
Há muitas outras boas razões para a linguagem D, não há razão para subestimar qualquer linguagem, é sempre a escolha do usuário.
fonte
Realmente depende de quais são suas necessidades - aplicativos comerciais em grande escala escritos em D do existir do lado do servidor, e para isso D (tipicamente usando Tango / Mango) é um ajuste perfeito, e que são susceptíveis de ser capaz de atender mais pedidos do que com qualquer outro idioma / plataforma.
Para soluções mais especializadas em termos de protocolos e interatividade (muitas delas), você terá mais problemas para encontrar as bibliotecas necessárias, e a falta de ferramentas provavelmente o afetará mais.
fonte
D é bastante impressionante, e o livro de Andrei é bem escrito. Mas, como já foi dito, você precisa das ferramentas e do suporte da plataforma. Com o tempo, a GDC pode ser a resposta para ambos.
você viu isso?
"O GNU Debugger adiciona suporte ao idioma D": http://www.linux.com/news/enterprise/biz-enterprise/358956-gnu-debugger-adds-d-language-support
Além disso, o site digitalmars tem páginas que discutem a interface com C e C ++ (para as bibliotecas das quais você simplesmente não pode viver). Gostaria de saber se há alguma ferramenta que, dado um arquivo de cabeçalho C, seja difícil de escrever os protótipos D.
Pessoalmente eu gostaria de não neste impulso ponto para fazer um grande projeto em D, mas eu iria usar D para obter ferramentas in-house, ficando experiência com ele e introduzindo outros a ele.
A questão original era se D é uma alternativa confiável para Java e C ++. Eu não acho que D e Java realmente vão competir muito na prática; D compete com C ++ e agora Go. Outras perguntas abordam as diferenças entre D e Go, mas o Go geralmente é considerado mais fácil de usar. Por isso, suspeito que o futuro de D dependa muito de quanto espaço há para respirar entre C ++, o atual rei da colina, e Go, a alternativa mais fácil que tem o apoio do Google.
ATUALIZAÇÃO: Acabei de descobrir que meu capítulo favorito do livro de Andrei , o de simultaneidade, está disponível gratuitamente online. Definitivamente vale a pena ler!
E aqui está uma discussão loooong sobre os méritos / objectivos relativos / abordagens de Go e D .
fonte
Parece que a pergunta foi respondida. D é a melhor linguagem em comparação com C ++.
A questão de saber se, para fins práticos, D tem melhor infraestrutura ao redor é secundária.
Em suma, se os dois são idiomas novos em folha, sem nenhum suporte em torno deles, D é o melhor idioma, portanto, é o melhor idioma.
fonte
Como linguagem, sempre achei que D é mais próximo de C # que C ++. Não em recursos e bibliotecas, mas em "sentimento". É muito mais limpo, mais agradável ... divertido (que o C ++). IMHO o maior obstáculo para se tornar uma alternativa credível são ferramentas, IDE e depurador. Se D superar alguns obstáculos de uso / adoção generalizados, mais ferramentas e bibliotecas se manifestarão. (Eu próprio retornarei a D, se houver um IDE e um depurador utilizáveis.)
fonte
Funciona muito bem para meus próprios projetos de animais de estimação. Eu o usaria para projetos de empregadores, mas por não saber o quão difícil seria para eles encontrar alguém para assumir a fonte depois que eu seguisse em frente. Não há razões técnicas para evitá-lo, pelo menos nas plataformas suportadas. (bata na madeira)
fonte
Uma abordagem é procurar empregos na sua área. Encontre os trabalhos que você gostaria de fazer e veja quais habilidades eles estão solicitando. Se eles estão pedindo C ++, Ruby, Oracle ou D, essa é a habilidade que é principalmente para ajudá-lo a conseguir o emprego que deseja.
fonte
Parece uma linguagem muito bem projetada; muito melhor que C - C ++ - Objetivo C. Posso viver sem um IDE ou depurador por um tempo, mas não sem uma boa biblioteca documentada para o D 2.0.
Volto em 6 meses ...
fonte