# Technical Vocab

**API (application programming interface) -** allow different programs (sometimes written in different languages) to communicate with each other and share information or functionality.

**paradigm** - widely accepted example, belief, concept, or pattern. in a sense, what already exists/is known/is used. emphasis on it being a concept.

* Imperative: Programming with an explicit sequence of commands that update state.
* Declarative: Programming by specifying the result you want, not how to get it.
* Procedural: Imperative programming with procedure calls.
* Functional (Applicative): Programming with function calls that avoid any global state.
* Function-Level (Combinator): Programming with no variables at all.
* Object-Oriented: Programming by defining objects that send messages to each other. Objects have their own internal (encapsulated) state and public interfaces. Object orientation can be:
  * **Class-based**: Objects get state and behavior based on membership in a class.
  * **Prototype-based**: Objects get behavior from a prototype object.
* Event-Driven: Programming with emitters and listeners of asynchronous actions

SaaS: a method of software delivery and licensing in which software is accessed online via a subscription, rather than bought and installed on individual computers.

PaaS: **a complete development and deployment environment in the cloud**, with resources that enable you to deliver everything from simple cloud-based apps to sophisticated, cloud-enabled enterprise applications.

IaaS: Infrastructure as a service (IaaS) is **a standardized, highly automated offering in which computing resources owned by a service provider, complemented by storage and networking capabilities, are offered to customers on demand**. Resources are scalable and elastic in near real time and metered by use.

**References:**

{% embed url="<https://medium.com/@jasonsenter/technology-jargon-made-easy-e6329f2b8fbb>" %}

{% embed url="<https://cs.lmu.edu/~ray/notes/paradigms>" %}
