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.