Languages Without Garbage Collection

In GarbageCollection, there is a list of garbage collected languages. It made me think: how many languages are not garbage collected? I'll try to make a list here:

2 parts: no-new-objects: new objects, but no automatic collection:

It seems that garbage collection is a very common technique, and is maybe even more popular than other kinds of memory management methods.

That's true for languages designed after around 1985. Before then, it was more common for languages to not have automatic garbage collection. Garbage collection was prevalent in "academic languages", (Lisp, Scheme, ML) but tended to be missing in the languages commonly used for commercial software development. The prevalent (mis)conception was that garbage collection was too slow and unpredictable for "real programs". Also RealProgrammers are sure that they can manage memory better than any automated garbage collector, leading to widespread belief that garbage collection is a crutch for unskilled programmers. Thankfully, those attitudes are changing, primarily due to the acceptance of Java in the corporate world.

Lisp wasn't particularly 'academic' in 1985; CLTL1 came out in '84, and it was heading towards ANSI


Note that ReferenceCounting is considered to be a form of GarbageCollection.

Seems to me there should actually be more categories of languages, not primary based on memory management but on resource management. Basically you have: 1) Languages that neither support nor offer (semi) automated resourc management (for example C). 2) Languages that have or support fully automated resource management, but just for memory (for example Java). 3) Languages that support semi automated resource management for any resource (for example C++). 4) Languages that support both fully automated resource management (for memory) and semi automated resource management for any other resource (for example cPython).


View edit of December 16, 2014 or FindPage with title or text search