Jump to content

D programming language


deathseeker25

Recommended Posts

D is a systems programming language. Its focus is on combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python. Special attention is given to the needs of quality assurance, documentation, management, portability and reliability.

D is statically typed, and compiles direct to native code. It's multiparadigm: supporting imperative, object oriented, and template metaprogramming styles. It's a member of the C syntax family, and its look and feel is very close to C++'s. For a quick feature comparison, see this comparison of D with C, C++, C# and Java.

#!/usr/bin/dmd -run
/* sh style script syntax is supported */

/* Hello World in D
   To compile:
     dmd hello.d
   or to optimize:
     dmd -O -inline -release hello.d
*/

import std.stdio;

void main(char[][] args)
{
    writefln("Hello World, Reloaded");

    // auto type inference and built-in foreach
    foreach (argc, argv; args)
    {
        // Object Oriented Programming
        CmdLin cl = new CmdLin(argc, argv);
        // Improved typesafe printf
        writefln(cl.argnum, cl.suffix, " arg: %s", cl.argv);
        // Automatic or explicit memory management
        delete cl;
    }

    // Nested structs and classes
    struct specs
    {
        // all members automatically initialized
        int count, allocated;
    }

    // Nested functions can refer to outer
    // variables like args
    specs argspecs()
    {
        specs* s = new specs;
        // no need for '->'
        s.count = args.length;		   // get length of array with .length
        s.allocated = typeof(args).sizeof; // built-in native type properties
        foreach (argv; args)
            s.allocated += argv.length * typeof(argv[0]).sizeof;
        return *s;
    }

    // built-in string and common string operations
    writefln("argc = %d, " ~ "allocated = %d",
argspecs().count, argspecs().allocated);
}

class CmdLin
{
    private int _argc;
    private char[] _argv;

public:
    this(int argc, char[] argv)	// constructor
    {
        _argc = argc;
        _argv = argv;
    }

    int argnum()
    {
        return _argc + 1;
    }

    char[] argv()
    {
        return _argv;
    }

    char[] suffix()
    {
        char[] suffix = "th";
        switch (_argc)
        {
          case 0:
            suffix = "st";
            break;
          case 1:
            suffix = "nd";
            break;
          case 2:
            suffix = "rd";
            break;
          default:
    break;
        }
        return suffix;
    }
}

Note: all D users agree that by downloading and using D, or reading the D specs, they will explicitly identify any claims to intellectual property rights with a copyright or patent notice in any posted or emailed feedback sent to Digital Mars.

Fonte: DigitalMars

Pelos vistos é uma linguagem que combina o poder do C com o do C++, com uma sintaxe bastante parecida com C e C++. Tem as características de todas as linguagens de alto nível combinadas nela mesma. Vejam o link da comparação para ficarem a conhecer as semelhanças entre as linguagens.

O que dizem?

Link to comment
Share on other sites

Esqueci-me de referir que em termos de portabilidade tem as mesmas vantagens que o C: a própria GNU se encarregou de desenvolver o GDC para Linux e a própria DigitalMars desenvolveu o DMD para Windows.

Portável, com um potencial unificado de todas as outras linguagens, valerá a pena abrirmos uma secção para a linguagem aqui no fórum? 😛

Link to comment
Share on other sites

epa... há muitas linguagens de programação, dezenas delas...

Cada uma se afirma a melhor, mas a verdade é que o C/C++ não se vão abaixo. Basta olhar para um aplicação escrita em C e uma em Java... ah tal.. java... POO por si própria, segura, facil, portável etc etc... mas depois o resultado está à vista

PHP e python parecem-me as liguagens do momento. E estão a saltar para o client side a bom ritmo.... especialmente o python...

ainda ontem ouvi falar de um framework novo no digg... uma cena para desenvolver aplicações web de forma rápida...já não me lembro qual é... que carago... acho que era uma m**** chamada django... alguem conhece?

Link to comment
Share on other sites

  • 6 months later...

Bem.. Peço desculpa por reavivar um tópico antigo  😄 mas havendo notícias relevante achei por bem fazê-lo.

Como alguns já o devem saber saiu (finalmente) a versão 1.0 do D. Esperando que os criadores continuem a avançar no caminho mais apropriado aos programadores as novas "features" não serão assim coisas tão novas mas serão sim o melhoramento do produto actual, como a estabilidade e a fiabilidade do compilador. Espero que assim seja, apesar de a versão actual ser bastante boa e no (pouco) que trabalhei nela perfeitamente funcional e uma sintaxe muito agradável e fácil (especialmente para quem gosta de C++). Mas uma versão em que todas as outras se possam basear irá ser com certeza o marco que, espero, levará a história de sucesso da linguagem ainda a pontos mais altos.

Não tendo experimentado mas confiando no que os utilizadores revelam e alguns benchmarks que se encontram pela internet (incluindo a página oficial) Além de aumentar a velocidade de produção também a sua eficiência é bastante elevada, devido a ser uma lingagem que apesar de facilitar muita coisa permitir o acesso a tarfas de baixo nível. Apesar de muita gente (como eu), pensar que esta é uma linguagem mais ao menos recente, o seu aparecimento já aconteceu à cerca de 7 anos , permitindo assim ter criado ao longo do tempo uma forte e eficiente base de desenvolvimento.

Mas mais que de dar a conhecer gostava de saber se aluém já trabalhou ou tem travalhado com ela e qual a sua opinião, eu ainda não pude explorar e estou curioso. Já li bastantes tópicos noutros fóruns estrangeiros, mas gostava de ler algo da comunida aqui do POrtugal-a-Programar   🙂

Aqui estão alguns Links referentes á linguagem:

Uma entrevista a um dos seus criadores (além de outras tarefas encarregado do design da linguagem) Walter Bright, o mesmo homem que criou o primeiro compilador nativo para C++, Zortech C++ que actualmente é o Digital Mars C++ - http://www.bitwisemag.com/copy/programming/d/interview/d_programming_language.html

Um pequeno artigo sobre a linguagem - http://larsivi.net/comment/reply/72

Para informações mais especificas - http://www.digitalmars.com/d/ - a página oficial e - http://dgcc.sourceforge.net/ - O compilado GNU para D

Outras páginas: http://www.dsource.org/, http://www.codemoon.com/dpage.php, http://spottedtiger.tripod.com/D_Language/D_Main_XP.html, http://dmedia.dprogramming.com/ - Contêm tutoriais, projectos e muitos mais infrmação acerca de D.

Se procuram um IDE para programar em D (devem haver já alguns) mas o Code::Blocks - www.codeblocks.org - é o único em que trabalhei e é bastante agradável.

Criar é Divertido

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.