Kapan membayar kompiler C ++ [ditutup]

19

Baru-baru ini saya mulai bertanya-tanya kapan pengembang harus membayar untuk kompiler. Compiler tersedia secara gratis dengan sebagian besar platform atau ada versi gratis yang mudah didapat.

Contoh:

OS X - GCC dan Dentang / LLVM datang dengan alat pengembang. Tidak ada batasan di sini untuk bagaimana dan apa yang dapat Anda lakukan bersama mereka.

Linux - GCC dan saya yakin lebih. Saya tidak tahu keadaan kompiler linux saat ini. Tidak ada batasan di sini untuk bagaimana dan apa yang dapat Anda lakukan bersama mereka.

Windows - MinGW dan Microsoft memang menawarkan Visual Studio versi gratis. Tidak ada batasan dengan MinGW tapi saya pikir dengan Visual Studio gratis ada batasan yang parah.

Namun, sebagai contoh, Intel menghasilkan kompiler C / C ++. Mereka cukup mahal harganya. Secara pendidikan saya pikir orang bisa mendapatkan versi OS X seharga $ 49 dan Windows / Linux masing-masing seharga $ 129. Mereka kemudian menawarkan produk "Studio" yang lengkap juga. Jelas menggunakan harga pendidikan ada batasan yang dikenakan.

Tapi yang saya ingin tahu adalah kapan seseorang harus mempertimbangkan membayar kompiler. Salah satu contoh yang bisa saya pikirkan adalah video game. Jika Anda menggunakan kompiler yang berfungsi pada platform utama, tidak akan ada lagi alat switching untuk platform tersebut. Tampaknya akan ada tingkat kemudahan dalam beralih di antara platform jika alatnya sama.

Adakah yang bisa menjelaskan pembayaran kompiler seperti kompiler Intel dan manfaat lintas platform sejati yang mungkin didapat dari menggunakannya? Apakah kode seseorang menjadi kurang portabel bahkan berusaha sangat keras untuk tidak melakukan teknik spesifik platform?

Jason
sumber
29
Jangan bingung Visual Studio dengan kompiler Microsoft, kompiler tersedia secara gratis dan sama di edisi normal dan Express Visual Studio. Anda bahkan bisa mendapatkannya tanpa Visual Studio, melalui Windows SDK .
yannis
6
@Rig Yah, sebagian dari Microsoft harus disalahkan atas hal ini, mereka tidak pernah melakukan upaya nyata untuk mengiklankan fakta bahwa kompiler C ++ mereka tersedia secara bebas. Fakta bahwa Anda tidak dapat mengunduhnya sendiri (tanpa Windows SDK atau Visual Studio Express) cukup untuk membingungkan orang tentang ketersediaannya.
yannis
5
@Rig Persis. Mereka memiliki pasukan evangelis di lapangan mengiklankan Visual Studio Express (IDE) dan Windows SDK (kumpulan berbagai alat), dan tidak disebutkan sama sekali kompiler C ++ mereka (bahkan tidak terdaftar di situs web Windows SDK) atau cara untuk mengunduh hanya kompiler dan tidak ada yang lain.
yannis
3
@YannisRizos: Jika saya tidak salah, kompiler C ++ tidak lagi menjadi bagian dari Windows SDK - msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx Apakah mereka?
Coder
1
@ JeffO - SDK . Unduh gratis, dan termasuk alat C ++. Mungkin ada versi yang lebih baru, tetapi itulah yang saya temukan pertama kali.
Bobson

Jawaban:

25

Dalam pengalaman saya, kemampuan platform lintas host adalah pertimbangan kecil untuk memilih kompiler. Padahal, justru sebaliknya. Orang-orang jauh lebih sering memilih kompiler untuk itu dukungan unggul untuk satu platform target spesifik.

Ambil contoh kompiler Intel. Orang biasanya membelinya ketika mereka ingin menambah setiap ons kinerja terakhir dari chip Intel terbaru yang berdarah. Lagi pula, sulit untuk merancang kompiler lebih baik daripada orang-orang yang bisa berjalan di aula dan berbicara dengan orang-orang yang merancang chip.

Itulah alasan yang sama mengapa orang membeli alat dari Microsoft untuk dikembangkan di platform Microsoft. Itulah yang mendapat dukungan pertama dan terutama.

Karl Bielefeldt
sumber
1
Ack. Itu sebabnya bidang High Performance Computing adalah pasar yang penting untuk kompiler komersial. Karena kemampuan kinerja dan tuning sangat penting ketika menghitung waktu ditetapkan (dan kadang-kadang ditagih) per jam.
mschuett
Untuk memperluas ini, dalam beberapa situasi tidak ada kompiler gratis yang tersedia. Misalnya, untuk pengembangan kernel Windows (Win8 +) satu-satunya pilihan adalah menggunakan MSVC dengan kompiler WDK terintegrasi.
SomeWittyUsername
19

Setelah bekerja pada kompiler berbayar, saya percaya alasan utama untuk membayar kompiler adalah untuk kontrak dukungan. Jika pelanggan memiliki masalah dengan kode mereka dan mencurigai bug penyusun, mereka dapat meminta vendor penyusun untuk menyelidiki solusi yang mungkin (pada sepeser pun vendor, bukan milik mereka), mungkin dengan tenggat waktu untuk respons / solusi. Ini dapat dilakukan tanpa harus merilis kode sumber untuk proyek-proyek yang mungkin berisi informasi sensitif, dan biasanya kontrak mengikat vendor ke kerahasiaan tentang kode sumber apa pun yang dibagikan. Umumnya, perusahaan besar bersedia membayar untuk tingkat dukungan ini, sementara toko kecil tidak menganggapnya sepadan dengan uang atau terlalu mahal.

Selain itu, vendor ingin menyenangkan pelanggan (yang membayar tinggi), sehingga permintaan fitur diprioritaskan oleh pelanggan yang menginginkannya. Mungkin juga bagi pelanggan untuk menyarankan fitur yang lebih disesuaikan dengan kebutuhan mereka, hal-hal yang lebih spesifik perusahaan yang tidak akan banyak digunakan. Ini tidak mungkin bagi pengguna GCC atau kompilator openource lainnya di mana fitur dapat diimplementasikan oleh mereka yang bersedia melakukannya dalam urutan apa pun yang mereka rasakan sesuai jadwal mereka sendiri.

Chumby Gumball
sumber
7
"Ini tidak mungkin bagi pengguna GCC atau kompiler open source lainnya di mana fitur dapat diimplementasikan oleh mereka yang bersedia melakukannya dalam urutan apa pun yang mereka rasakan sesuai jadwal mereka sendiri." Tetapi di sisi lain, jika pelanggan sangat menginginkan fitur tersebut, mereka bebas untuk menugaskan pengembang untuk mengimplementasikannya sendiri dan kemudian mungkin atau mungkin tidak membaginya dengan orang lain. (Ingat bahwa GPL adalah tentang distribusi , bukan penggunaan .) Dengan perangkat lunak berpemilik, mereka harus meyakinkan vendor untuk mengimplementasikan fitur tersebut, serta mengetahui dan menjelaskan secara cukup detail untuk benar-benar mendapatkan apa yang mereka inginkan.
CVn
1
Jika perusahaan memiliki pengembang dengan pengalaman dan keakraban dengan kompiler dan basis kode spesifik maka ya, tapi itu adalah biaya tambahan, mungkin lebih dari membeli kompiler. Selain itu, Anda akan terkejut dengan betapa permintaan fitur yang samar dapat terjadi. Jika pelanggan membayar, tidak perlu meyakinkan perusahaan untuk melakukan sesuatu, terutama ketika Anda membayar banyak uang. Saya tidak akan berdebat di kedua sisi, hanya mengatakan bahwa beberapa menemukan tingkat dukungan ini bernilai uang.
Chewy Gumball
1
Saya setuju bahwa kompiler sama sekali bukan perangkat lunak yang sepele. Menambahkan fitur ke dalamnya tentu saja merupakan tugas yang tidak sepele, terutama bagi seseorang yang tidak terbiasa dengan basis kode. Tetapi untuk mengatakan bahwa "tidak mungkin" menerapkan fitur dalam kompiler open-source, tetapi dimungkinkan pada yang eksklusif adalah argumen yang cacat. Jika perusahaan tidak memiliki keahlian yang diperlukan di dalam perusahaan, mereka dapat menyewa konsultan untuk melakukannya untuk mereka. Dengan perangkat lunak berpemilik, jika vendor mengatakan tidak (terlepas dari alasan mengapa), maka Anda untuk semua maksud dan tujuan tidak beruntung.
CVn
Semua yang mengatakan, saya tidak memilih ini karena saya pikir itu menjawab pertanyaan dengan baik.
CVn
1
Saya tidak berpikir Anda pernah benar-benar berurusan dengan dukungan perangkat lunak "komersial". Ini adalah pengalaman yang sangat berbeda dari yang Anda gambarkan.
James Anderson
1

Terkadang bukan kompiler yang dibayar orang, itu adalah runtime yang berfungsi dengannya. Intel khususnya memiliki tradisi menyediakan perpustakaan yang sangat baik untuk hal-hal seperti multithreading, dukungan media (SSE, dll) dan matematika dengan ketepatan yang diperluas.

TMN
sumber
Anda benar, Polyverse menjual distro Linux yang dilindungi dengan menggerakkan pertahanan target. Dengan pembelian salah satu distro mereka, Anda secara bersamaan membeli kompiler mereka yang menerapkan pertahanan target bergerak ke semua file biner OS.
T. Salim
0

Saya telah bekerja dengan beberapa orang yang menggunakan kompiler berbayar.

Mereka melakukan data-crunching serius dalam sebuah cluster. Seharusnya, kompiler Intel berhasil menghasilkan kode sedikit lebih cepat untuk mereka, dan membayar untuk kompiler lebih murah daripada menjalankan lebih banyak node. Pemahaman saya adalah bahwa perbedaannya sangat kecil, tetapi dikalikan dengan biaya listrik yang diperhitungkan di dalamnya dianggap sepadan.

Untuk efek itu, saya tidak akan terkejut jika sebagian besar komputer super HPC berjalan pada kompiler khusus yang disediakan oleh produsen chip.

MrFox
sumber
-4

Saya dengan Karl Bielefeldt dalam hal ini.

Saya sebenarnya tidak akan mempercayai kompiler yang menawarkan kemampuan lintas platform. Karena, jujur ​​saja kita semua tahu alat / kompiler asli dan bertarget selalu memiliki kelebihan seperti mengetahui platform target lebih baik.

Dan saya percaya, ketika perangkat lunak Anda menjadi kompleks dan kinerja diperlukan, Anda dapat mulai berpikir untuk beralih ke kompiler berbayar.

Dan selain itu, saya percaya kompiler Microsoft sangat bagus. Dan seperti semua orang katakan, mereka gratis selamanya.

Semih Masat
sumber
2
Jadi, Anda tidak mempercayai GCC? Bagaimana dengan kompiler Android dan iOS?
-17

Kompiler gratis GNU (gcc) hadir dengan lisensi GNU (GPL) yang berarti Anda dapat menggunakan hanya untuk proyek sumber terbuka. Didukung oleh nama-nama besar dalam perangkat lunak.

Dentang (gratis) adalah upaya untuk menghindari batasan GPL membuat kompiler yang baik. Juga, didukung oleh Apple, Google, dan banyak lainnya.

VC ++ Express (gratis) terbatas pada platform Windows (omong-omong, mereka membuatnya gratis di saat terakhir, karena banyak orang dari komunitas Open Source bertanya kepada mereka tentang hal itu) dan tidak memiliki sebagian besar alat profesional dan fitur. Seperti profiler, misalnya.

Jadi, semua alat ini gratis untuk kita, tetapi didukung oleh industri.

Intel (komersial), seperti yang disebutkan Karl, untuk proyek yang menargetkan kinerja paling banyak pada platform Intel.

SChepurin
sumber
17
Banyak informasi yang salah di sini. VC ++ Express gratis, meskipun saya ragu karena komunitas Open Source (siapa?) Memintanya, tetapi itu tidak ada hubungannya dengan kompiler C ++, seperti yang disebutkan oleh @YannisRizos dalam komentar di atas. Kedua, walaupun GCC itu sendiri adalah GPL, ia dapat digunakan untuk mengkompilasi kode non-GPL. Lihat di sini stackoverflow.com/questions/9772616/...
Avner Shahar-Kashtan
Luar biasa, banyak orang (termasuk saya) meminta VC ++ 2012 untuk Desktop gratis. Tidak ingin berbicara tentang GPL.
SChepurin
5
Ya, saya yakin banyak orang meminta mereka untuk membuatnya gratis. Itu tidak berarti Anda adalah pemicunya. Itu adalah keputusan bisnis. Bahkan, saya cukup yakin reaksi terhadap harga asli paket VSExpress ($ 25, saya pikir) berasal dari penggemar dan pengembang komersial yang menginginkan sesuatu untuk digunakan di rumah, tidak perlu OS devs, dan tentu saja bukan sebagai komunitas.
Avner Shahar-Kashtan