Linguagem D - a grande próxima linguagem !?

Fabio Bombonato // terça-feira, 8 de julho de 2014



A linguagem C++ é extremamente rápida, de alto desempenho e provem um ótimo controle sobre os códigos produzidos. Mas não tem a facilidade e flexibilidade comparada a outros tipos de linguagens, tais como Python, Ruby, PHP.

A linguagem D tenta entrar no meio desta briga, oferecendo o desempenho do C++ e trazer formas mais convenientes de desenvolvimento para o programador. É uma linguagem de alto desempenho, mais expressiva, você pode fazer muito sem precisar de várias linhas de código.


Linguagem D

Formalmente D é uma linguagem de programação orientada a objeto, imperativa, com suporte a metaprogramação e funcional criada por Walter Bright e Andrei Alexandrescu. Seu objetivo é tentar combinar o desempenho (performance) e segurança (safety) das linguagens compiladas com os poder expressivo das linguagens dinâmicas.

Outros pesos pesados da indústria também estão seguindo esta mesma ideia. O Google tem sua linguagem Go e a Apple com o Swift, ambas tentando equilibrar poder e simplicidade.

Aparentemente, o Facebook acredita na linguagem D suficientemente para manter o Alexandrescu trabalhando em tempo integral, bem como considera em utilizar o D em vez do C++. A empresa já começa a usar a linguagem Hack para criar o front-end de seus serviços (webpages) e experimentando a linguagem D no back-end (o sistema que serve como motor/engine de sua rede social).

Para o Facebook, ainda é um projeto de pesquisa. Mas Alexandrescu usou o D para recriar duas partes específicas dos softwares do Facebook. Refez o "linter", conhecido como Flint que identifica erros em outros softwares da empresa e formou um novo "preprocessador", chamado de Warp, que ajuda a gerar os códigos centrais do Facebook. Em ambos os casos, como substitutos para o C++.

Diferente das linguagens interpretadas que rodam o código praticamente assim que os escreve o D é uma linguagem compilada, você precisa escrever o código e transformar em um software executável antes de rodá-lo. Contudo, o compilador é bem rápido, permitindo que o fluxo de escrever e compilar sejam ágil o que faz parecer com uma linguagem interpretada.

Um fator para se pensar hoje em dia é, de acordo com Alexandrescu, que uma linguagem de programação ainda precisa de um grande nome por trás. "O suporte de uma empresa coorporativa é vital atualmente", diz ele. O Facebook está bancando a linguagem D, também dando suporte ao Hack, inclusive contratando um dos maiores experts na linguagem Haskell. Vale lembrar como o Java obteve sucesso tendo a Sun Microsystems injetando muito esforço, divulgação e principalmente muito dinheiro na década de 90 para permitir que o Java alavancasse e se tornasse a linguagem que é hoje. Além das linguagens Go suportadas pela Google e Swift pela Apple.

Interessante que no início a linguagem era chamada de Mars, contudo a comunidade em torno do projeto a chamava de D, pois era a próxima letra depois de C. Logo, D tornou-se o apelido e o apelido acabou ficando.

Exemplos

Sintaticamente, D parece muito com C/C++/C#/Java. Segue alguns exemplos para aguçar a curiosidade:

HeloWorld

import std.stdio;

void main() {
  writeln("Hello World!");
}

Classes e Interfaces

// Interfaces e classes
interface Printable {
   void print(uint level)
   in { assert(level > 0); } // contrato e parte da interface
}

// Implementacao da Interface
class Widget : Printable {
   void print(uint level)
   in{ }
   body{ }
}

// Heranca simples do estado
class ExtendedWidget : Widget {
   override void print(uint level)
   in { /* precondicao fraca permitida */  }
   body {
       //... Aqui, o nivel deve ser 0  ...
   }
}