Khi nào phải trả tiền cho trình biên dịch C ++ [đã đóng]


19

Gần đây tôi đã bắt đầu tự hỏi khi nào các nhà phát triển nên trả tiền cho trình biên dịch. Trình biên dịch đến miễn phí với hầu hết các nền tảng hoặc có phiên bản miễn phí có thể dễ dàng lấy được.

Thí dụ:

OS X - GCC và Clang / LLVM đi kèm với các công cụ dành cho nhà phát triển. Không có giới hạn ở đây về cách thức và những gì bạn có thể bật ra với chúng.

Linux - GCC và tôi chắc chắn nhiều hơn nữa. Tôi không biết trạng thái hiện tại của trình biên dịch linux. Không có giới hạn ở đây về cách thức và những gì bạn có thể bật ra với chúng.

Windows - MinGW và Microsoft cung cấp phiên bản Visual Studio miễn phí. Không có giới hạn với MinGW nhưng tôi nghĩ với Visual Studio miễn phí có những hạn chế nghiêm trọng.

Tuy nhiên, như một ví dụ, Intel sản xuất trình biên dịch C / C ++. Họ là giá quá đắt. Về mặt giáo dục, tôi nghĩ rằng người ta có thể có phiên bản OS X với giá 49 đô la và Windows / Linux với giá 129 đô la mỗi chiếc. Sau đó, họ cũng cung cấp một sản phẩm "Studio" hoàn chỉnh. Rõ ràng sử dụng giá giáo dục có những hạn chế áp đặt.

Nhưng điều tôi băn khoăn là khi nào nên thực sự cân nhắc việc trả tiền cho trình biên dịch. Một ví dụ tôi có thể nghĩ đến là một trò chơi video. Nếu bạn đang sử dụng trình biên dịch hoạt động trên các nền tảng chính thì sẽ không có thêm công cụ chuyển đổi nào cho nền tảng. Có vẻ như sẽ có một mức độ dễ dàng trong việc chuyển đổi giữa các nền tảng nếu các công cụ giống nhau.

Bất cứ ai cũng có thể làm sáng tỏ việc trả tiền cho các trình biên dịch như trình biên dịch Intel và lợi ích đa nền tảng thực sự mà người ta có thể nhận được từ việc sử dụng chúng? Có phải mã của một người trở nên ít di động hơn thậm chí rất cố gắng để không làm các kỹ thuật cụ thể của nền tảng?


29
Đừng nhầm lẫn Visual Studio với trình biên dịch của Microsoft, trình biên dịch có sẵn miễn phí và giống nhau trong cả phiên bản bình thường và phiên bản Express của Visual Studio. Bạn thậm chí có thể lấy chúng mà không cần Visual Studio, thông qua SDK Windows .
yannis

6
@Rig Vâng, Microsoft là một phần để đổ lỗi cho điều này, họ không bao giờ nỗ lực thực sự để quảng cáo thực tế là trình biên dịch C ++ của họ có sẵn miễn phí. Thực tế là bạn không thể tự tải xuống (không có SDK Windows hoặc Visual Studio Express cồng kềnh) là đủ để khiến mọi người nhầm lẫn về tính khả dụng của nó.
yannis

5
@Rig Chính xác. Họ có một đội quân truyền giáo trên mặt đất quảng cáo Visual Studio Express (IDE) và Windows SDK (một bộ công cụ khác nhau) và không đề cập đến tất cả trình biên dịch C ++ của họ (thậm chí không được liệt kê trong trang web Windows SDK) hoặc một cách để tải về chỉ là trình biên dịch và không có gì khác.
yannis

3
@YannisRizos: Nếu tôi không nhầm, trình biên dịch C ++ không còn là một phần của SDK Windows - msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx Có phải vậy không?
Coder

1
@JeffO - SDK . Tải xuống miễn phí và bao gồm các công cụ C ++. Có thể có một phiên bản mới hơn, nhưng đó là những gì tôi tìm thấy đầu tiên.
Bobson

Câu trả lời:


25

Theo kinh nghiệm của tôi, khả năng nền tảng máy chủ chéo là một cân nhắc nhỏ cho việc chọn trình biên dịch. Trong thực tế, hoàn toàn ngược lại. Mọi người thường xuyên hơn chọn một trình biên dịch để hỗ trợ vượt trội cho một nền tảng đích cụ thể.

Lấy trình biên dịch Intel làm ví dụ. Mọi người thường mua nó khi họ muốn đạt được hiệu suất cao nhất từ ​​chip Intel mới nhất. Rốt cuộc, thật khó để thiết kế một trình biên dịch tốt hơn những người có thể đi xuống hội trường và nói chuyện với những người thiết kế chip.

Đó là lý do tương tự mọi người mua công cụ từ Microsoft để phát triển trên nền tảng của Microsoft. Đó là người có sự hỗ trợ đầu tiên và quan trọng nhất.


1
Ack. Đó là lý do tại sao lĩnh vực Điện toán hiệu năng cao là một thị trường quan trọng cho các trình biên dịch thương mại. Bởi vì hiệu suất và khả năng điều chỉnh là thực sự quan trọng khi thời gian tính toán được chỉ định (và đôi khi được lập hóa đơn) theo giờ.
mschuett

Để mở rộng về điều này, trong một số tình huống đơn giản là không có trình biên dịch miễn phí có sẵn. Ví dụ, để phát triển nhân Windows (Win8 +), tùy chọn duy nhất là sử dụng MSVC với trình biên dịch WDK tích hợp.
Một số tên người dùng

19

Đã làm việc trên một trình biên dịch trả tiền, tôi tin rằng lý do chính để trả tiền cho một trình biên dịch là vì hợp đồng hỗ trợ. Nếu khách hàng gặp vấn đề với mã của họ và nghi ngờ lỗi trình biên dịch, họ có thể yêu cầu nhà cung cấp trình biên dịch điều tra các giải pháp có thể (trên xu của nhà cung cấp, không phải của họ), có thể là thời hạn trả lời / giải pháp. Điều này có thể được thực hiện mà không phải phát hành công khai mã nguồn cho các dự án có thể chứa thông tin nhạy cảm và thông thường hợp đồng ràng buộc nhà cung cấp giữ bí mật về bất kỳ mã nguồn được chia sẻ nào. Nói chung, các công ty lớn hơn sẵn sàng trả cho mức hỗ trợ này, trong khi các cửa hàng nhỏ hơn không xem nó là đáng đồng tiền hoặc quá đắt.

Ngoài ra, các nhà cung cấp muốn làm hài lòng khách hàng (thanh toán cao), vì vậy các yêu cầu tính năng được ưu tiên theo đó khách hàng muốn họ. Khách hàng cũng có thể đề xuất các tính năng phù hợp hơn với nhu cầu của họ, những thứ cụ thể hơn của công ty sẽ không được sử dụng rộng rãi. Điều này là không thể đối với người dùng GCC hoặc các trình biên dịch mã nguồn mở khác, nơi các tính năng được triển khai bởi những người sẵn sàng làm điều đó theo bất kỳ thứ tự nào họ cảm thấy theo lịch trình riêng của họ.


7
"Điều này là không thể đối với người dùng GCC hoặc các trình biên dịch mã nguồn mở khác, nơi các tính năng được triển khai bởi những người sẵn sàng làm điều đó theo bất kỳ thứ tự nào họ cảm thấy theo lịch trình riêng của họ." Nhưng mặt khác, nếu khách hàng muốn tính năng này đủ tệ, họ có thể tự do chỉ định các nhà phát triển tự thực hiện và sau đó có thể hoặc không thể chia sẻ nó với người khác. (Hãy nhớ rằng GPL là về phân phối , không sử dụng .) Với phần mềm độc quyền, họ phải thuyết phục nhà cung cấp thực hiện tính năng nói trên, cũng như biết và mô tả chi tiết đủ để thực sự có được những gì họ muốn.
một CVn

1
Nếu công ty có các nhà phát triển có kinh nghiệm và quen thuộc với trình biên dịch và cơ sở mã cụ thể thì có, nhưng đó là một chi phí gia tăng, có lẽ nhiều hơn là mua trình biên dịch. Ngoài ra, bạn sẽ ngạc nhiên với cách yêu cầu tính năng mơ hồ có thể. Nếu một khách hàng đang trả tiền, sẽ không mất nhiều thời gian để thuyết phục một công ty về việc làm một cái gì đó, đặc biệt là khi bạn trả nhiều tiền. Tôi sẽ không tranh luận ở hai bên, chỉ nói rằng một số người thấy mức hỗ trợ này đáng đồng tiền bát gạo.
Chewy Gumball

1
Tôi đồng ý rằng một trình biên dịch không phải là một phần mềm tầm thường. Thêm một tính năng cho nó chắc chắn là một nhiệm vụ không hề nhỏ, đặc biệt đối với một người không quen thuộc với cơ sở mã. Nhưng để nói rằng "không thể" có các tính năng được triển khai trong trình biên dịch mã nguồn mở nhưng có thể trong một quyền sở hữu độc quyền ít nhất là một đối số thiếu sót. Nếu công ty không có chuyên môn cần thiết trong nhà, họ có thể thuê một nhà tư vấn để làm việc đó cho họ. Với phần mềm độc quyền, nếu nhà cung cấp nói không (bất kể lý do tại sao), thì bạn dành cho tất cả ý định và mục đích hết may mắn.
một CVn

Tất cả những gì đã nói, tôi đã làm điều này vì tôi nghĩ nó trả lời tốt câu hỏi.
một CVn

1
Tôi không nghĩ bạn đã từng thực sự xử lý hỗ trợ phần mềm "thương mại". Đó là một trải nghiệm hoàn toàn khác với những gì bạn mô tả.
James Anderson

1

Đôi khi, đó không phải là trình biên dịch mà mọi người trả tiền, đó là thời gian chạy hoạt động với nó. Đặc biệt, Intel có truyền thống cung cấp các thư viện tuyệt vời cho những thứ như đa luồng, hỗ trợ truyền thông (SSE, v.v.) và toán chính xác mở rộng.


Bạn đã đúng, Polyverse bán các bản phân phối Linux được bảo vệ bằng cách di chuyển mục tiêu phòng thủ. Với việc mua một trong các bản phát hành của họ, bạn đồng thời mua trình biên dịch của họ áp dụng bảo vệ mục tiêu di động cho tất cả các tệp nhị phân của HĐH.
T. Salim

0

Tôi đã làm việc với một số người sử dụng trình biên dịch trả phí.

Họ đang làm dữ liệu nghiêm trọng trong một cụm. Giả sử, trình biên dịch Intel quản lý để tạo mã nhanh hơn một chút cho họ và trả tiền cho trình biên dịch rẻ hơn so với việc chạy nhiều nút hơn. Sự hiểu biết của tôi là sự khác biệt rất nhỏ, nhưng nhân lên với chi phí điện được tính vào nó được coi là xứng đáng.

Với hiệu quả đó, tôi sẽ không ngạc nhiên nếu hầu hết các siêu máy tính HPC chạy trên các trình biên dịch chuyên dụng được cung cấp bởi các nhà sản xuất chip.


-4

Tôi với Karl Bielefeldt về điều này.

Tôi sẽ không thực sự tin tưởng các trình biên dịch cung cấp khả năng đa nền tảng. Bởi vì, thành thật mà nói, tất cả chúng ta đều biết các công cụ / trình biên dịch gốc và mục tiêu luôn có những lợi thế như hiểu rõ hơn về nền tảng đích.

Và tôi tin rằng, khi phần mềm của bạn trở nên phức tạp và hiệu suất là cần thiết, bạn có thể bắt đầu suy nghĩ về việc chuyển sang trình biên dịch trả phí.

Và thêm vào đó, tôi tin rằng trình biên dịch của Microsoft khá tốt. Và như mọi người khác nói, họ miễn phí mãi mãi.


2
Vì vậy, bạn không tin tưởng GCC? Trình biên dịch Android và iOS thì sao?

-17

Trình biên dịch miễn phí GNU (gcc) đi kèm với giấy phép GNU (GPL) có nghĩa là bạn chỉ có thể sử dụng cho các dự án nguồn mở. Được hỗ trợ bởi các tên tuổi lớn trong phần mềm.

Clang (miễn phí) là một nỗ lực để tránh các hạn chế GPL tạo ra một trình biên dịch tốt. Ngoài ra, được hỗ trợ bởi Apple, Google và nhiều người khác.

VC ++ Express (miễn phí) bị giới hạn trong nền tảng Windows (nhân tiện, họ đã làm cho nó miễn phí trong giây phút cuối cùng, bởi vì nhiều người từ cộng đồng Nguồn mở đã hỏi họ về nó) và thiếu hầu hết các công cụ chuyên nghiệp một tính năng. Chẳng hạn như hồ sơ, ví dụ.

Vì vậy, tất cả các công cụ này là miễn phí cho chúng tôi, nhưng được hỗ trợ bởi ngành công nghiệp.

Intel (thương mại), như Karl đã đề cập, cho các dự án nhắm mục tiêu hiệu suất cao nhất trên nền tảng Intel.


17
Rất nhiều thông tin sai lệch ở đây. VC ++ Express là miễn phí, mặc dù tôi nghi ngờ đó là vì cộng đồng Nguồn mở (ai?) Đã yêu cầu nó, nhưng điều đó không liên quan gì đến trình biên dịch C ++, như @YannisRizos đã đề cập trong các bình luận ở trên. Thứ hai, trong khi bản thân GCC là GPL, nó có thể được sử dụng để biên dịch mã không GPL. Xem tại đây stackoverflow.com/questions/9772616/
Mạnh

Không thể tin được, nhiều người (tôi là một trong số những người khác) đã yêu cầu làm cho VC ++ 2012 cho Máy tính để bàn miễn phí. Đừng muốn nói về GPL.
SChepurin

5
Vâng, tôi chắc chắn nhiều người yêu cầu họ làm cho nó miễn phí. Điều đó không có nghĩa là bạn là người kích hoạt nó. Đó là một quyết định kinh doanh. Trên thực tế, tôi khá chắc chắn rằng phản ứng dữ dội so với giá ban đầu của các gói VSExpress (25 đô la, tôi nghĩ) là từ những người có sở thích và nhà phát triển thương mại, những người muốn sử dụng thứ gì đó ở nhà, không phải là nhà phát triển hệ điều hành cần thiết và chắc chắn không phải là một cộng đồng.
Avner Shahar-Kashtan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.