O que impulsiona a adoção, ou não, de novas linguagens de programação? [fechadas]

12

Eu realmente gostaria de focar no motivo pelo qual algumas novas linguagens de programação são adotadas no mainstream e outras permanecem relativamente específicas. Gostaria de saber sobre casos como casos de uso específicos, compatibilidade com versões anteriores ou alguns novos recursos, dificuldade de implementação simples ou complexa. Exemplos específicos seriam apreciados, mas não vamos nos envolver com a definição exata de "mainstream" ou "nicho" aqui.

DeadMG
fonte
2
A chance e o apoio corporativo são um grande fator. steve-yegge.blogspot.com/2007/02/next-big-language.html
Trabalho
3
Não é uma pergunta adequada para este fórum
Ryan
Bem, por um lado, este não é um fórum. E para dois, acho que isso atende muito bem às diretrizes para uma pergunta subjetiva.
DeadMG
1
A adoção de uma linguagem de programação está inversamente relacionada à quantidade de descolados que a utilizam.

Respostas:

18

Se alguém realmente soubesse, seriam pessoas muito ricas.

Dito isto, aqui está o meu palpite:

Disponibilidade

O BASIC é uma linguagem horrível que veio com (todos?) PCs quando foram lançados. O Apple II (o computador padrão para muitas escolas de ensino médio) e o ATARI 400/800 (o primeiro computador doméstico super barato) vieram com o BASIC.

Se você possuía uma máquina UNIX (sistema AT&T V ou Berkeley), possuía C. Se você queria programar a máquina, era isso que precisava usar.

EDIT : Com o advento e a onipresença da 'net', este requisito se transforma em:

  1. Quantas distribuições Linux empacotam uma cópia recente e quão bem elas a mantêm atualizada? As bibliotecas de terceiros estão igualmente disponíveis para instalação?
  2. É facilmente instalado no Windows (XP | Vista | 7,8 ...)?
  3. As plataformas Mac / iOS são cobertas?
  4. Pode ser instalado sem incômodo no Unix legado?
  5. E, uma vez instalado, quão fácil é acessar as bibliotecas de terceiros e pode ser atualizado facilmente?

Facilidade de transição

Java é um bom exemplo aqui. Se você conhecia a programação C, o Java não estava muito longe, e ainda assim fornecia muitos dos recursos que faltavam ao C e o C ++ falhou ao fornecer de maneira limpa.

O C ++, por razões óbvias, foi um passo fácil em relação ao C e foi fácil vender para o gerenciamento como um C. "aprimorado". O C ++ teve o benefício adicional de ser compatível com versões anteriores de grande parte da base de código C herdada existente.

Perl era uma amálgama de utilitários C, awk, sed e outros utilitários Unix, tudo em um único pacote. Antes de sua aparência, a maior parte da administração do sistema era feita por meio de scripts de shell colando tudo de uma maneira insatisfatória. Trazer tudo sob um processo com as estruturas de dados e o controle de uma linguagem C foi uma dádiva de Deus.

Preenche uma necessidade

C decolou porque lhe permitiu produzir eficiências próximas à montagem sem se atolar no mundo específico da máquina, difícil de manter.

O FORTRAN decolou porque permitiu a tradução fácil de idéias matemáticas em código sem ter que se perder nos detalhes da máquina.

Da mesma forma para LISP e manipulação simbólica.

O Python surgiu da necessidade de um Perl "melhor". (Sou tendencioso aqui, então não direi mais.)

O PHP era essencialmente o BASIC para a Web - ele era instalado por padrão em muitos servidores da Web e era fácil juntar algo útil rapidamente.

Advocacia, Base de usuários, Código contribuído

Vamos ser sinceros, Haskell não seria tão popular quanto em uma linguagem que não está em produção se não fosse pela incansável defesa de seus desenvolvedores e base de usuários.

Muitos idiomas têm um culto à personalidade por trás dos criadores do idioma, e todos sabemos quem eles são.

O FORTRAN possui enormes conjuntos de códigos matemáticos estabelecidos e aprovados; o mesmo para Java e web / systems-integration / MVC-systems; o mesmo para Perl e CPAN; o mesmo para T E X e gerenciamento de documentos; etc.

O É Fator

Por alguma razão, algumas línguas parecem ter a quantidade certa de novas , com um aceno suficiente para as antigas , de uma maneira que a faz parecer fácil ou necessária. Ou seja, faz seu próprio caso. E quem sabe exatamente como isso acontece?


Enfim, esse é o meu melhor palpite sobre por que alguns conseguem. Quanto ao motivo pelo qual alguns não ... bem, se eles não atendem aos critérios acima, provavelmente é por isso que falharam.

antitônico
fonte
1
O fator determinante na maioria dos seus critérios é o apoio corporativo . Java pode ter pontuado por, por exemplo, facilidade de transição, mas sem alguém disposto a gastar milhões nela, ano após ano, como parte de seu plano de dominação mundial, não está claro que diferença isso teria feito. Então, você está certo, os muito ricos sei a resposta a esta :-)
jaybee
4
@jaybee - não tenho certeza de que o apoio corporativo dos criadores de idiomas necessariamente ajudou. Fortran e C não foram particularmente ajudados por terem vindo do IBM / ATT. O link Oracle parece estar prejudicando ativamente o Java. Basic, Perl, Python, Ruby etc, todos não tinham empresas por trás deles. O suporte corporativo interno ao usuário / cliente é importante, mas segue muito depois que se torna onipresente.
Martin Beckett
1
@ Martin Beckett: você pode ter razão. Penso, porém, que, embora possa ser necessário alinhar todos os tipos de planetas para que uma linguagem chegue à massa crítica, a maneira "moderna" de colocar esses planetas alinhados parece ser queimar dinheiro. Por exemplo, Mark usa Haskell como exemplo - pode ter uma ótima base de usuários, mas o GHC ganha muitos argumentos para eles. Compiladores como o GHC custam dinheiro.
21411 jaybee
@ Jaybee - há muita sorte. Porém, para novas e interessantes linguagens da web, pode ser a habilidade de marketing do criador / adotante precoce que é o que importa.
Martin Beckett
11

Os idiomas se tornam populares porque têm uma vantagem sobre os idiomas existentes em uma área necessária.

Java

  • Gerenciamento automático de memória (compare com C ++ e C)
  • Idioma / API incorporado no Threading
  • É executado em uma máquina virtual (isso significa que os desenvolvedores podem usar o Windows em máquinas de desenvolvimento para testar e implantar o aplicativo sem modificação no Linux / Unix).
  • A programação em rede é muito mais fácil do que nas linguagens mais populares antes (C ++ e C) e o Java foi lançado quando a Internet começou a ser popular.

PHP

  • Facilitou o desenvolvimento da web
  • Suporte integrado para conexão com bancos de dados MySQL
  • Nenhuma compilação necessária e foi fácil incluir os scripts diretamente nos seus arquivos HTML.

Javascript

  • O único idioma para navegadores da web.
  • Navegadores da Web são usados ​​cada vez mais como thin clients (aplicativos da Web).
  • Código móvel - fácil de implantar e sem instalação

Objetivo-C

  • O idioma para o ambiente Mac OS X e iPhone. E o iPhone tem sido um enorme sucesso.

Rubi

  • Juntamente com o Ruby on Rails - uma estrutura da Web, tornou o desenvolvimento da Web em larga escala muito mais fácil com o MVC.

C #

  • O idioma para ambientes Windows nos últimos dez anos. Quase todas as APIs da Microsoft são fáceis de usar com C #, por exemplo, Winforms e WPF e WCF.

ActionScript

  • A única linguagem para o Addobe Flash / Flex, que teve um enorme sucesso em conteúdo de mídia na Internet e coisas que o JavaScript não conseguiu lidar.

Erlang

  • Concorrência e tolerância a falhas - Erlang tinha um modelo exclusivo para executar sistemas tolerantes a falhas de concorrência e estruturas. Começou a ser útil para o setor de telecomunicações, depois abriu o código-fonte e conseguiu o interesse de grandes empresas de Internet que também precisavam de tolerância a falhas.
Jonas
fonte
1
O modelo de simultaneidade de Erlang não é único, apenas diferente do usado pelas linguagens imperativas feias :). Scala tem o mesmo tipo. Da mesma forma, Clojure e Haskell são especializados em STM.
alternativa
4
@mathepic: Verdade, mas todos esses idiomas são mais novos que o Erlang. Por isso, foi único para Erlang no começo - como quase todos os recursos de linguagem que listei. Vale a pena roubar boas ideias.
Jonas10
1
C # é a linguagem .net. Eu pensei que o Windows era realmente escrito em c ++. Estou errado nisso. Eu diria que o C # se tornou popular ao alavancar uma linguagem que as pessoas já conheciam (C) com uma nova estrutura que facilitou o desenvolvimento de aplicativos poderosos com uma ferramenta de editor poderosa, fácil de usar e levou em consideração as necessidades e o uso real dos desenvolvedores.
SoylentGray
1
@Chad C # não tem nada a ver com C
alternativa
1
@mathepic - Eu trabalhei em programação em C, C ++ e C #. Posso dizer que o C # ainda mantém suas raízes c na nomeclatura. É certo que foi além de C, o que não significa que não aproveite o idioma.
precisa saber é o seguinte
5

Serei cínico: dinheiro e, com isso, marketing.

Não é por acaso que o C # é suportado pela Microsoft, Java pelo Oracle e Objective C pela Apple. Apenas o Google's Go realmente não aumentou até agora.

É claro que o dinheiro não é o único motivo, mas ter bolsos profundos certamente ajuda a colocar seu idioma no mercado.

Carra
fonte
É preciso concordar e estender: palavras-chave, apelo gerencial, grandes nomes, recursos interessantes. Se você não concordar, darei a você um nome: COBOL.
SF.
1
C # e Obj-C não são tão suportados quanto "mandatados" por. É difícil programar aplicativos do Windows em c ++ com apenas apis fornecidas pela MSFT, e o AFAIK apenas obj-C é permitido em pelo menos plataformas móveis da Apple. Por outro lado sueing de fabricantes de Android da Oracle pode prejudicar Java
Martin Beckett
1
@ Martin - Você está amplamente correto WRT Obj-C. Tecnicamente, você pode usar coisas como o Appcelerator Ttanium para usar outros idiomas para escrever os aplicativos, mas ele ainda é convertido em Obj-C para implantação (e foi uma luta para eles conseguirem isso). A Apple banirá praticamente qualquer outra coisa (até o PhoneGap seguiu um bom caminho).
Shauna 11/07
3

Por um lado, é marketing, mais precisamente apresentações, blogs etc. É importante ter recursos com os quais os programadores convencionais possam se relacionar e obter benefícios sobre o que sabem (Java vs. C ++ - coletor de lixo versus gerenciamento de memória). Por último, mas não menos importante, é ter baixa barreira de entrada - exemplos, boas documentações, instalação perfeita, boa comunidade e suporte, desenvolvimento vibrante.

Gabriel Ščerbák
fonte
1

Quase todas as línguas possuíam programas não triviais de resolução de problemas do mundo real, escritos usando-os muito cedo em suas vidas.

O Unix foi escrito em C, assim como as ferramentas do Unix, quando o C era muito jovem e evoluindo.

O Anaconda (programa de instalação do RedHat) foi escrito em Python quando Python era jovem e não tinha a popularidade de hoje.

É isso que me lembro de imediato. Essa lista pode tocar em cada um dos idiomas que sobreviveram a seus anos de formação.

Então, a adoção em larga escala nas universidades pode ajudar a longevidade de um idioma. Java é muito popular nas universidades como uma linguagem de ensino. Até certo ponto, o Lisp e os dialetos do Lisp também gozam desse status.

vpit3833
fonte