Коли платити за компілятори 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 доларів кожна. Потім вони також пропонують повний продукт "Студії". Очевидно, що за допомогою ціноутворення на освіту існують обмежені обмеження.

Але мені цікаво, коли варто насправді розглянути можливість оплати компіляторів. Один із прикладів, про які я можу придумати, - це відеоігри. Якщо ви використовуєте компілятор, який працює на основних платформах, більше не буде інструментів комутації платформи. Здається, був би рівень легкості перемикання між платформами, якби інструменти були однаковими.

Чи може хтось пролити трохи грошей на оплату таких компіляторів, як компілятори Intel та справжні кросплатформові переваги, які можна отримати від їх використання? Чи стає чийсь код менш портативним, навіть намагаючись не робити певних методів платформи?


29
Не плутайте Visual Studio з компіляторами Microsoft, компілятори доступні безкоштовно і однакові як у звичайних, так і в експрес-версіях Visual Studio. Ви навіть можете отримати їх без Visual Studio, через Windows SDK .
янніс

6
@Rig Що ж, Microsoft частково винен у цьому, вони ніколи не докладали жодних зусиль, щоб рекламувати той факт, що їх компілятор C ++ є у вільному доступі. Тільки той факт, що ви не можете завантажити його самостійно (без роздутого Windows SDK або Visual Studio Express), достатньо, щоб заплутати людей щодо його доступності.
янніс

5
@ Ровно. У них є євангельська армія на місцях для реклами Visual Studio Express (IDE) та Windows SDK (колекція різноманітних інструментів), і зовсім не згадується про їх компілятор C ++ (він навіть не вказаний на веб-сайті Windows SDK) або спосіб завантажити тільки компілятор і більше нічого.
янніс

3
@YannisRizos: Якщо я не помиляюся, компілятори C ++ більше не є частиною пакета SDK для Windows - msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx Це вони?
Кодер

1
@JeffO - SDK . Безкоштовне завантаження та включає інструменти C ++. Можливо, буде і новіша версія, але саме це я знайшов першим.
Бобсон

Відповіді:


25

На мій досвід, можливість перехресної хост-платформи є незначною увагою при виборі компілятора. Насправді зовсім навпаки. Люди набагато частіше обирають компілятор, оскільки це найкраща підтримка однієї конкретної цільової платформи.

Візьмемо для прикладу компілятор Intel. Люди, як правило, купують його, коли хочуть отримати кожну останню унцію продуктивності з останнього кровотоку Intel чіпа. Зрештою, складно сконструювати компілятор краще, ніж хлопці, які можуть ходити по залі та спілкуватися з хлопцями, які розробили чіпи.

Це та сама причина, через яку люди купують інструменти від Microsoft для розробки на платформах Microsoft. Ось у кого передусім є підтримка.


1
Ак. Ось чому сфера високоефективних обчислень є важливим ринком для комерційних компіляторів. Оскільки продуктивність та настроювання можливостей дуже важливі, коли час обчислення призначається (а іноді й рахується) за годину.
mschuett

Щоб продовжити це, в деяких ситуаціях безкоштовний компілятор просто не доступний. Наприклад, для розробки ядра Windows (Win8 +) єдиним варіантом є використання MSVC з інтегрованим компілятором WDK.
SomeWittyUsername

19

Працюючи над компілятором з оплати праці, я вважаю, що головна причина оплати компілятора - це контракт на підтримку. Якщо у замовника є проблеми зі своїм кодом і підозрює помилку компілятора, він може попросити постачальника компілятора дослідити можливі рішення (на диме, а не їх постачальника), можливо, із строком відповіді / рішення. Це можна зробити без публічного випуску вихідного коду для проектів, які можуть містити конфіденційну інформацію, і зазвичай контракт пов'язує постачальника в таємниці щодо будь-якого спільного вихідного коду. Як правило, більші компанії готові платити за цей рівень підтримки, тоді як менші магазини не вважають це вартістю грошей або просто занадто дорогим.

Крім того, продавці хочуть догодити (високооплачуваним) клієнтам, тому запити щодо функцій надають пріоритет, яким вони бажають клієнтів. Також клієнти можуть запропонувати функції, більш пристосовані до їх потреб, речі, більш специфічні для компанії, які не використовуються широко. Це неможливо для користувачів GCC чи інших компіляторів відкритих джерел, де функції реалізуються тими, хто бажає робити це в тому порядку, який вони відчувають за власним графіком.


7
"Це неможливо для користувачів GCC чи інших компіляторів відкритих джерел, де функції реалізуються тими, хто бажає робити це в тому порядку, який вони відчувають за власним графіком." Але з іншого боку, якщо замовник хоче, щоб ця функція була досить погано, вона може призначити розробників, щоб самостійно її реалізувати, а потім можуть або не можуть поділитися нею з іншими. (Пам’ятайте, що GPL стосується дистрибуції , а не використання .) Завдяки власному програмному забезпеченню вони повинні переконати продавця в реалізації зазначеної функції, а також знати та описувати досить детально, щоб фактично отримати те, що вони хочуть.
CVn

1
Якщо компанія має розробників з досвідом та знайомством з компіляторами та конкретною базою коду, то так, але це додаткові витрати, ймовірно, більше, ніж придбання компілятора. Крім того, ви будете здивовані тим, наскільки неясними можуть бути запити на функції. Якщо клієнт платить, не потрібно багато переконувати компанію в тому, щоб щось робити, особливо коли ви платите багато грошей. Я не буду сперечатися з будь-якою стороною, просто скажу, що деякі вважають такий рівень підтримки вартим грошей.
Chewy Gumball

1
Я погоджуюсь, що компілятор аж ніяк не є тривіальною частиною програмного забезпечення. Додавання функції до неї, безумовно, нетривіальне завдання, особливо для тих, хто не знайомий з кодовою базою. Але сказати, що "неможливо" мати функції, реалізовані в компіляторі з відкритим кодом, але можливо, що в патентованому - це в кращому випадку хибний аргумент. Якщо компанія не володіє необхідними експертними знаннями, вони можуть найняти консультанта, щоб зробити це за них. Що стосується власного програмного забезпечення, якщо постачальник скаже «ні» (незалежно від причини, чому), то вам у всіх намірах і цілях не пощастить.
CVn

Все, що було сказано, я це схвалив, тому що я думаю, що це добре відповідає на питання.
CVn

1
Я не думаю, що ви ніколи насправді не мали справу з комерційною підтримкою програмного забезпечення. Це абсолютно інший досвід від того, що ви описуєте.
Джеймс Андерсон

1

Іноді люди не платять за компілятор, це працює з ним. Зокрема, Intel має традиції надавати відмінні бібліотеки для таких речей, як багатопотокове читання, підтримка засобів масової інформації (SSE тощо) та математика з розширеною точністю.


Ви маєте рацію, Polyverse продає дистрибутиви Linux, захищені рухомою захистом. Купуючи один з їхніх дистрибутивів, ви одночасно купуєте їх компілятор, який застосовує рухомий захист цілі до всіх бінарних файлів ОС.
Т. Салим

0

Я працював з деякими людьми, які користувалися платним компілятором.

Вони робили серйозний аналіз даних у кластері. Імовірно, компілятору Intel вдалося створити для них трохи швидший код, а оплата за компілятор була дешевшою, ніж запуск більшої кількості вузлів. Я розумію, що різниця була дуже невеликою, але множина з витратами на електроенергію, врахованими в ній, вважалася вартим.

З цього приводу я не здивуюся, якщо більшість суперкомп'ютерів HPC працюють на спеціалізованих компіляторах, що надаються виробниками чіпів.


-4

Я з цим Карлом Білефельдтом.

Я не буду довіряти компіляторам, які пропонують міжплатформові можливості. Тому що, чесно кажучи, ми всі знаємо, що рідні та націлені інструменти / компілятори завжди мають такі переваги, як краще знати цільову платформу.

І я вважаю, що коли ваше програмне забезпечення стає складним і потрібна продуктивність, ви можете почати думати про перехід на платні компілятори.

І на додачу до цього, я вважаю, що компілятори Microsoft досить чортово хороші. І як всі інші казали, вони вільні назавжди.


2
Отже, ви не довіряєте GCC? А як щодо компіляторів Android та iOS?

-17

Безкоштовний компілятор GNU (gcc) постачається з ліцензією GNU (GPL), тобто ви можете використовувати лише для проектів з відкритим кодом. Підтримується великими іменами в програмному забезпеченні.

Clang (безкоштовно) - це спроба уникнути обмежень GPL, створивши хороший компілятор. Також підтримується Apple, Google та багатьма іншими.

VC ++ Express (безкоштовно) обмежений платформою Windows (до речі, вони зробили його безкоштовним в останній момент, оскільки багато людей із спільноти з відкритим кодом запитали їх про це) і не має більшості професійних інструментів. Наприклад, як профілер, наприклад.

Отже, всі ці інструменти для нас безкоштовні, але підтримуються галуззю.

Як згадував Карл, Intel (комерційний) для проектів, націлених на найбільшу продуктивність на платформах Intel.


17
Тут багато дезінформації. VC ++ Express безкоштовний, хоча я сумніваюсь, що це спільнота з відкритим кодом (хто?) Попросила його, але це не має нічого спільного з компілятором C ++, як згадує @YannisRizos у коментарях вище. По-друге, хоча сам GCC є GPL, його можна використовувати для компіляції коду, який не є GPL. Дивіться тут stackoverflow.com/questions/9772616/…
Авнер Шахар-Каштан

Неймовірно, що багато людей (я серед інших) попросили зробити VC ++ 2012 для робочого столу безкоштовним. Не хочу говорити про GPL.
SChepurin

5
Так, я впевнений, що багато людей попросили їх зробити це безкоштовно. Це не означає, що ви були для цього рушієм. Це було бізнес-рішення. Насправді я впевнений, що реакція на первісну ціну пакетів VSExpress (25 доларів США, я думаю) була від любителів та комерційних розробників, які хотіли щось використовувати вдома, не потрібні розробники ОС, і, звичайно, не як спільнота.
Авнер Шахар-Каштан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.