Functional Programming

/ˈfʌŋkʃənl ˈproʊɡræmɪŋ/

noun … “Writing code as evaluations of pure functions.”

Functional Programming is a programming paradigm where computation is expressed through the evaluation of functions, emphasizing immutability, first-class functions, and declarative code. Unlike OOP, which centers on objects and state, Functional Programming avoids shared mutable state and side effects, making reasoning about code, testing, and concurrency more predictable and robust.

Object-Oriented Programming

/ˌoʊˌoʊˈpiː/

noun … “Organizing code around objects and their interactions.”

OOP, short for Object-Oriented Programming, is a programming paradigm that structures software design around objects, which encapsulate data (attributes) and behavior (methods). Each object represents a real-world or conceptual entity and interacts with other objects through well-defined interfaces. OOP emphasizes modularity, code reuse, and abstraction, making complex systems easier to design, maintain, and extend.

Key principles of OOP include:

Profiling

/ˈproʊfaɪlɪŋ/

noun … “Measuring code to find performance bottlenecks.”

Profiling is the process of analyzing a program’s execution to collect data about its runtime behavior, resource usage, and performance characteristics. It is used to identify bottlenecks, inefficient algorithms, memory leaks, or excessive I/O operations. Profiling can be applied to CPU-bound, memory-bound, or I/O-bound code and is essential for optimization in software development.