Data & Memory features

Definition
Language structures regarding data structures and memory management

Features

Primitive Types (All languages) Basic data types like integers, floats, booleans, and characters.

Records / Tuples (Haskell, Rust, F#, Python, Elixir, Scala) Fixed-size collections of elements, optionally with named fields.

Objects / Classes (Java, C++, Python, Ruby, C#) Encapsulate data and behavior using object-oriented principles.

Interfaces / Protocols / Traits (Java, C#, Rust, Swift, Python) Abstract types defining method signatures without implementation.

Enumerations / ADTs (Rust, Haskell, Scala, F#, Swift) Custom data types that represent one of many fixed values.

Smart Pointers (C++, Rust) Automatically managed pointers that encapsulate memory management.

Garbage Collection (Java, C#, Go, Python, JavaScript, Ruby) Automatic memory management to reclaim unused memory.

Manual Memory Management (C, C++) Developers allocate and free memory explicitly.

Ownership & Borrowing (Rust) Memory safety without garbage collection using strict ownership rules.

Copy-on-Write (Swift, PHP, Rust) Optimizes memory usage by delaying copying until modification is required.

Lifetimes (Rust) Ensures references are valid and memory-safe during their usage.