Qual é o negócio no desenvolvimento de uma linguagem de programação? [fechadas]

24

Eu queria saber se há uma receita grande e direta no lançamento de uma linguagem de programação como Java ou C #?

Vender IDEs, licenciar sua marca para livros ou obter prestígio empresarial parece um benefício marginal aos meus olhos em comparação com o esforço que sem dúvida o desenvolvimento levou (eu poderia estar errado, é claro).

vemv
fonte
A linguagem D vem à mente. A Digital Mars até lança seus compiladores de graça.
Maxpm
A Sun ganhou dinheiro com Java vendendo hardware para executá-lo.
Gaius

Respostas:

17

De um modo geral, não há dinheiro no desenvolvimento de linguagens de programação.

O C # certamente ganha dinheiro com a Microsoft, mas está essencialmente ganhando dinheiro indiretamente, promovendo a estrutura .NET e outras tecnologias da Microsoft.

Peter Alexander
fonte
11
... e isso leva à pergunta - existe algum dinheiro na estrutura / plataforma então?
vemv
6
@ Victor O dinheiro na plataforma vem da venda de licenças. Alguém que deseja executar um programa .Net geralmente compra o Windows. (Mono está disponível, mas não é amplamente utilizado.)
chrisaycock
10
@ Rick: Isso não é necessariamente verdade no mundo corporativo. Sem o .NET, muito menos empresas usariam o Windows para servidores.
Peter Alexander
2
@svick .Net foi um jogo bastante defensivo contra o Java. Se as empresas tivessem mudado para a plataforma da Sun, haveria menos necessidade de Windows na empresa.
Chrisaycock
2
@svick: Esse é o ponto. Desde que a Microsoft o mantenha em seu ecossistema, não importa se você o compra novo ou já o possui.
Richard
17

É altamente improvável que alguém ganhe dinheiro com linguagens de programação, pela simples razão de que a maioria dos projetos de linguagens de programação falha miseravelmente - a linguagem acaba sendo usada por seu designer (e às vezes nem por eles) e por mais ninguém. Para cada C # ou Java, existem milhares de idiomas que não foram a lugar nenhum.

No entanto, o design da linguagem é divertido, então as pessoas continuam se desconectando. E se você tiver sorte, poderá ganhar bastante dinheiro. Por exemplo, o livro de Stroustrup, a linguagem de programação C ++, vendeu 500 mil cópias na época em que a 3ª edição foi lançada, o que significa que eu acho que as vendas agora devem ultrapassar um milhão. Meu terceiro ed. me custou 27,95 libras esterlinas e, mesmo permitindo cortes nos editores e varejistas, você pode ver que ele deve ter feito uma boa alteração!

Neil Butterworth
fonte
É como ganhar dinheiro jogando terremoto ou world of warcraft profissionalmente. Existem algumas pessoas que fazem e milhões que não. Considerando o enorme investimento de tempo e perto de 0 chances não é realmente uma forma viável de ganhar dinheiro
Thomas Bonini
11

Certas linguagens proprietárias voltadas para domínios específicos acabam sendo grandes negócios de "estilo de vida", como MATLAB ( MathWorks ) e Mathematica ( Wolfram Research ). Pode-se também comercializar uma linguagem como middleware, como a Kx Systems fez com q / kdb + (eles a vendem como um banco de dados e não como uma linguagem).

Um modelo de negócios alternativo é fornecer hospedagem, como o Heroku faz para o Ruby on Rails . ( 37A Signals efetivamente cedeu esse negócio por não persegui-lo.)

E, como já foi dito, um idioma pode ser usado como líder de perdas para prender os desenvolvedores de aplicativos a uma plataforma específica, como o C # fez para o .NET.

Em relação a consultoria ou livros, esses são modelos de receita bastante limitados; a consultoria requer muita mão de obra para ser dimensionada, e os livros têm um ponto de saturação. Melhores modelos são licenças de hospedagem ou corporativas.

chrisaycock
fonte
3
Melhor resposta aqui IMHO. MATLAB e Mathematica são ótimos exemplos; eles certamente são o modelo que eu tentaria seguir se tivesse que "ganhar dinheiro com uma linguagem": escolher um nicho e desenvolver algo que seja claramente melhor (para os usuários-alvo, no momento da introdução) do que o existente, ferramentas de uso mais geral. Lembre-se de que o Matlab estava competindo com a FORTRAN & C quando apareceu pela primeira vez; O Numpy / Scipy pode ser muito mais "moderno", mas o Matlab tem uma enorme base de usuários, código e pura inércia agora.
timday 13/06
4

Então , digamos que você queira ganhar a vida escrevendo o próximo idioma popular. Suponha que "ganhar a vida" significa o equivalente a um salário razoável em um emprego de período integral (qualquer emprego - não necessariamente técnico). Se você realmente ama o que faz, provavelmente aceitará um pouco menos, por exemplo, US $ 12,50 por hora , ou US $ 2000 / mês .

Enquanto trabalha em um trabalho estável, você libera sua primeira versão e cria uma instalação para doações. Em seguida, você se envolve em desenvolvimento e marketing contínuos, em um grau proporcional ao número de usuários do seu idioma. Vamos estimar de forma conservadora que 1% de seus usuários doarão e cada um deles doará uma média de US $ 1 / ano .

Isso significa que, para obter seu salário de US $ 2.000 / mês , você precisa ter 2.000 usuários doadores para cada um dos 12 meses do ano. São 2,4 milhões de usuários no total. Vamos agora assumir que leva 10 anos para que um idioma se torne tão popular: portanto, você deve adquirir uma média de 240.000 usuários por ano ou 20.000 usuários por mês .

Se você trabalha o equivalente a tempo integral ( 160 horas / mês ), sua estratégia de promoção e qualidade de implementação devem ser suficientes para obter uma média de 125 usuários por hora . E isso é usuários repetidos, é claro: se 20% das pessoas que experimentam seu idioma se tornam usuários repetidos, você realmente precisa de uma taxa de conversão de 625 pessoas / hora .

Mesmo que todas as pessoas que você convença convença diretamente mais quatro pessoas a experimentar o seu idioma - e por uma questão de simplicidade, supondo que elas não tentem convencer os outros -, você ainda estará de volta ao 125. número de usuários / hora .

Agora, isso pode parecer totalmente irracional, mas acredite ou não, ainda pode funcionar: digamos que sua estratégia de marketing produz um crescimento aproximadamente linear ao longo dos 10 anos em que seu idioma está ganhando terreno e depois nos platôs. Isso significa que, no início, você estará convertendo uma média de 0 usuários / hora e, 10 anos depois, estará conquistando 250 usuários . (Novamente, a cada hora . Perspectiva, aqui.)

É um aumento médio de 25 usuários por hora por ano : no final de cada ano, você está convertendo mais 25 pessoas por hora - ou mais 4000 pessoas por mês - do que no início do ano.

Então, revisitemos a estimativa de 2,4 milhões de usuários : é possível ganhar tantos usuários em 10 anos ? Se aceitarmos as estatísticas (inerentemente defeituosas, mas utilizáveis) oferecidas pelo Langpop como precisas, obteremos as seguintes informações sobre os 7 principais idiomas atualmente em tendência na pesquisa do Yahoo. Se um resultado for aceito como representante de um usuário (eu sei, tenha paciência comigo), esses números indicarão o número médio aproximado arredondado de usuários ganhos por ano desde que o idioma apareceu pela primeira vez.

  1. C ++: 500k
  2. C: 400k
  3. Java: 700k
  4. PHP: 400k
  5. Perl: 150k
  6. C #: 300k
  7. Python: 150k

Isso coloca as coisas de volta no campo da possibilidade: se você criar uma linguagem tão popular quanto, por exemplo, Python, em 20 anos terá usuários suficientes para fazer com que seu desenvolvimento e suporte (e marketing!) trabalho a tempo.

Torne um tão popular quanto o C # e você pode fazê-lo em 10 . Legal!

... Exceto, é claro, que colocar dessa maneira banaliza a tarefa muito improvável e difícil que está tornando uma linguagem tão popular. Mas, ei, se você tem uma boa ideia e consegue chegar ao topo por conta própria, sem as contribuições de outros desenvolvedores que aceitariam uma parte do seu dinheiro da doação, então você é um gênio, e você merece.

Jon Purdy
fonte
3

Para elaborar o que o @Peter disse: é muito comum o software ser criado para suportar outra coisa. Praticamente tudo o que é distribuído gratuitamente é usado para promover outra coisa, seja publicidade, plataforma, dispositivo ou serviço.

No caso das linguagens de programação, trata-se de promover uma plataforma, atraindo desenvolvedores. Se você atrai desenvolvedores, obtém mais softwares escritos para sua plataforma, e isso torna a plataforma mais forte. A maneira como você atrai desenvolvedores é fornecendo a eles ferramentas impressionantes, e o idioma é uma dessas ferramentas. De fato, um dos cartões mais fortes da Microsoft em sua árdua batalha para recuperar seu lugar no mercado de smartphones são suas ferramentas de desenvolvedor. "É fácil recriar os aplicativos que você criou para iPhone e Android para Windows Phone 7", "é fácil criar aplicativos escritos para Windows Phone 7 prontos para outras telas", etc. etc.

Além disso, às vezes você está apenas criando uma linguagem de programação para seu próprio uso, porque precisa da ferramenta.

EpsilonVector
fonte
Eu acho que a Microsoft faz muito desde o licenciamento do Windows Phone OS para fabricantes ... faz?
vemv
@ Victor .... Eu suponho ..... Não tenho certeza do que você está recebendo aqui.
EpsilonVector
3

Você pode obter um pouco mais de lucro com o desenvolvimento de "pequenas" linguagens específicas do domínio. Não de vendê-los, no entanto. Existem algumas DSLs que vendem com lucro, mas muitos mais sucessos de código aberto e ainda mais falhas (abertas e fechadas).

Onde você pode lucrar é com os ganhos de produtividade que pode obter deles. Existe um tipo de paradigma de desenvolvimento baseado em torno dessa ideia.

As vantagens e desvantagens são semelhantes à programação baseada em modelo em C ++, mas mais ainda. Por exemplo, uma DSL requer mais trabalho inicial do que uma biblioteca normal, mas pode oferecer muito mais flexibilidade, robustez e "agilidade" depois de escrita. É improvável que você faça isso, a menos que o desempenho seja uma grande preocupação, caso contrário, é provavelmente mais fácil adiar o trabalho envolvido até o tempo de execução - por exemplo, use um mecanismo de verificação baseado em expressões regulares em tempo de execução em vez de um gerador de código de scanner.

"Agilidade" recebe citações assustadoras, porque o excesso de vontade de escrever uma DSL é uma violação clara dos princípios ágeis. Mesmo em um ambiente pesado de DSL, é extremamente improvável que você trabalhe no desenvolvimento de uma DSL como parte de sua rotina diária.

Um motivo para usar uma DSL pode ser codificar algumas regras de negócios (um tipo de especificação de sistema especializada) e gerar código que funcione com essas regras. Como a conversão das regras de negócios declarativas para o código resultante pode ser bastante sofisticada, grandes alterações no código gerado podem ser tratadas, fazendo alterações bastante diretas na especificação de regras de negócios. Por exemplo, o DSL pode gerar árvores de decisão ou rastrear dependências por meio de um dígrafo para garantir automaticamente que tudo que precisa ser reavaliado seja reavaliado e que não haja ciclos (planilha compilada).

Uma versão extrema disso pode ser o uso de uma linguagem lógica como o Prolog para alguma parte do seu sistema, embora isso seja apenas extremo em certo sentido - também é apenas a seleção de idiomas de cavalos para cursos em vez de um DSL do tipo construa seu próprio paradigma.

Steve314
fonte
2

Desenvolver uma linguagem de programação e padronizá-la não é realmente feito com uma única pessoa. Mesmo Stroustrup é o inventor do C ++, existem muitos outros especialistas industriais participando em todo o mundo. É mais como um serviço voluntário. Pessoas que são realmente talentosas para escrever livros como Scott Mayers, ganhando dinheiro com isso. Outras pessoas estão trabalhando como consultores independentes ou consultores para grandes organizações.

O melhor exemplo é a padronização C ++ 0x. Está atrasado há anos. O motivo é porque os membros do comitê estão ocupados com o trabalho principal e difíceis de fazer um quorum para finalizar as especificações.

Empresas como a Microsoft Sun (Oracle) desenvolveram suas próprias linguagens de programação e ganhar dinheiro com o IDE e também fornecendo suporte contínuo por meio de suas plataformas. É mais como uma solução fechada para os problemas. Mas as coisas boas que essas linguagens de programação são padronizadas / aprovadas pela ISO ou por comitês semelhantes. Java parece estar vendendo seu IP para empresas por usar sua linguagem de programação. Recentemente, a Oracle processou o Google por infrações de IP em Java.

Em uma única frase, é mais como serviço voluntário do que um negócio para quem trabalha com padrões abertos.

sarat
fonte
1

Se você conseguir (presumo que você quer dizer um indivíduo e não uma empresa) criar uma linguagem de programação bem-sucedida, certamente estará no campo da possibilidade de ganhar uma vida decente vendendo livros, falando em conferências para não mencionar consultoria ou ser adquirido ou contratado . Você pode até ganhar dinheiro licenciando sua linguagem de programação para diferentes empresas, o que tornará menos provável que seja bem-sucedido.

Por outro lado, existem maneiras muito mais fáceis de ganhar dinheiro e a maioria das pessoas (empresas como a Sun e a Microsoft excluídas) o faz mais pelo desafio e, possivelmente, por créditos nerds.

As chances de uma pequena empresa / indivíduo criar uma linguagem de programação convencional são extremamente pequenas, provavelmente é mais fácil tentar preencher algum tipo de nicho. Por outro lado, certamente não é impossível fazê-lo e aqueles que dizem que eu não posso fazer isso são frequentemente interrompidos por aqueles que o fazem :)

Homde
fonte