Como você escolhe usar uma linguagem de programação específica? [fechadas]

8

Eu estava tendo uma pequena conversa entre colegas de equipe sobre como você escolhe uma linguagem de programação para uso em um projeto, o que me levou a pensar que existem muitos critérios para escolher um no início de um projeto, mas não há um padrão real.

Você escolheu uma linguagem de programação para sintaxe e semântica? Ou você escolhe um porque tem o melhor suporte para fazer certas coisas? Ou porque você tem bibliotecas melhores? Ou você o escolhe pelo paradigma?

Quais critérios você usa para escolher um idioma quando vai fazer um projeto?

Jesus
fonte
1
Na verdade, eu me peguei pensando const Haskell :: [Constraint] -> ProgrammingLanguage.
dan_waterworth

Respostas:

15

Meus critérios, em ordem:

  1. É a ferramenta certa para o trabalho? Por exemplo, se você estiver criando um cliente de desktop gráfico em rede, convém usar uma linguagem que ofereça suporte a esse tipo de coisa, como Java ou C #. OTOH, se você estiver trabalhando em um sistema em tempo real, gostaria de algo que lhe desse mais previsibilidade e controle de baixo nível (como C).

  2. É apropriado para o meio ambiente? Os compiladores / intérpretes estão prontamente disponíveis para a plataforma de destino?

  3. É algo com o qual já estou familiarizado ou é um idioma que posso entender rapidamente? Por exemplo, como a maior parte da minha experiência é com C e C ++, posso pegar rapidamente linguagens com sintaxe semelhante (novamente, Java ou C #) facilmente. Algo que está em uma família completamente diferente (como Haskell) me levaria mais tempo para me sentir confortável.

  4. É algo bem suportado, com muitas referências on-line e no papel?

John Bode
fonte
1
Para adicionar ao item 1: onde essa coisa está sendo implantada? As atualizações automáticas são importantes? Se não for baseado na Web, ele precisa ser multiplataforma? Se for baseado na Web, qual arquitetura de servidor você está usando? Votei sua resposta porque acho que a implementação é a primeira pergunta a ser feita. É como perguntar 'o que' antes de perguntar 'como', especialmente em um projeto voltado para o cliente.
MetaGuru 04/04
5

Muitos fatores entrariam nele, eu acho

  1. O idioma se presta bem ao tipo de aplicativo que você vai codificar?

  2. Você está bem versado na linguagem de programação? (Torna-se mais importante à medida que os prazos diminuem)

  3. Recursos de biblioteca e idioma para uma determinada área do seu aplicativo.

  4. É um novo idioma? Foi testado e comprovado no domínio atual?

  5. Quantas pessoas realmente codificam nele? Importante se você precisar de ajuda e houver uma comunidade ativa e grande

JohnP
fonte
1

Critérios importantes para mim são:

  • experiência anterior com o idioma.
  • suporte de ferramenta / fornecedor para o idioma.
  • suporte de biblioteca / ecossistema para a tarefa e o idioma.

Eu diria que sintaxe e paradigma não são tão importantes.

Eu não escolheria um novo idioma porque gostava da sintaxe ou do paradigma, mas tinha ferramentas com mau funcionamento e uma biblioteca mínima que não podia fazer a maior parte do que eu precisava.

FrustratedWithFormsDesigner
fonte
1

Idiomas são ferramentas. Como em qualquer ferramenta, você precisa levar várias coisas em consideração:

1) Você tem acesso à ferramenta?
2) Você sabe como usar a ferramenta?
3) Das ferramentas que atendem aos critérios 1 e 2, qual é o melhor para o seu trabalho?

Se você tiver apenas uma ferramenta, a resposta é simples. Se você tiver uma dúzia de ferramentas, precisará analisar hospedagem, custos de manutenção e outros problemas periféricos.

Satanicpuppy
fonte
1

Provavelmente isso vai me deixar com votos negativos, mas a coisa mais importante para mim é a sintaxe. Com os programas gastando muito mais tempo e esforço em manutenção do que nos escritos originais atualmente, a capacidade de pegar um pedaço de código desconhecido (de outra pessoa ou de mim mesmo se eu o escrevi há mais de seis meses) e determinar rapidamente o sua intenção é estatisticamente uma das habilidades mais importantes que um programador moderno pode ter. Uma linguagem limpa e de fácil leitura ajuda imensamente com isso.

Depois disso, em nenhuma ordem específica,

  • Boa biblioteca padrão
  • Bom IDE e ferramentas
  • Comunidade forte, especialmente o ecossistema de código aberto
  • A capacidade de gerar um produto final rápido e eficiente
Mason Wheeler
fonte
2
Então, com esse argumento, Ada é sua primeira escolha e PERL é uma invenção do diabo, estou certo?
John R. Strohm 04/04
@ John: Minha língua de escolha é na verdade Delphi, que é uma prima distante de Ada. A sintaxe derivada de Pascal é boa, mas Ada nunca realmente desenvolveu uma comunidade forte. Quanto a Perl, deixarei Alan Kay responder a essa pergunta. "Perl é outro exemplo de preenchimento de uma pequena necessidade de curto prazo e, em seguida, ser um problema real a longo prazo". Quando você considera como o software é usado em todos os aspectos da vida hoje em dia, não é difícil argumentar que o mundo seria um lugar muito melhor se Perl e C nunca tivessem sido levados a sério pela indústria da computação. Mas retrospectiva é 20/20, como eles dizem ...
Mason Wheeler
1

Eu só uso os idiomas que conheço melhor:

  • Java para praticamente tudo
  • SQL para o banco de dados
  • Pequenos scripts de shell e scripts de linha de comando
  • HTML, CSS e JavaScript para front-end da Web

Não tento aprender um novo idioma quando inicio um novo projeto sério. Eu uso o que eu sei.


fonte
-1 i) Como isso responde à pergunta do OP? ii) Desculpe, com tantos DSLs novos sendo criados todos os dias, eu realmente não acho que seja um comportamento do qual se orgulhe. iii) O Programador Pragmático dá um conselho muito popular (e útil): aprenda um novo idioma todos os anos.
rsenna
1
@rsenna: jogando Devil's Abocado, acho que às vezes podemos ficar um pouco machões com a nossa capacidade de aprender novos idiomas. Há algo a ser dito para começar o trabalho em idiomas que você conhece bem primeiro, identificando onde estão seus pontos negativos e depois procurando idiomas que realmente o ajudarão a resolvê-los.
Paul D. Waite
1
+1 para cancelar esse -1, porque em quase todas as situações do mundo real, você fará um trabalho melhor com o idioma que melhor conhece, do que com um idioma diferente que seja mais adequado ao problema, mas que você está menos familiarizado ou não.
Carson63000
0

O custo para criar um aplicativo é quase proporcional ao tamanho do código; portanto, para minimizar o custo, escolho a linguagem mais poderosa usada para resolver problemas semelhantes. Não me preocupo com o número de programadores que conhecem o idioma, já que não precisarei de muitos. Também tento evitar o aprisionamento de fornecedores, por isso prefiro soluções abertas.

Kevin Cline
fonte