Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I am curious; can Java be referred to as a managed language? I am mainly thinking about the Microsoft model when it comes to unmanaged versus managed code (say native vc++ to C#). With the similarities between C# and Java as high-level languages, is it correct to call Java a managed language as well?

share|improve this question

migrated from Apr 29 '11 at 14:27

This question came from our site for professional and enthusiast programmers.

Please define "managed language". It's impossible to answer this question without a precise definition of what a "managed language" is. – Jörg W Mittag Apr 29 '11 at 18:16

3 Answers 3

up vote 20 down vote accepted

Yes. Java is considered a managed programming language as it's sandboxed well by the JVM. But the term "managed code" is microsoft specific.

share|improve this answer
@S.Lott Mono also uses this terminology on non-Windows platforms. So no, not “Windows-Only”. – Konrad Rudolph Apr 29 '11 at 14:47
@S.Lott I think Microsoft uses “managed code” more as an umbrella term rather than tying it to a specific implementation (IL, CLR). I may be mistaken though. “Managed” for me simply implies that execution of the code is “safe” because it relies on checking of pointer accesses etc. By that definition, JVM execution would also be managed. – Konrad Rudolph Apr 29 '11 at 15:04
@Konrad: I agree -- "managed" is much more a marketing term than a technical one. I'd go a bit further though: programmers and programming projects are largely considered nearly unmanageable, and I think the real intent is to imply that if you use Microsoft's "managed" (code, or whatever) that both will become more manageable -- and, incidentally, the managers will become a more important part of projects as well. In short, Microsoft is marketing directly to the people who control the money instead of to programmers, and hoping they'll convince the managers to buy from Microsoft. – Jerry Coffin Apr 29 '11 at 16:12
From that viewpoint, I'd say that yes, Java is similar. Both take the position that programmers are incompetent, untrustworthy, and need to be "controlled". Both also basically define "management" as being carried out by force -- rather than persuading somebody to do things well, they assume that what's being managed will do as much wrong as possible, so the "manager" must ensure against everything they've defined as "wrong". In short, both are intended to appeal to the basest instincts of the worst managers. – Jerry Coffin Apr 29 '11 at 16:23
Neither Java nor .Net assume incompetence on the part of developers, they just abstract away memory management. The term managed code comes form automatic memory management, i.e. garbage collection. It's not a marketing term (".Net" is the marketing term). – Steve Haigh Apr 30 '11 at 10:08

Yes. A managed language is a language that runs in its own container.

Java is a managed language because you've got the JVM and in .NET you've got the CLR.

The term "managed code" seems to be something Microsoft specific, have a look at the following wikipedia article.

share|improve this answer
I don’t think any definition of “managed” actually hinges on the presence of a garbage collector. – Konrad Rudolph Apr 29 '11 at 14:28
@Konrad: I've updated my answer. – Kevin Apr 29 '11 at 14:30
The last paragraph of this answer seems to contradict the other two. The wikipedia article is pretty specific about "managed" relating to the CLR VM, not just any VM – Ben Aaronson Sep 9 at 15:44

In similar years (start of .NET) Java world promote old/new words like "managed bean". I agree, someone in marketing division made his homework good.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.