Quando pagar pelos compiladores C ++ [fechado]

19

Recentemente, comecei a me perguntar quando os desenvolvedores deveriam pagar pelos compiladores. Compiladores vêm de graça na maioria das plataformas ou existe uma versão gratuita facilmente obtida.

Exemplo:

OS X - GCC e Clang / LLVM vêm com as ferramentas do desenvolvedor. Não há limitações aqui para saber como e o que você pode fazer com eles.

Linux - GCC e tenho certeza mais. Eu não sei o estado atual dos compiladores linux. Não há limitações aqui para saber como e o que você pode fazer com eles.

Windows - MinGW e Microsoft oferecem uma versão gratuita do Visual Studio. Sem limitações no MinGW, mas acho que com o Visual Studio gratuito, existem sérias limitações.

No entanto, como exemplo, a Intel produz compiladores C / C ++. Eles são pesados ​​no preço. Educacionalmente, acho que é possível obter a versão do OS X por US $ 49 e do Windows / Linux por US $ 129 cada. Eles também oferecem um produto "Studio" completo. Obviamente, usando os preços educacionais, há limitações impostas.

Mas o que eu quero saber é quando alguém realmente deve considerar pagar por compiladores. Um exemplo em que posso pensar é em um videogame. Se você estiver usando um compilador que funcione nas principais plataformas, não haverá mais ferramentas de comutação para a plataforma. Parece que haveria um nível de facilidade na alternância entre plataformas se as ferramentas fossem as mesmas.

Alguém pode lançar alguma luz sobre o pagamento de compiladores como os da Intel e os verdadeiros benefícios que podem ser obtidos através da plataforma? O código de alguém se torna menos portátil, mesmo se esforçando muito para não usar técnicas específicas da plataforma?

Jason
fonte
29
Não confunda o Visual Studio com os compiladores da Microsoft, os compiladores estão disponíveis gratuitamente e são os mesmos nas edições normal e Express do Visual Studio. Você pode até obtê-los sem o Visual Studio, via Windows SDK .
yannis
6
@ Rig Bem, a Microsoft é parcialmente culpada por isso, eles nunca fizeram um esforço real para anunciar o fato de que seu compilador C ++ está disponível gratuitamente. Apenas o fato de você não poder fazer o download por conta própria (sem o inchado SDK do Windows ou o Visual Studio Express) é suficiente para confundir as pessoas sobre sua disponibilidade.
yannis
5
@Rig Exatamente. Eles têm um exército evangélico no local anunciando o Visual Studio Express (um IDE) e o Windows SDK (uma coleção de várias ferramentas), e nenhuma menção em todo o compilador C ++ (nem sequer está listado no site do Windows SDK) ou de uma maneira para baixar apenas o compilador e nada mais.
precisa
3
@YannisRizos: Se não me engano, os compiladores C ++ não fazem mais parte do SDK do Windows - msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx Eles são?
Coder
1
@JeffO - SDK . Download gratuito e inclui as ferramentas C ++. Pode haver uma versão mais recente, mas foi o que encontrei primeiro.
Bobson

Respostas:

25

Na minha experiência, a capacidade de plataforma cruzada é uma consideração menor para a escolha de um compilador. De fato, muito pelo contrário. As pessoas escolhem muito mais frequentemente um compilador por seu suporte superior a uma plataforma de destino específica.

Veja o compilador Intel, por exemplo. As pessoas costumam comprá-lo quando querem obter todo o desempenho do último chip da Intel. Afinal, é difícil projetar um compilador melhor do que os caras que podem andar pelo corredor e conversar com os caras que projetaram os chips.

É a mesma razão pela qual as pessoas compram ferramentas da Microsoft para desenvolver nas plataformas Microsoft. É quem tem o apoio em primeiro lugar.

Karl Bielefeldt
fonte
1
Ack. É por isso que o campo da computação de alto desempenho é um mercado importante para compiladores comerciais. Como os recursos de desempenho e ajuste são realmente importantes quando o tempo de computação é atribuído (e às vezes cobrado) por hora.
31513 mschuett
Para estender isso, em algumas situações, simplesmente não há compilador gratuito disponível. Por exemplo, para o desenvolvimento do kernel do Windows (Win8 +), a única opção é usar o MSVC com o compilador WDK integrado.
usuário deve ter no mínimo
19

Tendo trabalhado em um compilador pago, acredito que o principal motivo para pagar por um compilador é o contrato de suporte. Se o cliente tiver um problema com seu código e suspeitar de um bug do compilador, poderá solicitar ao fornecedor que investigue possíveis soluções (na moeda do fornecedor, não na sua), possivelmente com um prazo para uma resposta / solução. Isso pode ser feito sem a necessidade de liberar publicamente o código-fonte para projetos que podem conter informações confidenciais e, geralmente, o contrato vincula o fornecedor ao sigilo sobre qualquer código-fonte compartilhado. Geralmente, empresas maiores estão dispostas a pagar por esse nível de suporte, enquanto lojas menores não o consideram valioso ou apenas muito caro.

Além disso, os fornecedores desejam agradar aos clientes (com altos salários), portanto, as solicitações de recursos são priorizadas pelas quais os clientes os desejam. Também é possível que os clientes sugiram recursos mais adaptados às suas necessidades, coisas mais específicas da empresa que não seriam amplamente utilizadas. Isso não é possível para usuários do GCC ou de outros compiladores de código-fonte aberto, onde os recursos são implementados por quem estiver disposto a fazê-lo na ordem que desejar em sua própria agenda.

Chewy Gumball
fonte
7
"Isso não é possível para usuários do GCC ou de outros compiladores de código-fonte aberto, onde os recursos são implementados por quem estiver disposto a fazê-lo na ordem que desejar em sua própria programação". Mas, por outro lado, se o cliente deseja o recurso o suficiente, ele é livre para designar desenvolvedores para implementá-lo por conta própria e, em seguida, pode ou não compartilhá-lo com outras pessoas. (Lembre-se de que a GPL é sobre distribuição , não uso .) Com o software proprietário, eles devem convencer o fornecedor a implementar o referido recurso, além de conhecer e descrever em detalhes suficientes para realmente obter o que desejam.
um CVn
1
Se a empresa tiver desenvolvedores com a experiência e familiaridade com os compiladores e a base de código específica, então sim, mas isso é uma despesa adicional, provavelmente mais do que comprar o compilador. Além disso, você ficaria surpreso com o quão vagas as solicitações de recursos podem ser. Se um cliente está pagando, não é preciso muito para convencer uma empresa a fazer algo, especialmente quando você paga muito dinheiro. Não vou discutir nenhum dos lados, apenas digo que alguns acham que esse nível de apoio vale o dinheiro.
Chewy Gumball
1
Concordo que um compilador de maneira alguma é um software trivial. Adicionar um recurso a ele certamente é uma tarefa não trivial, especialmente para alguém não familiarizado com a base de código. Mas dizer que "não é possível" ter recursos implementados em um compilador de código aberto, mas é possível em um proprietário é, na melhor das hipóteses, um argumento defeituoso. Se a empresa não possui os conhecimentos necessários internamente, eles podem contratar um consultor para fazer isso por eles. Com o software proprietário, se o fornecedor recusar (independentemente do motivo), você terá azar para todos os efeitos.
um CVn
Tudo o que foi dito, eu votei positivo porque acho que responde bem à pergunta.
a CVn 11/03/2013
1
Eu não acho que você realmente tenha lidado com suporte de software "comercial". É uma experiência completamente diferente do que você descreve.
James Anderson
1

Às vezes, não é o compilador pelo qual as pessoas pagam, é o tempo de execução que funciona com ele. A Intel, em particular, tem a tradição de fornecer excelentes bibliotecas para coisas como multithreading, suporte de mídia (SSE etc) e matemática de precisão estendida.

TMN
fonte
Você está certo, a Polyverse vende distribuições Linux protegidas movendo a defesa do alvo. Com a compra de uma de suas distros, você compra simultaneamente o compilador que aplica a defesa do alvo em movimento a todos os arquivos binários do sistema operacional.
T. Salim
0

Eu trabalhei com algumas pessoas que usavam um compilador pago.

Eles estavam processando seriamente os dados em um cluster. Supostamente, o compilador Intel conseguiu produzir código um pouco mais rápido para eles, e pagar pelo compilador era mais barato do que executar mais nós. Meu entendimento é de que a diferença era muito pequena, mas multiplicada pelos custos de eletricidade considerados, foi considerada valiosa.

Para esse efeito, não ficaria surpreso se a maioria dos supercomputadores HPC fosse executada em compiladores especializados fornecidos pelos fabricantes de chips.

MrFox
fonte
-4

Estou com Karl Bielefeldt nisso.

Na verdade, não vou confiar em compiladores que oferecem recursos de plataforma cruzada. Porque, para ser sincero, todos sabemos que ferramentas / compiladores nativos e direcionados sempre têm vantagens como conhecer melhor a plataforma de destino.

E acredito que, quando seu software se torna complexo e o desempenho é necessário, você pode começar a pensar em mudar para compiladores pagos.

Além disso, acredito que os compiladores da Microsoft são muito bons. E, como todo mundo disse, eles são livres para sempre.

Semih Masat
fonte
2
Então você não confia no GCC? E os compiladores Android e iOS?
-17

O compilador livre GNU (gcc) vem com licença GNU (GPL), o que significa que você pode usar apenas para projetos de código aberto. Suportado por grandes nomes em software.

Clang (grátis) é uma tentativa de evitar limitações da GPL, criando um bom compilador. Além disso, é suportado pela Apple, Google e muitos outros.

O VC ++ Express (gratuito) é limitado à plataforma Windows (a propósito, eles o tornaram gratuito no último momento, porque muitas pessoas da comunidade Open Source os perguntaram sobre isso) e não possui a maioria das ferramentas e recursos profissionais. Como o profiler, por exemplo.

Portanto, todas essas ferramentas são gratuitas para nós, mas são suportadas pelo setor.

Intel (comercial), como Karl mencionou, para projetos que visam maior desempenho nas plataformas Intel.

SChepurin
fonte
17
Muita desinformação aqui. O VC ++ Express é gratuito, embora eu duvide que seja porque a comunidade Open Source (quem?) Pediu, mas isso não tem nada a ver com o compilador C ++, como @YannisRizos menciona nos comentários acima. Em segundo lugar, embora o próprio GCC seja o GPL, ele pode ser usado para compilar código não GPL. Veja aqui stackoverflow.com/questions/9772616/…
Avner Shahar-Kashtan 15/11/2013
Inacreditável, muitas pessoas (entre outras) pediram para tornar o VC ++ 2012 for Desktop gratuito. Não quero falar sobre a GPL.
SChepurin
5
Sim, tenho certeza que muitas pessoas pediram para torná-lo gratuito. Isso não significa que você foi o gatilho para isso. Foi uma decisão de negócios. Na verdade, tenho certeza de que a reação contra o preço original dos pacotes VSExpress (US $ 25, eu acho) foi de entusiastas e desenvolvedores comerciais que queriam algo para usar em casa, desenvolvedores de sistemas operacionais não necessários e certamente não como comunidade.
Avner Shahar-Kashtan 11/11