Delphi vs C # para programação em GUI [fechado]


20

Eu sou proveniente de PHP e Python com pouco conhecimento de C, já fiz muitos aplicativos baseados na Web agora e estou pensando no aplicativo Desktop para plataforma Windows.

Um amigo me disse para procurar Delphi e outros estão dizendo que C # é o melhor, bem, o que estou procurando é

  1. Simplicidade
  2. Produtividade
  3. Boa documentação da API
  4. Rapidez
  5. Arrastar e Soltar
  6. Multi threading & Good Network API

obrigado

Respostas:


20

Delphi, definitivamente:

  1. Simplicidade - A sintaxe do Delphi é baseada em Pascal, que foi explicitamente projetado para ser fácil de aprender, e pode cumprir essa promessa. C # é baseado na família C, que ... bem ... não era .
  2. Produtividade - Delphi é descendente do Turbo Pascal e ainda possui o compilador mais rápido conhecido pelo homem, o que aumentará enormemente sua produtividade. Além disso, ele possui o depurador O Visual Studio deseja que seu depurador seja como quando crescer. Especialmente na versão mais recente do Delphi, a depuração é muito mais fácil.
  3. Boa documentação da API - "API" é uma palavra bastante vaga hoje em dia, abrangendo todo tipo de coisas. Suponho que você queira dizer bibliotecas, e aqui é uma espécie de lance. A estrutura .NET e as bibliotecas padrão Delphi têm boa documentação online e documentação offline medíocre e difícil de usar. (Uma conseqüência da equipe do Delphi optar por usar o mesmo sistema de ajuda horrível do Visual Studio, do qual esperamos que ele se afaste na próxima versão.)
  4. Velocidade - Delphi vence facilmente. Ele compila com código nativo (execução mais rápida e inicialização muito mais rápida porque não há fase JIT) e não usa ponteiros gerenciados para que o acesso a objetos seja mais rápido e menos hostil ao cache.
  5. Arrastar e soltar - um recurso interno do VCL.
  6. Multiencadeamento - O Delphi possui uma classe de encadeamento incorporada, mas se você quiser fazer coisas complexas com simultaneidade, existem melhores opções. Primoz Gabrijelcic, um membro da comunidade Delphi, está trabalhando em uma excelente biblioteca de simultaneidade na qual ajudei a contribuir. Ele fornece suporte de alto nível para objetivos comuns de encadeamento, como pool de tarefas, loops FOR paralelos e processos de pipeline de vários estágios.
  7. Boa API de rede - O Delphi vem com o Indy, uma biblioteca madura de código aberto que facilita a configuração e o gerenciamento das conexões com a Internet. Nós o usamos no trabalho para fornecer a camada de comunicação para um aplicativo líder do setor, do qual você provavelmente nunca ouviu falar, a menos que trabalhe na mídia de transmissão.
  8. Implantação - isso não estava na sua lista, mas vale a pena mencionar. Ainda existem sistemas por aí que não têm o .NET framework pré-instalado. Por padrão, o Delphi compila sua biblioteca padrão no EXE e, em seguida, usa um smartlinker para remover partes que você não usa, resultando em pequenos EXEs que não têm dependências de grandes bibliotecas de tempo de execução, pesando centenas de MBs que seus usuários terão. para baixar e instalar separadamente.

2
@ Elf: Pode haver mais empregos em C # disponíveis, mas também há muito mais pessoas competindo por eles. Desenvolvedores qualificados de Delphi não têm problemas para encontrar trabalho.
Mason Wheeler

5
O C # não é baseado apenas em C ++, mas também em Delphi e Java. Eu também aprendi programação em Pascal e vejo muito de sua filosofia em C #. Em relação aos ponteiros gerenciados, você retrocede, não há custos indiretos para acessar dados por meio de ponteiros gerenciados, e alterá-los é mais rápido do que em um sistema usando a contagem de referência.
Guffa

12
A sintaxe do Delphi ser fácil de aprender é uma afirmação completamente subjetiva. Fiquei furioso com a sintaxe Delphi e decidi não aprendê-lo por esse motivo.
Tjaart

8
-1: Esta resposta é tendenciosa como louca. O depurador do Visual Studio é pelo menos tão bom se não melhor que o Delphi. A documentação do Delphi é inexistente em comparação com o MSDN, sendo a melhor documentação de todos os tempos.
marco-fiset 22/10/12

4
Implantação - falha total. O Deplhi requer Windows, por isso é um passo atrás em relação ao C #. O C # é portátil e multiplataforma graças ao Mono. Delphi não é. Você não precisa comprar o Windows para executar um programa escrito em C # que não usa explicitamente as bibliotecas Win32. Simplicidade - também falha. A sintaxe do C # é muito fácil de ler, concisa e fácil de escrever. Delphi não é. Documentação da API - não! Se eu escrever "web service C #", recebo vários resultados relevantes. Não há tais coisas para Delphi. Velocidade, encadeamento, especialmente o depurador - também falso.
TheLonelyCoder

15

O C # geralmente terá uma base de usuários maior, mais desenvolvimento no futuro e as ferramentas para o desenvolvimento do RAD por meio do Visual Studio são inacreditáveis.

  1. A sintaxe será semelhante à usada no PHP e C.
  2. O Visual Studio com suas ferramentas e o IntelliSense é extremamente produtivo.
  3. MSDN
  4. Novamente, o VS tools + Intellisense, mas a velocidade realmente vem da familiaridade do seu idioma e de seus recursos.
  5. Designer VS para WinForms, WPF.
  6. System.Threading e System.Net

Eu não tenho muita experiência com Delphi, e estou apenas falando sobre minhas experiências com C # em geral. Onde trabalho, tenho prazos extremamente apertados previstos por não programadores e sou capaz de distribuir aplicativos de desktop de negócios extremamente rápido. Nas últimas três semanas, fui da especificação para a implantação em dois aplicativos LOB de winforms. A produtividade para o desenvolvimento da GUI em C # com o VS é simplesmente louca.


4
Obrigado, de acordo com uma publicação em daniweb.com/forums/thread54305.html , a integração e a completude da API do Win32 no Delphi superam até C
elf1984

2
você realmente deve procurar no Delphi se acha que o C # é o melhor ambiente de desenvolvimento para criar aplicativos de desktop rapidamente. Eu pessoalmente odeio quando tenho que criar coisas de área de trabalho com o visual studio, mas hoje em dia nem sempre tenho uma escolha (infelizmente).
Wouter van Nifterick

1
As ferramentas RAD (design de formulário) do Visual Studio são péssimas, francamente.
Warren P

1
@WarrenP Você poderia, por favor, elaborar?
Tjaart

1
Crie um aplicativo de servidor em C # e crie um aplicativo de desktop em Delphi, porque o delphi produz código nativo que é mais difícil de decifrar!
justyy

14

Ambos têm todos os 6 pontos que você deseja, mas eu sinto que o C # tem vantagem na maioria, se não em todos.

Para passar pelos pontos:

  1. O Delphi requer gerenciamento de memória, então você pode argumentar que sozinho torna o C # mais simples. A resposta aceita menciona a sintaxe aqui, bem, a sintaxe do C # é semelhante ao PHP e Java; portanto, se você deseja começar a funcionar mais rapidamente com qualquer um desses fundos, o C # tem vantagem.
  2. Produtividade, acho que você realiza mais rapidamente em C #. A biblioteca .net oferece tanto que, nos velhos tempos, eu precisaria procurar componentes delphi de terceiros para fornecer.
  3. Na documentação, o Delphi sempre foi bom, o MSDN é melhor, e você encontrará uma comunidade maior para suporte, veja minha análise de estouro de pilha abaixo.
  4. Velocidade, Delphi pode ter vantagem nisso, mas a montagem supera tudo, de modo que geralmente não é um bom motivo para escolher um idioma. Uma coisa que gostaria de salientar é que ouvi pessoas citarem que o C # é interpretado. Não é, nunca foi, sempre teve um JIT.
  5. Arraste e solte, disponível em ambos.
  6. Multithreading, o Delphi é bom, mas o C # é excelente com construções em construções como lock(){}extensões paralelas e o novo await.

Ponto extra, o título da pergunta é programação GUI, por isso sou um grande fã do .nets WPF, que, a única coisa que Delphi tinha que estava na metade do caminho era Bold , o que era uma dor de domar e agora está morto.

Tamanho da comunidade, comparando o número de perguntas sobre isso e Stack Overflow nas tags Delphi e C #, você verá que o tamanho da comunidade C # é muito maior.

Estouro de pilha:

  • Delphi 17K
  • C # 367K
  • Java 312K
  • c 73K

Eu adicionei c, para mostrar que não é um problema com a idade dos idiomas e Javaapenas para comparação.

Eu não sou fã de C # ou Java, eu era um grande fã de Delphi, desenvolvedor profissional puro de Delphi por 7 anos, mas eles realmente estragaram tudo a partir de 2005 com sua incursão mal feita em .net, que estragou a estabilidade do IDE para compilação nativa de 32 bits. O Delphi 7 era o pico da linguagem em minha opinião.


Que tal uma resposta com esse voto negativo?
weston

1
Eu não sou o derrotador, mas diria que você não está respondendo à pergunta. Você está apenas avaliando a popularidade do Delphi no stackoverflow. Você com certeza faz uma observação, mas o IMHO é bem menor. Ser o único a usar uma tecnologia nem sempre é uma coisa ruim.
Simon Bergot

@Simon fair point, agora respondi a todos os pontos e integrei a análise do número de perguntas em um ponto mais amplo sobre o tamanho da comunidade.
weston

Pode-se argumentar que a linguagem que resulta em mais perguntas é mais complicada de usar. ;-) Como o Bold foi semelhante ao WPF? Eu usei o WPF e não vi nenhuma semelhança.
Jim McKeeth

@JimMcKeeth O Negrito e o WPF fornecem uma estrutura para vincular dados aos controles da interface do usuário, para que, quando os dados forem alterados, a UI seja atualizada e vice-versa, se necessário.
weston

8

Quando eu estava na uni, fui ensinado programação com Delphi. Estou um pouco enferrujado, mas atualmente estou lendo muitos códigos Delphi para portá-los em um aplicativo C #.

Eu prefiro muito o OO com inclinações funcionais de C # sobre o procedimento com inclinações OO do Delphi. Você deve considerar como prefere codificar ao escolher entre eles. Não acho que exista muita coisa em termos de simplicidade - exatamente o que você achar mais fácil. O mesmo vale para a produtividade.

Em termos de RAD (rápido desenvolvimento de aplicativos), não há muito entre as formas de win e o design da GUI do Delphi. Eles me lembram um do outro.

Por outro lado, o WPF é algo que eu prefiro sobre os dois por seu estilo declarativo.

Eu não acho que exista muita diferença entre a qualidade e a cobertura da documentação fornecida pelo fornecedor para C # ou Delphi. Eu acho que você encontrará mais informações não relacionadas a fornecedores sobre C #, mas isso pode ser apenas porque eu realmente não procurei muito no caminho do Delphi.

Eu não tive que fazer nenhuma programação encadeada com o Delphi, e qualquer rede que eu fiz foi anos atrás e não me lembro.

As bibliotecas .NET para processamento paralelo, eventos e outros trabalhos de encadeamento são boas. Então você não estará perdendo por aí. Há muito suporte quando se trata de rede, então é altamente recomendável.

No geral, eu iria com C # /. NET. Isso ocorre em parte por causa do WPF, mas também prefiro o código que escrevo em C #. Tanto quanto sei, o delphi não tem nada como o Linq, o que acho inestimável.


Obrigado pela sua maravilhosa resposta. qual livro você leu como iniciante? agora vou iniciar o C # 4 e o .NET 4 no VS 2010
elf1984

4
Cuidado ao tentar portar um aplicativo Delphi para C #. Toda vez que eu ouvi falar de alguma empresa tentando, eles acabaram validando todos os argumentos de Joel em "Coisas que você nunca deve fazer, parte 1", e isso acabou em desastre para o produto e a empresa que o possui.
Mason Wheeler

Desculpe, não posso aconselhá-lo sobre um livro para iniciantes para c # 4. Não tenho certeza de ter um quando iniciei o c # (nos 1,1 dias. Tenho certeza de que havia alguns, mas não li um). Quando comecei, acho que o primeiro livro que usei foi Teach Yourself C ++ in 21 Days, de Jesse Liberty, que li antes de começar a trabalhar na universidade. Levei anos para superar, mas aprendi muito. Outro bom livro que tive foi o Discover Delphi, que foi o livro do curso. Um livro que eu recomendo é objeto Pensamento por David West, como ele realmente faz você pensar sobre OOP e OOD, também Effective C # por Bill Wagner ...
Matt Ellen

... Eles não são realmente um livro para iniciantes, mas depois de ter os fundamentos, eles têm ótimas dicas e conselhos sobre como se tornar um programador melhor.
Matt Ellen

Entre se você está procurando LINQ em Delphi, consulte a biblioteca DeHL de Alexandru Ciobanu. Ele fornece coleções e operadores no estilo LINQ. A sintaxe LINQ (o material pseudo-SQL) ainda não está no Delphi, mas aparentemente a equipe do compilador está trabalhando nisso para uma versão futura.
Mason Wheeler
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.