Object-oriented programming or OOP is a programming paradigm that represents concepts as “objects” that have attributes that describe the objects and associated procedures known as methods. Objects, which are usually instances of classes, are used to interact with one another to design applications and computer programs. Some advantages of OOP are it provides a clear modular structure for programs which makes it good for defining abstract data types where implementation details are hidden and the unit has a clearly defined interface. It makes it easy to maintain and modify existing code as new objects can be created with small differences to existing ones. And it provides a good framework for code libraries where supplied software components can be easily adapted and modified by the programmer. Some disadvantages are that OOP can be larger than other programs. In the early days of computing, space on hard drives, floppy drives and in memory was at a premium which meant that more money was going to be spent. Another is that it requires a lot of work to create. A great deal of planning goes into an object oriented program well before a single piece of code is ever written. Initially, this early effort was felt by many to be a waste of time. Finally OOP were slower than other programs, partially because of their size. Other aspects of OOP demand more system resources, thus slowing the program down.
REST and CRUD
CRUD specifies a minimal set of basic storage for data reading and writing. (create, read, update and delete) Then you can build other operations by grouping these. These are usually considered database operations, but this is considering what a database is. REST is an architectural style that usually includes CRUD operations and other, higher level operations, all to be performed on some concept of resources which can be