เมื่อใดที่ต้องจ่ายสำหรับคอมไพเลอร์ C ++ [ปิด]


19

เมื่อเร็ว ๆ นี้ฉันเริ่มสงสัยว่านักพัฒนาควรจะจ่ายค่าคอมไพเลอร์ คอมไพเลอร์มาฟรีกับแพลตฟอร์มส่วนใหญ่หรือมีรุ่นฟรีที่หาได้ง่าย

ตัวอย่าง:

OS X - GCC และ Clang / LLVM มาพร้อมกับเครื่องมือสำหรับนักพัฒนา ไม่มีข้อ จำกัด ที่นี่สำหรับวิธีและสิ่งที่คุณสามารถเปิดกับพวกเขา

Linux - GCC และฉันก็มั่นใจมากกว่านี้ ฉันไม่รู้สถานะของคอมไพเลอร์ลินุกซ์ในปัจจุบัน ไม่มีข้อ จำกัด ที่นี่สำหรับวิธีและสิ่งที่คุณสามารถเปิดกับพวกเขา

Windows - MinGW และ Microsoft เสนอ Visual Studio รุ่นฟรี ไม่มีข้อ จำกัด กับ MinGW แต่ฉันคิดว่า Visual Studio ฟรีมีข้อ จำกัด ที่รุนแรง

อย่างไรก็ตามตัวอย่างเช่น Intel ผลิตคอมไพเลอร์ C / C ++ พวกเขามีราคาสูงมาก ฉันคิดว่าการศึกษาจะได้รับรุ่น OS X ราคา $ 49 และ Windows / Linux ราคา $ 129 จากนั้นพวกเขาเสนอผลิตภัณฑ์ "สตูดิโอ" ที่สมบูรณ์เช่นกัน เห็นได้ชัดว่าการใช้การกำหนดราคาการศึกษามีข้อ จำกัด

แต่สิ่งที่ฉันสงสัยคือเมื่อเราควรพิจารณาจ่ายคอมไพเลอร์จริงๆ ตัวอย่างหนึ่งที่ฉันนึกได้ก็คือวิดีโอเกม หากคุณกำลังใช้คอมไพเลอร์ที่ทำงานบนแพลตฟอร์มหลักจะไม่มีเครื่องมือสลับสำหรับแพลตฟอร์มอีกต่อไป ดูเหมือนว่าจะมีระดับความสะดวกในการสลับระหว่างแพลตฟอร์มหากเครื่องมือเหมือนกัน

มีใครบ้างไหมที่รู้ว่าการจ่ายค่าคอมไพเลอร์เช่นคอมไพเลอร์ของ Intel และผลประโยชน์ข้ามแพลตฟอร์มที่คน ๆ หนึ่งอาจได้รับจากการใช้มัน? โค้ดของตัวเองพกพาได้น้อยลงแม้จะพยายามอย่างหนักที่จะไม่ทำเทคนิคเฉพาะแพลตฟอร์ม


29
อย่าสับสนกับ Visual Studio ด้วยคอมไพเลอร์ของ Microsoft คอมไพเลอร์นั้นฟรีและเหมือนกันทั้งใน Visual Express รุ่นปกติและ Express คุณยังสามารถรับได้โดยไม่ต้อง Visual Studio ผ่านSDK ของ Windows
yannis

6
@Rig ดี Microsoft มีบางส่วนที่จะตำหนิสำหรับสิ่งนี้พวกเขาไม่เคยใช้ความพยายามจริงในการโฆษณาข้อเท็จจริงที่ว่าคอมไพเลอร์ C ++ ของพวกเขาสามารถใช้ได้อย่างอิสระ ข้อเท็จจริงที่ว่าคุณไม่สามารถดาวน์โหลดด้วยตัวเอง (โดยไม่ต้องมี Windows SDK หรือ Visual Studio Express) ที่มีขนาดใหญ่พอที่จะทำให้ผู้คนสับสนเกี่ยวกับความพร้อมใช้งานของมัน
yannis

5
@Rig แน่นอน พวกเขามีกองทัพผู้ประกาศข่าวประเสริฐบนพื้นโฆษณา Visual Studio Express (IDE) และ Windows SDK (ชุดเครื่องมือต่าง ๆ ) และไม่มีการกล่าวถึงคอมไพเลอร์ C ++ ทั้งหมดของพวกเขา (มันไม่ได้ระบุไว้ในเว็บไซต์ Windows SDK) หรือวิธีการ เพื่อดาวน์โหลดเพียงคอมไพเลอร์และไม่มีอะไรอื่น
yannis

3
@YannisRizos: ถ้าฉันไม่ผิด, C ++ คอมไพเลอร์จะไม่เป็นส่วนหนึ่งของ SDK ของ Windows - การmsdn.microsoft.com/en-us/windows/desktop/hh852363.aspxพวกเขา?
Coder

1
@JeffO - SDK ดาวน์โหลดฟรีและรวมถึงเครื่องมือ C ++ อาจมีรุ่นที่ใหม่กว่า แต่นั่นคือสิ่งที่ฉันพบก่อน
Bobson

คำตอบ:


25

จากประสบการณ์ของฉันความสามารถข้ามแพลตฟอร์มเป็นข้อพิจารณาเล็กน้อยในการเลือกคอมไพเลอร์ ในความเป็นจริงค่อนข้างตรงข้าม ผู้คนเลือกคอมไพเลอร์บ่อยครั้งกว่าเพราะมันสนับสนุนที่ยอดเยี่ยมสำหรับแพลตฟอร์มเป้าหมายเดียว

ใช้คอมไพเลอร์ของ Intel เป็นตัวอย่าง ผู้คนมักจะซื้อเมื่อพวกเขาต้องการประสิทธิภาพทุก ๆ ออนซ์จากชิป Intel ล่าสุด ท้ายที่สุดมันก็ยากที่จะออกแบบคอมไพเลอร์ให้ดีกว่าผู้ชายที่สามารถเดินไปตามโถงและคุยกับคนที่ออกแบบชิป

เป็นเหตุผลเดียวกันที่ผู้คนซื้อเครื่องมือจาก Microsoft เพื่อพัฒนาบนแพลตฟอร์มของ Microsoft นั่นคือผู้ที่ได้รับการสนับสนุนก่อนอื่น


1
Ack นั่นเป็นเหตุผลที่สนามคอมพิวเตอร์สมรรถนะสูงเป็นตลาดที่สำคัญสำหรับคอมไพเลอร์เชิงพาณิชย์ เนื่องจากประสิทธิภาพและความสามารถในการปรับแต่งมีความสำคัญจริง ๆ เมื่อกำหนดเวลาคำนวณ (และบางครั้งเรียกเก็บเงิน) ตามชั่วโมง
mschuett

เพื่อขยายในเรื่องนี้ในบางสถานการณ์ไม่มีเพียงคอมไพเลอร์ฟรี ตัวอย่างเช่นสำหรับการพัฒนาเคอร์เนล Windows (Win8 +) ตัวเลือกเดียวคือการใช้ MSVC กับคอมไพเลอร์ WDK ในตัว
SomeWittyUsername

19

การทำงานกับคอมไพเลอร์แบบจ่ายเงินฉันเชื่อว่าเหตุผลหลักที่ต้องจ่ายค่าคอมไพเลอร์คือสัญญาการสนับสนุน หากลูกค้ามีปัญหากับรหัสของพวกเขาและสงสัยว่ามีข้อผิดพลาดของคอมไพเลอร์พวกเขาสามารถขอให้ผู้ขายคอมไพเลอร์ตรวจสอบแนวทางแก้ไขที่เป็นไปได้ (บนค่าเล็กน้อยของผู้ขาย สิ่งนี้สามารถทำได้โดยไม่ต้องเปิดเผยซอร์สโค้ดสำหรับโครงการที่อาจมีข้อมูลที่ละเอียดอ่อนและโดยทั่วไปสัญญาจะผูกมัดผู้ขายไว้เป็นความลับเกี่ยวกับซอร์สโค้ดใด ๆ ที่ใช้ร่วมกัน โดยทั่วไปแล้ว บริษัท ขนาดใหญ่ยินดีที่จะจ่ายเงินสำหรับการสนับสนุนระดับนี้ในขณะที่ร้านค้าขนาดเล็กไม่คิดว่าคุ้มค่าเงินหรือแพงเกินไป

นอกจากนี้ผู้ขายต้องการเอาใจลูกค้า (จ่ายสูง) ดังนั้นคำขอคุณลักษณะจะจัดลำดับความสำคัญโดยที่ลูกค้าต้องการ นอกจากนี้ยังเป็นไปได้สำหรับลูกค้าที่จะแนะนำคุณสมบัติที่เหมาะกับความต้องการของพวกเขาสิ่งที่เฉพาะเจาะจงมากขึ้นของ บริษัท ซึ่งจะไม่ใช้กันอย่างแพร่หลาย สิ่งนี้เป็นไปไม่ได้สำหรับผู้ใช้ GCC หรือผู้รวบรวมโอเพ่นซอร์สอื่น ๆ ที่ผู้ใช้ยินดีที่จะทำตามความต้องการตามลำดับเวลา


7
"สิ่งนี้เป็นไปไม่ได้สำหรับผู้ใช้ GCC หรือผู้รวบรวมโอเพ่นซอร์สอื่น ๆ ที่ผู้ใช้ยินดีที่จะดำเนินการตามความต้องการตามลำดับเวลา" แต่ในทางกลับกันหากลูกค้าต้องการคุณลักษณะที่ไม่ดีพอพวกเขามีอิสระที่จะมอบหมายให้นักพัฒนาพัฒนาใช้งานด้วยตนเองและจากนั้นอาจจะหรือไม่อาจแชร์กับผู้อื่น (โปรดจำไว้ว่า GPL นั้นเกี่ยวกับการแจกจ่ายไม่ใช่ใช้ ) กับซอฟต์แวร์ที่เป็นกรรมสิทธิ์พวกเขาจะต้องโน้มน้าวให้ผู้ขายใช้คุณลักษณะดังกล่าวรวมถึงรู้และอธิบายในรายละเอียดที่เพียงพอเพื่อให้ได้สิ่งที่ต้องการ
CVn

1
หาก บริษัท มีนักพัฒนาที่มีประสบการณ์และความคุ้นเคยกับคอมไพเลอร์และฐานรหัสที่เฉพาะเจาะจงแล้วใช่ แต่นั่นเป็นค่าใช้จ่ายเพิ่มเติมอาจมากกว่าการซื้อคอมไพเลอร์ นอกจากนี้คุณจะประหลาดใจกับการที่คำขอคุณลักษณะที่คลุมเครือสามารถทำได้ หากลูกค้าชำระเงินมันไม่ได้ใช้เวลามากนักในการโน้มน้าวใจ บริษัท เกี่ยวกับการทำบางสิ่งบางอย่างโดยเฉพาะอย่างยิ่งเมื่อคุณจ่ายเงินเป็นจำนวนมาก ฉันจะไม่โต้เถียงทั้งสองข้างเพียงแค่บอกว่าบางคนพบว่าระดับการสนับสนุนนี้คุ้มค่าเงิน
Chewy Gumball

1
ฉันยอมรับว่าคอมไพเลอร์ไม่ได้เป็นซอฟต์แวร์ชิ้นเล็ก ๆ การเพิ่มคุณสมบัติเข้าไปเป็นงานที่ไม่สำคัญโดยเฉพาะอย่างยิ่งสำหรับคนที่ไม่คุ้นเคยกับรหัสฐาน แต่ถ้าจะบอกว่ามันเป็น "ไม่เป็นไปได้" ที่จะมีคุณสมบัติที่ใช้งานในคอมไพเลอร์โอเพนซอร์ส แต่มันก็เป็นไปได้ในสิ่งที่เป็นกรรมสิทธิ์นั้นเป็นข้อโต้แย้งที่มีข้อบกพร่องที่สุด หาก บริษัท ไม่มีความเชี่ยวชาญที่จำเป็นภายใน บริษัท พวกเขาสามารถจ้างที่ปรึกษาเพื่อดำเนินการให้พวกเขาได้ ด้วยซอฟต์แวร์ที่เป็นกรรมสิทธิ์หากผู้ขายบอกว่าไม่มี (ไม่ว่าจะด้วยเหตุผลใดก็ตาม) นั่นแสดงว่าคุณมีเจตนาและมีจุดประสงค์เพื่อความโชคดี
CVn

จากทั้งหมดที่กล่าวมาฉันลงคะแนนเพราะฉันคิดว่ามันตอบคำถามได้ดี
CVn

1
ฉันไม่คิดว่าคุณจะได้รับการสนับสนุนซอฟต์แวร์เชิงพาณิชย์ มันเป็นประสบการณ์ที่แตกต่างอย่างสิ้นเชิงจากสิ่งที่คุณอธิบาย
James Anderson

1

บางครั้งไม่ใช่คนคอมไพเลอร์ที่จ่ายเงิน แต่เป็น runtime ที่ใช้งานได้ โดยเฉพาะอย่างยิ่ง Intel มีธรรมเนียมในการให้บริการห้องสมุดที่ยอดเยี่ยมสำหรับสิ่งต่าง ๆ เช่นมัลติเธรดการสนับสนุนสื่อ (SSE เป็นต้น) และคณิตศาสตร์ที่มีความแม่นยำสูง


คุณพูดถูก Polyverse ขาย Linux distros ที่ได้รับการป้องกันโดยการเคลื่อนย้ายการป้องกันเป้าหมาย ด้วยการซื้อหนึ่งใน distros ของพวกเขาคุณจะซื้อคอมไพเลอร์ของพวกเขาที่ใช้การป้องกันเป้าหมายเคลื่อนที่กับไฟล์ไบนารีทั้งหมดของระบบปฏิบัติการ
ต. ซาลิม

0

ฉันทำงานกับบางคนที่ใช้คอมไพเลอร์แบบเสียค่าใช้จ่าย

พวกเขากำลังทำการบีบอัดข้อมูลอย่างจริงจังในคลัสเตอร์ สมมุติว่าคอมไพเลอร์ของ Intel สามารถสร้างรหัสได้เร็วขึ้นเล็กน้อยสำหรับพวกเขาและการจ่ายเงินให้คอมไพเลอร์นั้นถูกกว่าการใช้งานโหนดมากขึ้น ความเข้าใจของฉันคือความแตกต่างมีขนาดเล็กมาก แต่คูณด้วยค่าไฟฟ้าที่รวมอยู่ในนั้นถือว่าคุ้มค่า

ฉันจะไม่แปลกใจถ้าซุปเปอร์คอมพิวเตอร์ HPC ส่วนใหญ่ทำงานบนคอมไพเลอร์พิเศษที่จัดทำโดยผู้ผลิตชิป


-4

ฉันอยู่กับ Karl Bielefeldt ในเรื่องนี้

ฉันจะไม่เชื่อใจผู้คอมไพล์เลอร์ที่เสนอความสามารถข้ามแพลตฟอร์ม เพราะตามจริงแล้วเราทุกคนรู้ดีว่าเครื่องมือและคอมไพเลอร์แบบดั้งเดิมนั้นมีข้อดีอยู่เสมอเช่นการรู้จักแพลตฟอร์มเป้าหมายดีกว่า

และฉันเชื่อว่าเมื่อซอฟต์แวร์ของคุณซับซ้อนและต้องการประสิทธิภาพคุณสามารถเริ่มคิดถึงการเปลี่ยนไปใช้คอมไพเลอร์แบบเสียค่าใช้จ่าย

และนอกจากนั้นฉันเชื่อว่าคอมไพเลอร์ของ Microsoft นั้นดีมาก และอย่างที่คนอื่นพูดพวกเขามีอิสระตลอดกาล


2
ดังนั้นคุณไม่เชื่อ GCC คอมไพเลอร์ Android และ iOS เป็นอย่างไร

-17

คอมไพเลอร์ GNU ฟรี (gcc) มาพร้อมกับสัญญาอนุญาต GNU (GPL) หมายความว่าคุณสามารถใช้สำหรับโครงการโอเพนซอร์สเท่านั้น สนับสนุนโดยชื่อใหญ่ในซอฟต์แวร์

เสียงดังกราว (ฟรี) เป็นความพยายามที่จะหลีกเลี่ยงข้อ จำกัด GPL ในการสร้างคอมไพเลอร์ที่ดี นอกจากนี้ยังรองรับโดย Apple, Google และอื่น ๆ อีกมากมาย

VC ++ Express (ฟรี) จำกัด เฉพาะแพลตฟอร์ม Windows (โดยวิธีการที่พวกเขาทำให้มันว่างในช่วงเวลาสุดท้ายเพราะคนจำนวนมากจากชุมชนโอเพ่นซอร์สถามพวกเขาเกี่ยวกับมัน) และขาดเครื่องมือระดับมืออาชีพส่วนใหญ่คุณลักษณะ เช่น profiler เป็นต้น

ดังนั้นเครื่องมือเหล่านี้ฟรีสำหรับเรา แต่ได้รับการสนับสนุนจากอุตสาหกรรม

Intel (พาณิชย์) ดังที่ Karl กล่าวไว้สำหรับโครงการที่กำหนดเป้าหมายประสิทธิภาพสูงสุดบนแพลตฟอร์มของ Intel


17
ข้อมูลที่ผิดมากมายที่นี่ VC ++ Express นั้นฟรี แต่ฉันสงสัยว่าเป็นเพราะชุมชนโอเพ่นซอร์ส (ใคร?) ถามถึงมัน แต่มันไม่มีส่วนเกี่ยวข้องกับคอมไพเลอร์ C ++ ดังที่ @YannisRizos กล่าวถึงในความคิดเห็นข้างต้น ประการที่สองในขณะที่ GCC เองก็คือ GPL แต่ก็สามารถใช้เพื่อรวบรวมรหัสที่ไม่ใช่ GPL ดูที่นี่stackoverflow.com/questions/9772616/…
Avner Shahar-Kashtan

ไม่น่าเชื่อหลายคน (ฉันเป็นคนอื่น) ขอให้ทำ VC ++ 2012 สำหรับเดสก์ท็อปฟรี ไม่ต้องการพูดเกี่ยวกับ GPL
SChepurin

5
ใช่ฉันมั่นใจว่าหลายคนขอให้พวกเขาปล่อยให้เป็นอิสระ ไม่ได้หมายความว่าคุณเป็นต้นเหตุให้กับมัน มันเป็นการตัดสินใจทางธุรกิจ ในความเป็นจริงฉันค่อนข้างแน่ใจว่า backlash เทียบกับราคาดั้งเดิมของแพ็คเกจ VSExpress ($ 25 ฉันคิดว่า) มาจากมือสมัครเล่นและนักพัฒนาเชิงพาณิชย์ที่ต้องการบางสิ่งบางอย่างที่จะใช้ที่บ้านไม่ใช่ devs ระบบปฏิบัติการที่จำเป็นและไม่ใช่ชุมชนอย่างแน่นอน
Avner Shahar-Kashtan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.