C ++コンパイラの支払い時期[終了]


19

最近、私は開発者がいつコンパイラーにお金を払うべきか疑問に思い始めました。コンパイラは、ほとんどのプラットフォームで無料で提供されていますが、簡単に入手できる無料版もあります。

例:

OS X-GCCおよびClang / LLVMには開発者ツールが付属しています。ここで、どのようにして何を実現できるかについての制限はありません。

Linux-GCCと私はもっと確信しています。Linuxコンパイラの現在の状態を知りません。ここで、どのようにして何を実現できるかについての制限はありません。

Windows-MinGWとMicrosoftは無料版のVisual Studioを提供しています。MinGWには制限はありませんが、無料のVisual Studioには重大な制限があると思います。

ただし、例として、IntelはC / C ++コンパイラを製造しています。彼らは価格が高いです。教育的には、OS Xバージョンは49ドルで、Windows / Linuxはそれぞれ129ドルで入手できると思います。その後、完全な「スタジオ」製品も提供します。明らかに教育価格を使用すると、制限が課せられます。

しかし、私が不思議に思っているのは、いつコンパイラーへの支払いを本当に検討すべきかということです。私が考えることができる1つの例は、ビデオゲームです。主要なプラットフォームで動作するコンパイラを使用している場合、プラットフォーム用の切り替えツールはもうありません。ツールが同じであれば、プラットフォーム間での切り替えが容易になると思われます。

Intelコンパイラーなどのコンパイラーと、それらを使用することで得られる真のクロスプラットフォームのメリットにお金を払うことについて、誰かが光を当てることができますか?プラットフォーム固有の手法を使用しないように非常に一生懸命に努力しても、コードの移植性は低下しますか?


29
Visual StudioとMicrosoftのコンパイラを混同しないでください。コンパイラは無料で入手でき、Visual Studioの通常版とExpress版の両方で同じです。Windows SDKを使用して、Visual Studioを使用せずに入手することもできます
ヤニス

6
@Rigまあ、Microsoftはこれを部分的に非難しています。彼らはC ++コンパイラが無料で利用できるという事実を宣伝するために実際の努力をしたことはありません。(SDKまたはVisual Studio Expressの肥大化なしで)単独でダウンロードできないという事実だけでも、その可用性について人々を混乱させるのに十分です。
ヤニス

5
@Rigまさに。Visual Studio Express(IDE)とWindows SDK(さまざまなツールのコレクション)を宣伝する福音派の軍隊があり、C ++コンパイラー(Windows SDK Webサイトにもリストされていません)や方法については一切言及していませんコンパイラだけをダウンロードし、他には何もしません。
ヤニス

3
@YannisRizos:私は間違っていない場合は、C ++コンパイラは、もはやのWindows SDKの一部である- msdn.microsoft.com/en-us/windows/desktop/hh852363.aspxは、彼らはありますか?
コーダー

1
@JeffO- SDK。無料でダウンロードでき、C ++ツールが含まれています。新しいバージョンがあるかもしれませんが、それが最初に見つけたものです。
ボブソン

回答:


25

私の経験では、クロスホストプラットフォームの能力は、コンパイラを選択する際の小さな考慮事項です。実際、まったく逆です。特定の1つのターゲットプラットフォームに対する優れたサポートのために、人々はより頻繁にコンパイラを選択します。

たとえば、Intelコンパイラを取り上げます。人々は通常、最新の最先端のIntelチップから最後の1オンスごとのパフォーマンスを引き出したいときに購入します。結局のところ、ホールを歩いてチップを設計した人と話をすることができる人よりも、コンパイラを設計するのは難しいです。

これは、人々がマイクロソフトのプラットフォームで開発するためにマイクロソフトからツールを購入するのと同じ理由です。それが何よりもまずサポートを持っている人です。


1
了解。それが、高性能コンピューティングの分野が商用コンパイラにとって重要な市場である理由です。なぜなら、計算時間を1時間ごとに割り当てる(場合によっては請求する)場合、パフォーマンスとチューニング機能は非常に重要だからです。
-mschuett

これを拡張するために、状況によっては、利用可能な無料のコンパイラがない場合があります。たとえば、Windowsカーネル開発(Win8 +)の場合、唯一のオプションは、統合されたWDKコンパイラでMSVCを使用することです。
SomeWittyUsername 14年

19

有料のコンパイラーに取り組んだことがあるので、コンパイラーに支払う主な理由はサポート契約のためだと思います。顧客がコードに問題があり、コンパイラのバグを疑っている場合、コンパイラベンダーに可能なソリューション(ベンダーのダイムではなく、ベンダーのダイムで)を調査するように依頼できます。おそらく応答/ソリューションの期限があります。これは、機密情報を含む可能性のあるプロジェクトのソースコードを公開することなく行うことができ、通常、契約はベンダーを共有ソースコードに関する秘密に結び付けます。一般に、大規模な企業はこのレベルのサポートに対して喜んで支払いますが、小規模なショップはそれをお金の価値があるとか、単に高すぎると見なしません。

さらに、ベンダーは(高額の)顧客を喜ばせたいので、機能の要求は顧客が望む顧客によって優先されます。また、顧客がニーズに合わせた機能を提案することもできます。これは、企業固有のもので、広く使用されないものです。これは、GCCまたは他のオープンソースコンパイラのユーザーが、自分のスケジュールで感じる順序で機能を実装することを望んでいる人によって機能が実装される場合には不可能です。


7
「GCCやその他のオープンソースコンパイラのユーザーは、自分のスケジュールで感じる順序で機能を実装することを望んでいる人によって機能が実装されるため、これは不可能です。」しかし一方で、顧客がこの機能を十分に望んでいない場合、開発者に自分で実装するように自由に割り当てて、他の人と共有する場合もしない場合もあります。(GPLは配布に関するものであり、使用するものではないことを忘れないでください。)プロプライエタリなソフトウェアでは、ベンダーにその機能を実装するよう説得するとともに、必要なものを実際に入手するために十分な詳細を知って記述しなければなりません。
CVn

1
会社にコンパイラーと特定のコードベースの経験と知識を持つ開発者がいる場合はそうですが、それはおそらくコンパイラーを購入する以上の追加費用です。また、あいまいな機能要求がどのように発生するかも驚かれることでしょう。顧客が支払いをしている場合、特に多額のお金を払っている場合、何かをすることについて会社を説得するのにそれほど時間はかかりません。どちらの側も議論しませんが、このレベルのサポートはお金に見合っていると言う人もいます。
歯ごたえガムボール

1
コンパイラは決して些細なソフトウェアではないことに同意します。それに機能を追加することは、特にコードベースに精通していない人にとって、確かに重要な作業です。しかし、オープンソースのコンパイラに機能を実装することは「不可能」であると言っても、プロプライエタリなコンパイラでは可能だとすれば、せいぜい欠陥のある議論です。会社が必要な専門知識を社内に持っていない場合、彼らはコンサルタントを雇って彼らのためにそれをすることができます。プロプライエタリなソフトウェアでは、ベンダーが(理由に関係なく)ノーと言った場合、あなたはすべての意図と目的のために運がありません。
CVn

とはいえ、この質問によく答えられると思うので、これに賛成しました。
CVn

1
「商用」ソフトウェアのサポートを実際に扱ったことはないと思います。それはあなたが説明するものとは全く異なる経験です。
ジェームズアンダーソン14年

1

時にはそれはコンパイラーの人々が支払うものではなく、それで動作するランタイムです。特にインテルには、マルチスレッド、メディアサポート(SSEなど)、拡張精度数学などの優れたライブラリを提供する伝統があります。


ポリバースは、ターゲットの防御を移動することで保護されたLinuxディストリビューションを販売しています。ディストリビューションの1つを購入すると、OSのすべてのバイナリファイルに移動ターゲット防御を適用するコンパイラーを同時に購入できます。
T.サリム

0

私は、有料のコンパイラーを使用した人々と仕事をしました。

彼らはクラスターで深刻なデータ処理を行っていました。おそらく、Intelコンパイラーはそれらのためにわずかに高速なコードを生成することに成功し、コンパイラーへの支払いはより多くのノードを実行するよりも安価でした。私の理解では、その差は非常に小さいものでしたが、それを考慮に入れた電気料金を掛けると、価値があるとみなされました。

そのため、ほとんどのHPCスーパーコンピューターが、チップメーカーが提供する専用のコンパイラーで実行されていても驚かないでしょう。


-4

これについてはカールビーレフェルトと一緒です。

私は実際に、クロスプラットフォーム機能を提供するコンパイラを信頼しません。正直に言うと、ネイティブプラットフォームとターゲットツール/コンパイラには、ターゲットプラットフォームをよりよく理解するなどの利点があることは誰もが知っているからです。

そして、あなたのソフトウェアが複雑になり、パフォーマンスが必要になったら、有料のコンパイラーに切り替えることを考え始めることができると信じています。

それに加えて、Microsoftのコンパイラは非常に優れていると思います。そして、他のみんなが言ったように、彼らは永遠に無料です。


2
あなたはGCCを信頼していませんか?AndroidおよびiOSコンパイラーはどうですか?

-17

GNUフリーコンパイラ(gcc)にはGNUライセンス(GPL)が付属しています。つまり、オープンソースプロジェクトでのみ使用できます。ソフトウェアのビッグネームでサポートされています。

Clang(無料)は、優れたコンパイラーを作成するGPLの制限を回避する試みです。また、Apple、Google、および他の多くによってサポートされています。

VC ++ Express(無料)はWindowsプラットフォームに制限され(ちなみに、オープンソースコミュニティの多くの人から質問されたため、最後の瞬間に無料になりました)、ほとんどのプロフェッショナルツールの機能が欠けています。プロファイラーなど。

したがって、これらのツールはすべて無料ですが、業界によってサポートされています。

Karlが述べたように、Intelプラットフォームで最もパフォーマンスが高いプロジェクト向けのIntel(商用)。


17
ここで多くの誤報。VC ++ Expressは無料ですが、オープンソースコミュニティ(誰?)がそれを求めたためだとは思いませんが、@ YannisRizosが上記のコメントで言及しているように、それはC ++コンパイラとは何の関係もありません。第二に、GCC自体はGPLですが、非GPLコードのコンパイルに使用できます。ここを参照してくださいstackoverflow.com/questions/9772616/...
Avnerシャハル-Kashtan

信じられないほど、多くの人々(私はとりわけ)が、VC ++ 2012 for Desktopを無料にすることを求めました。GPLについて話したくない。
SChepurin

5
はい、私は多くの人々が彼らにそれを無料にするように頼んだと確信しています。それはあなたがそれの引き金になったわけではありません。それはビジネス上の決定でした。実際、VSExpressパッケージの元の価格(25ドル、私は思う)に対する反発は、必要なOS開発者ではなく、確かにコミュニティとしてではなく、自宅で何かを使用したい趣味家や商用開発者からのものであると確信しています。
アヴナーシャハルカシュタン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.