Quando pagare i compilatori C ++ [chiuso]

17

Recentemente ho iniziato a chiedermi quando gli sviluppatori dovrebbero pagare per i compilatori. I compilatori vengono gratis con la maggior parte delle piattaforme o è disponibile una versione gratuita facilmente ottenibile.

Esempio:

OS X - GCC e Clang / LLVM sono dotati degli strumenti di sviluppo. Nessuna limitazione qui per come e cosa puoi ottenere con loro.

Linux - GCC e sono sicuro di più. Non conosco lo stato attuale dei compilatori linux. Nessuna limitazione qui per come e cosa puoi ottenere con loro.

Windows - MinGW e Microsoft offrono una versione gratuita di Visual Studio. Nessuna limitazione con MinGW, ma penso che con il Visual Studio gratuito ci siano dei limiti severi.

Tuttavia, ad esempio, Intel produce compilatori C / C ++. Sono di prezzo elevato. Educativamente penso che si possa ottenere la versione OS X a $ 49 e Windows / Linux a $ 129 ciascuno. Offrono anche un prodotto "Studio" completo. Ovviamente usando i prezzi educativi ci sono dei limiti imposti.

Ma quello che mi chiedo è quando si dovrebbe davvero considerare di pagare per i compilatori. Un esempio che posso pensare è un videogioco. Se si utilizza un compilatore che funziona sulle principali piattaforme, non ci sarebbero più strumenti di commutazione per la piattaforma. Sembra che ci sarebbe un livello di facilità nel passaggio da una piattaforma all'altra se gli strumenti fossero gli stessi.

Qualcuno può far luce sul pagamento di compilatori come i compilatori Intel e i veri benefici multipiattaforma che si potrebbero ottenere dall'usarli? Il tuo codice diventa meno portabile, anche se stai tentando molto duramente di non fare tecniche specifiche per piattaforma?

    
posta Jason 11.03.2013 - 02:25
fonte

6 risposte

24

Nella mia esperienza, l'abilità di piattaforma cross host è una considerazione minore per la scelta di un compilatore. In realtà, piuttosto il contrario. Le persone scelgono molto più spesso un compilatore per il suo supporto superiore per una specifica piattaforma di destinazione.

Prendi il compilatore Intel per esempio. Di solito le persone lo comprano quando vogliono ricavare un'ultima goccia di prestazioni dall'ultimo chip Intel all'avanguardia. Dopotutto, è difficile progettare un compilatore meglio dei ragazzi che possono camminare lungo il corridoio e parlare con i ragazzi che hanno progettato i chip.

È lo stesso motivo per cui le persone acquistano strumenti da Microsoft per sviluppare su piattaforme Microsoft. Questo è chi ha il supporto in primo luogo.

    
risposta data 11.03.2013 - 03:17
fonte
18

Avendo lavorato a un compilatore for-pay, credo che il motivo principale per pagare un compilatore sia il contratto di supporto. Se il cliente ha un problema con il proprio codice e sospetta un bug del compilatore, può chiedere al fornitore del compilatore di indagare su possibili soluzioni (sulla denda del venditore, non sul loro), possibilmente con una scadenza per una risposta / soluzione. Questo può essere fatto senza dover rilasciare pubblicamente il codice sorgente per i progetti che potrebbero contenere informazioni riservate, e in genere il contratto vincola il fornitore alla segretezza su qualsiasi codice sorgente condiviso. Generalmente, le grandi aziende sono disposte a pagare per questo livello di supporto, mentre i negozi più piccoli non la considerano come la pena o semplicemente troppo costosa.

Inoltre, i venditori vogliono soddisfare i clienti (molto pagati), quindi le richieste di funzionalità sono considerate prioritarie dalle quali i clienti le desiderano. È anche possibile che i clienti suggeriscano funzionalità più personalizzate per le loro esigenze, cose più specifiche dell'azienda che non sarebbero ampiamente utilizzate. Questo non è possibile per gli utenti di GCC o altri compilatori di open source in cui le funzionalità vengono implementate da coloro che sono disposti a farlo in qualsiasi ordine si sentano secondo il proprio programma.

    
risposta data 11.03.2013 - 03:17
fonte
0

Ho lavorato con alcune persone che hanno utilizzato un compilatore a pagamento.

Stavano facendo seri scricchiolii di dati in un cluster. Presumibilmente, il compilatore Intel è riuscito a produrre codice leggermente più veloce per loro, e il pagamento per il compilatore è stato più economico rispetto all'utilizzo di più nodi. La mia comprensione è che la differenza era molto piccola, ma si è moltiplicata per i costi dell'elettricità che sono stati calcolati. È stata valutata la pena.

In tal senso, non sarei sorpreso se la maggior parte dei super-computer HPC funzionasse su compilatori specializzati forniti dai produttori di chip.

    
risposta data 11.03.2013 - 19:58
fonte
0

A volte non è il compilatore a pagare, è il runtime che funziona con esso. Intel in particolare ha una tradizione di fornire librerie eccellenti per cose come multithreading, supporto multimediale (SSE ecc.) E matematica a precisione estesa.

    
risposta data 12.03.2014 - 15:35
fonte
-4

Sono con Karl Bielefeldt su questo.

In realtà non mi fido dei compilatori che offrono funzionalità multipiattaforma. Perché, per essere onesti, sappiamo tutti che gli strumenti / compilatori nativi e mirati hanno sempre vantaggi come conoscere meglio la piattaforma di destinazione.

E credo che, quando il software diventa complesso e le prestazioni siano necessarie, puoi iniziare a pensare di passare a compilatori a pagamento.

E oltre a ciò, credo che i compilatori di Microsoft siano dannatamente bravi. E come tutti gli altri hanno detto, sono liberi per sempre.

    
risposta data 11.03.2013 - 10:40
fonte
-17

Il compilatore GNU gratuito (gcc) viene fornito con licenza GNU (GPL) che significa che puoi usare solo per progetti Open source. Supportato da grandi nomi nel software.

Clang (gratuito) è un tentativo di evitare le limitazioni GPL creando un buon compilatore. Inoltre, è supportato da Apple, Google e molti altri.

VC ++ Express (gratuito) è limitato alla piattaforma Windows (a proposito, l'hanno reso gratuito nell'ultimo momento, perché molte persone della comunità Open Source gli hanno chiesto di farlo) e manca di gran parte degli strumenti professionali. Ad esempio, profilatore.

Quindi, tutti questi strumenti sono gratuiti per noi, ma sono supportati dal settore.

Intel (commerciale), come menzionato da Karl, per progetti che mirano alla maggior parte delle prestazioni su piattaforme Intel.

    
risposta data 11.03.2013 - 07:26
fonte

Leggi altre domande sui tag