2010-02-12 38 views
7

C# thuộc sở hữu của Microsoft và Java thuộc sở hữu của Sun/Oracle. Những điều nguy hiểm nào thực sự phơi bày với người dùng các ngôn ngữ này? Có ai cảm thấy mã của họ đã "sở hữu"? Các dự án như Mono có giúp giữ cho "chủ sở hữu" trung thực không?Sự nguy hiểm của ngôn ngữ là "sở hữu" là gì?

Vui lòng không biến nó thành cuộc chiến thánh thiện ngôn ngữ. Tôi chỉ muốn biết nếu nó hợp lý để tránh những ngôn ngữ như vậy hoặc nếu đó chỉ là hoang tưởng. An interview với nhà phát minh của C++ đã cho tôi suy nghĩ, nhưng tôi cũng muốn cân bằng suy nghĩ của mình với những suy nghĩ của cộng đồng nói chung.

+6

Có lẽ tốt hơn là nên xác định "sở hữu", C# là đặc điểm kỹ thuật, bạn có thể tự triển khai nó (ví dụ: Mono) ... ý của bạn là gì? (Xem: http://www.ecma-international.org/publications/standards/Ecma-334.htm cho thông số này) –

+3

Vì 'câu hỏi' này không có câu trả lời chính xác, nên là wiki. –

+1

Tôi nghĩ rằng một sự phân biệt cần phải được thực hiện ở đây giữa "ngôn ngữ C#" và "các thư viện lớp .NET". –

Trả lời

4

Không có mối nguy hiểm nào đối với ngôn ngữ C#. Nó là một tiêu chuẩn ISO. Chính thức nó thuộc sở hữu của một ủy ban. Nhưng Java là nhãn hiệu

+0

Ngay cả khi Java là nhãn hiệu, gần 100% Java là nguồn mở và miễn phí dưới openjdk. Vì vậy, không có nguy hiểm như vậy cho Java là tốt. –

5

Java không phải là "Được sở hữu", nó là nguồn mở. Nếu bạn tìm thấy một lỗi trong đó bạn hoàn toàn không thể đối phó với, bạn có thể sửa chữa nó. (Tuy nhiên, có cả triển khai mã nguồn mở và mã nguồn đóng)

Tôi không biết liệu bạn có thể lấy mã nguồn cho C# hay không, nhưng vì Mono đã sao chép nó ở đó cũng là một nguồn mở cho điều đó.

Tôi không biết liệu có nguồn thứ hai cho thư viện .net hay không.

Đối với "Nguy hiểm" thực tế (Câu hỏi thực sự của bạn là gì), công ty sẽ quyết định không phát hành bản cập nhật nữa - nếu có, ngôn ngữ sẽ héo và chết hoặc sẽ cất cánh trên riêng của nó? Java đang trong quá trình chuyển đổi từ một trong những trạng thái này sang trạng thái khác. Xin lỗi, không biết về C#.

Ngoài ra còn có nguy cơ (Nhận thức) mà tôi đã đề cập trước đó - bạn có thể sửa chữa nó nếu công ty hàng trăm triệu đô la của bạn hoàn toàn cần nó cố định để tiếp tục.

Đây là một vấn đề quan trọng hơn hai mươi năm trước, những ngày này thực tế là nếu đó là một ngôn ngữ ổn định tốt, đây không phải là điều bạn cần phải lo lắng.

+4

Chính xác hơn, Mono _implemented_ C#, không được sao chép. –

+1

Điều này không thực sự đúng. Microsoft _used_ để tạo ra một trình biên dịch Java xuất sắc và đã bị kiện để làm cho chúng dừng lại. –

+0

Trình biên dịch Java xuất sắc với các phần mở rộng của Microsoft. Họ đã bị kiện vì họ không tuân theo tiêu chuẩn. – duffymo

7

So với những gì? Vì bạn đặt nó theo các thuật ngữ này, các ngôn ngữ C và C++ nguyên bản là "sở hữu" bởi Bell Labs.

+0

+1 mặc dù tôi không chắc chắn về phần C++. –

+0

Tôi không hiểu "Các điều khoản này"? Được sở hữu sẽ đơn giản có nghĩa là nếu bạn đang sử dụng một ngôn ngữ thực hiện và việc triển khai cụ thể đó biến mất, bạn có thể giữ cho hệ thống của mình hoạt động không. C & C++ có nhiều triển khai và không có cách nào được sở hữu - Chúng được CREATED bởi phòng thí nghiệm Bell, có thể bạn đã trộn lẫn các điều khoản của mình? –

+1

Ngoài ra, -1 không theo bất kỳ cách nào trả lời câu hỏi đã được hỏi. –

1

Nếu không có hai triển khai độc lập, ngôn ngữ là "Thuộc sở hữu" và bạn đang ở lòng thương xót của nhà cung cấp nếu anh ta tăng giá hoặc có thể sản phẩm.

Tôi không thích điều đó.

CHỈNH SỬA: Thường xuyên như không, bạn có thể đếm các mã cơ sở hợp pháp có thể chia rẽ thành hai (thứ hai là chính bạn).

+0

Bạn trả bao nhiêu cho Java? Lệ phí nào được trích từ lần tải xuống cuối cùng của bạn? – duffymo

+0

Rõ ràng Perl là "sở hữu" và chúng tôi đang ở lòng thương xót của nhà cung cấp. –

+1

Và tất cả người dùng Python đều nằm dưới ngón tay cái của BDFL. Anh ta có thể đè bẹp bạn theo ý thích của mình. – duffymo

0

Không phải tất cả ngôn ngữ thuộc sở hữu của một cá nhân/công ty/cơ quan tiêu chuẩn. Cách duy nhất tôi có thể nghĩ về nơi mà nó không thực sự thuộc sở hữu của bất cứ ai là nếu người đã làm cho nó là vô danh và cũng có tên miền công cộng

+0

Nhiều người thuộc sở hữu của một cơ quan tiêu chuẩn như ISO hoặc ECMA. – vickirk

4

Thức dậy vào buổi sáng rất nguy hiểm, nhưng điều đó không giữ cho thế giới dưới những cái ảnh bìa.

Tôi cảm thấy đây là một trong những rủi ro có thể chấp nhận được. Trong trường hợp của Java, các công ty đã sử dụng nó trong 15 năm qua hoặc lâu hơn cho lợi ích của họ.

Giải pháp thay thế là gì? Phát triển và duy trì ngôn ngữ của riêng bạn để bạn sở hữu nó? Đó là những gì SAP đã làm. Nó dường như đã làm việc cho họ, nhưng nó sẽ là thú vị để tính toán chi phí mà họ đã phát sinh.

Bjarne Stroustrup là một người đàn ông tuyệt vời, nhưng đừng quên rằng anh ta có thành kiến.Anh ta không vui vì Java đã lu mờ C++ làm ngôn ngữ hướng đối tượng chính khi nó xuất hiện. Anh ấy cho rằng nó tiếp thị của Sun, không thừa nhận rằng nó có thể đã được cải thiện trên C++.

Thực tiễn tốt là thử và phát hiện các thành kiến ​​trên một phần của bất kỳ người nói nào để đảm bảo bạn không nuốt toàn bộ lượt xem của người khác. Đây là một trong những trường hợp đó.

+0

Các lập trình viên thích mốt nhất thời, nhưng họ luôn quay trở lại những gì họ yêu thích. Thực sự, có bao nhiêu người đã chuyển vĩnh viễn từ C++ sang Java? Java và C++ là các ngôn ngữ khác nhau cho các miền vấn đề khác nhau. Thành công của Java đến từ khả năng ứng dụng của nó trong lĩnh vực cụ thể của nó, cộng với việc bắt đầu làn sóng 80 của OOP hype được thúc đẩy bởi C++. –

+0

Rất nhiều người chuyển vĩnh viễn từ C++ sang Java. Tôi không theo dõi ý kiến ​​của bạn ở đây. Cá nhân, tôi nghĩ rằng Java cưỡi sóng thần Internet nhiều hơn các gợn sóng OOP. Các applet và nhảy múa trong các trình duyệt là thứ đã đẩy Java tiến lên ngay từ đầu. Nó phát triển thành một ngôn ngữ phía máy chủ cho các ứng dụng web sau khi đặc tả Java EE được công bố vào năm 1999 tại Java One. Không ai trong số đó có nhiều việc phải làm với C++. Đó là C++ không có thư viện để theo kịp. STL đã được thêm vào, nhưng không nhiều. – duffymo

0

hmm, cũng Xbox chỉ hỗ trợ C# cho trò chơi độc lập và không có nền tảng nào khác hỗ trợ nó.

rõ ràng là nguy hiểm là nếu bạn muốn làm nhiều nền tảng mã, bạn muốn ngôn ngữ được hỗ trợ bởi hầu hết các nền tảng, ngôn ngữ "sở hữu" nhiều hơn có thể sẽ được hỗ trợ bởi ít nền tảng hơn.

vấn đề duy nhất tôi có là hỗ trợ ngôn ngữ và cách chuyển đổi từ ngôn ngữ này sang ngôn ngữ khác, ví dụ: C++ to C# dễ hơn cách khác vì quản lý bộ nhớ.

+0

C# được hỗ trợ trên Xbox360, Windows, Linux và MaxOS (và có lẽ nhiều hơn tôi không biết) và có những dự án ra có tìm cách để cổng XNA đến các nền tảng MS không (ví dụ như http://code.google. com/p/monoxna /) –

Các vấn đề liên quan