Độc lập nền tảng là gì? Các nền tảng chéo và 'độc lập nền tảng' có giống nhau không?


11

Sự độc lập nền tảng thực sự có nghĩa là gì? Các tiêu chí để gọi một nền tảng ngôn ngữ độc lập là gì? Các nền tảng chéo và 'độc lập nền tảng' có giống nhau không?

(Đây có thể là một câu hỏi để tự nghiên cứu, nhưng tôi muốn nghe ý kiến ​​từ các chuyên gia từ Stack tràn. Có rất nhiều định nghĩa và quan điểm liên quan đến nó trên interenet và một số trong số đó là khó hiểu)


Tôi nghĩ rằng thuật ngữ "phụ thuộc nền tảng" phù hợp hơn để áp dụng cho sản phẩm chương trình cụ thể, chứ không phải ngôn ngữ.

3
Cá nhân tôi thấy Java là nền tảng độc lập, bởi vì JVM trên mỗi nền tảng phải hỗ trợ cùng một bộ hướng dẫn và mã cho bất kỳ chương trình Java nào (đối với giá trị chung là "bất kỳ"). Mặt khác, C # sẽ được coi là đa nền tảng ở chỗ nó chạy trên cả Mono và .NET, nhưng không ở cùng một mức độ.

1
@Randolph dường như bạn quên rằng rất nhiều cơ sở hạ tầng dotnet đã mệt mỏi với các cửa sổ - ví dụ: tất cả các công cụ ui. Bạn không thể so sánh tính độc lập nền tảng của Java với dotnet + mono, nó thậm chí không gần gũi. Có rất nhiều phần được gọi là một phần của tiêu chuẩn, vấn đề duy nhất là chúng hoạt động trên Windows. Đừng quên pinvoke nằm rải rác khắp nơi và sử dụng nó sẽ không thể mang theo được.
mP01

Bạn có thể vui lòng giải thích sự khác biệt giữa độc lập đa nền tảng và nền tảng?

@mP - Tôi không quên điều đó cả. Trong thực tế, tôi nghĩ rằng tôi đã khá rõ ràng khi tôi nói "không cùng mức độ", vì thực tế là hầu hết các giao diện người dùng được gắn với Windows. Tôi KHÔNG so sánh Java với .NET và Mono, nếu bạn đọc kỹ: Tôi đã nói rằng Java độc lập với nền tảng và .NET / Mono là đa nền tảng. Nếu đó là một so sánh, tôi đoán nó có nghĩa là táo và lê cũng tương đương nhau. Hãy tha thứ cho tôi nếu tôi đi ngang qua, nhưng tôi không đánh giá cao những lời được đưa vào miệng.

Câu trả lời:


8

Không có Nền tảng Độc lập và Đa nền tảng không giống nhau. chúng ta hãy xem những giải thích sau đây để hiểu.


Phần mềm đa nền tảng


đa nền tảng, hoặc đa nền tảng, là một thuộc tính được trao cho phần mềm máy tính hoặc các phương pháp và khái niệm điện toán được triển khai và hoạt động trên nhiều nền tảng máy tính

Nó có thể được chia thành hai loại.

  1. Một yêu cầu xây dựng hoặc biên dịch riêng cho từng nền tảng mà nó hỗ trợ,
  2. Và một cái khác có thể được chạy trực tiếp trên bất kỳ nền tảng nào mà không cần chuẩn bị đặc biệt, ví dụ: phần mềm được viết bằng ngôn ngữ được dịch hoặc mã byte di động được biên dịch sẵn mà trình thông dịch hoặc gói thời gian chạy là thành phần phổ biến hoặc tiêu chuẩn của tất cả các nền tảng.

Phần mềm đa nền tảng hoặc đa nền tảng: phần mềm có sẵn trên nhiều nền tảng (hệ điều hành). Điều này có thể có nghĩa là hai điều -

  1. Phần mềm được cung cấp các bản dựng / ứng dụng khác nhau cho các nền tảng khác nhau [các gói khác nhau cho windows, gói này dành cho linux].
  2. Phần mềm có thể được chạy (với cùng một tải xuống) trên nhiều nền tảng nhưng KHÔNG phải tất cả.

Nền tảng độc lập


Phần mềm độc lập với nền tảng không phụ thuộc vào bất kỳ tính năng đặc biệt nào của bất kỳ nền tảng nào, hoặc, nếu có, xử lý các tính năng đặc biệt đó để có thể xử lý nhiều nền tảng.

Nền tảng Phần mềm độc lập: Phần mềm độc lập nền tảng theo nghĩa nghiêm ngặt của nó -

  • Cài đặt mọi nơi và chạy mọi nơi - không quan trọng bạn đang ở đâu. Mặc dù bạn có thể nhận được các trình cài đặt khác nhau (cho các nền tảng khác nhau), điều này sẽ chỉ giúp người dùng dễ dàng. Sẽ có các tùy chọn để bạn cài đặt trực tiếp từ mã nguồn.




Tổng hợp từ các nguồn khác nhau


@Shekhar: Thật trùng hợp, tôi cũng nhấn các nguồn tương tự (Wikipedia VÀ openalternigin.org/site/2008/08/ mẹo ) từ nơi bạn có thể đã lấy thứ đó. Cảm ơn rât nhiều.

@CSharpLearner như tôi đã đề cập ở cuối bài đăng của tôi

0

"Định nghĩa ruột" của tôi phù hợp với những gì Shekhar nói; đa nền tảng == xây dựng cho nhiều nền tảng không tương thích, nền tảng độc lập == hoạt động bất kể nền tảng.

Tất nhiên, nếu nền tảng == hệ điều hành dễ nhìn thấy, thì trong trường hợp đó, tập lệnh Python có thể sẽ "độc lập với nền tảng" miễn là có trình thông dịch Python trên HĐH mà bạn định chạy.

Theo một cách nào đó, nền tảng của tập lệnh Python. Cuối cùng, các nền tảng là các ngăn xếp tiêu chuẩn của phần mềm + phần cứng trừu tượng một số chức năng.

Không chắc chắn quan điểm của tôi là gì, mặc dù.


0

Để mở rộng một chút về câu trả lời của Shekhar_Pro ,

Nền tảng độc lập sẽ thực hiện bất kỳ nền tảng nào. Hãy nghĩ về các ứng dụng Java hoặc Python mà không có bất kỳ công cụ cụ thể nền tảng nào có thể được thực thi trên Windows, Mac và Linux mà không nhất thiết phải biên dịch lại hoặc viết lại.

Các sản phẩm đa nền tảng là một ấm cá khác nhau hoàn toàn. Khi một số khía cạnh của sản phẩm đa nền tảng có thể chia sẻ các yêu cầu chung và thậm chí mã nguồn (ví dụ: một số hàm toán học được triển khai trong C), mỗi phiên bản sản phẩm được viết và biên dịch hoàn toàn cho một nền tảng cụ thể. Hãy nghĩ về Mozilla Firefox, ví dụ, có các phiên bản khác nhau chạy trên Mac, Windows, Linux, BeOS, Android, v.v. Mỗi phiên bản tương tự nhau và thậm chí có thể có cấu trúc dữ liệu tương thích, nhưng mỗi phiên bản cũng được phát triển độc lập và thường được viết bằng các ngôn ngữ lập trình và API hoàn toàn khác nhau, đánh số phiên bản khác nhau, v.v.


-1

Độc lập nền tảng có nghĩa là, một chương trình được viết, kiểm tra và hoạt động trên một nền tảng hoặc hệ thống vận hành sẽ hoạt động không được sửa đổi trên một nền tảng / hệ điều hành khác. Đương nhiên nếu nó được sao chép vào một thư mục khác thì một số tệp cấu hình nhỏ có thể cần các đường dẫn cố định nhưng khác với nó chỉ nên hoạt động.

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.