Java có thể được coi là ngôn ngữ lập trình được quản lý không?


8

Tôi tò mò; Java có thể được gọi là ngôn ngữ được quản lý không? Tôi chủ yếu nghĩ về mô hình Microsoft khi nói đến mã không được quản lý so với mã được quản lý (giả sử vc ++ gốc đến C #). Với sự tương đồng giữa C # và Java là ngôn ngữ cấp cao, liệu có đúng khi gọi Java là ngôn ngữ được quản lý không?


4
Vui lòng xác định "ngôn ngữ được quản lý". Không thể trả lời câu hỏi này mà không có định nghĩa chính xác về "ngôn ngữ được quản lý" là gì.
Jörg W Mittag

Câu trả lời:


21

Đúng. Java được coi là ngôn ngữ lập trình được quản lý vì nó được JVM đóng hộp tốt. Nhưng thuật ngữ "mã được quản lý" là microsoft cụ thể.


1
@ S.Lott Mono cũng sử dụng thuật ngữ này trên các nền tảng không phải Windows. Vì vậy, không, không chỉ Windows Windows.
Konrad Rudolph

4
@ S.Lott Tôi nghĩ rằng Microsoft sử dụng mã được quản lý của Cameron, giống như một thuật ngữ ô hơn là buộc nó vào một triển khai cụ thể (IL, CLR). Tôi có thể bị nhầm lẫn mặc dù. Đối với tôi, chỉ đơn giản là ngụ ý rằng việc thực thi mã là an toàn vì nó dựa vào việc kiểm tra các truy cập con trỏ, v.v. Theo định nghĩa đó, việc thực thi JVM cũng sẽ được quản lý.
Konrad Rudolph

2
@Konrad: Tôi đồng ý - "được quản lý" là thuật ngữ tiếp thị nhiều hơn thuật ngữ kỹ thuật. Tôi sẽ đi xa hơn một chút: các lập trình viên và các dự án lập trình phần lớn được coi là gần như không thể quản lý được và tôi nghĩ rằng mục đích thực sự là ngụ ý rằng nếu bạn sử dụng "được quản lý" (mã hoặc bất cứ thứ gì) của Microsoft thì cả hai sẽ trở nên dễ quản lý hơn - và, tình cờ, các nhà quản lý cũng sẽ trở thành một phần quan trọng hơn của các dự án. Nói tóm lại, Microsoft đang tiếp thị trực tiếp tới những người kiểm soát tiền thay vì lập trình viên và hy vọng họ sẽ thuyết phục được các nhà quản lý mua từ Microsoft.
Jerry Coffin

1
Từ quan điểm đó, tôi muốn nói rằng có, Java cũng tương tự. Cả hai đều có lập trường rằng các lập trình viên không đủ năng lực, không đáng tin cậy và cần phải được "kiểm soát". Cả hai về cơ bản cũng định nghĩa "quản lý" là được thực hiện bằng vũ lực - thay vì thuyết phục ai đó làm tốt mọi việc, họ cho rằng những gì được quản lý sẽ làm sai nhiều nhất có thể, vì vậy "người quản lý" phải đảm bảo chống lại mọi thứ họ có được định nghĩa là "sai". Nói tóm lại, cả hai đều có ý định thu hút những bản năng cơ bản nhất của những người quản lý tồi tệ nhất.
Jerry Coffin

7
Cả Java và .Net đều không thừa nhận sự bất tài của các nhà phát triển, họ chỉ trừu tượng hóa việc quản lý bộ nhớ. Thuật ngữ mã được quản lý xuất hiện dưới dạng quản lý bộ nhớ tự động, tức là thu gom rác. Đây không phải là một thuật ngữ tiếp thị (".Net" là thuật ngữ tiếp thị).
Steve

9

Đúng. Ngôn ngữ được quản lý là ngôn ngữ chạy trong vùng chứa riêng.

Java là ngôn ngữ được quản lý vì bạn đã có JVM và trong .NET bạn đã có CLR .

Thuật ngữ "mã được quản lý" dường như là một cái gì đó cụ thể của Microsoft, hãy xem bài viết trên wikipedia sau đây .


3
Tôi không nghĩ rằng bất kỳ định nghĩa nào về quản lý của người dùng đã thực sự dựa vào sự hiện diện của người thu gom rác.
Konrad Rudolph

2
@Konrad: Tôi đã cập nhật câu trả lời của mình.
Kevin

Đoạn cuối của câu trả lời này dường như mâu thuẫn với hai người kia. Bài viết trên wikipedia khá cụ thể về "được quản lý" liên quan đến máy ảo CLR, không chỉ bất kỳ máy ảo nào
Ben Aaronson
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.