First generation
- Machine languages
Second generation
- Assembly languages
Third generation (higher-level languages)
- Fortran Wikipedia
- Cobol Wikipedia
- Lisp Wikipedia
- C
- C++
- C#
- Java
Fourth-generation (languages are languages designed for specific applications)
- NOMAD for report generation
- SQL for database queries
- Postscript for text formatting
Fifth-generation (logic- and constraint-based languages)
- Prolog
- OPS5
Imperative (program specifies how a computation is to be done- there is a notion of program state and statements that change the state)
- C
- C++
- C#
- Java
Declarative (program specifies what computation is to be done)
- ML (functional)
- Haskell (functional)
- Prolog (constraint logic)
Functional
- ML (declarative)
- Hasell (declarative)
von Neumann (computational model is based on the von Neumann computer architecture)
- Many of today's languages
- Fortrain
- C
Object-oriented (a programming style in which a program consists of a collection of objects that interact with one another)
- C++
- C#
- Java
- Ruby
Scripting (interpreted languages with high-level operators designed for "gluing together" computations)
- Awk
- JavaScript
- Perl
- PHP
- Python
- Ruby
- Tel
Programming Languages
- History of Programming Languages Wikipedia
- Generational List of Programming Languages Wikipedia
- Programming Languages by Type Wikipedia
Programming Paradigms
Programming Language Comparisons
- Comparison of Programming Languages Wikipedia
- Programming Language Comparisons Wikipedia
- Comparison of Programming Languages (Syntax) Wikipedia
- Comparison of Basic Instructions of Programming Languages Wikipedia
- Computer Programming/Hello world Wikibook
Martin Fowler, Refactoring, Patterns, ThoughtWorks
Design Patterns for Humans
Design Patterns- Gang of Four (GoF)
- Design Patterns: Elements of Reusable Object-Oriented Software and Design Patterns: Elements of Reusable Object-Oriented Software Wikipedia
- Design Patterns Wikipedia
Software Design Patterns
Types of Patterns
Creational Patterns (object creation)
Creational Patterns- Can use Singleton in Implementation
Structural Patterns (relationships among entities)
- Adapter Pattern Wikipedia
- Bridge Pattern Wikipedia
- Composite Pattern Wikipedia
- Facade Pattern Wikipedia
- Flyweight Pattern Wikipedia
- Proxy Pattern Wikipedia
Structural Patterns (relationships among entities)- Familiar
Behavioral Patterns
- Command Pattern Wikipedia
- Mediator Pattern Wikipedia
- Memento Pattern Wikipedia
- Strategy Pattern Wikipedia
- Template Method Pattern Wikipedia
- Visitor Pattern Wikipedia
Behavioral Patterns- Familiar
- Observer Pattern Wikipedia
- State Pattern Wikipedia
- Chain-of-Responsibility Pattern (handler, similar to Decorator Pattern) Wikipedia
Creational Patterns (object creation)
- Singleton Pattern is not needed due to module namespacing
- Singleton Pattern Wikipedia
Behavioral Patterns
Patterns Talks
Brandon
Gang of Four: Principles
Composition over Inheritance: https://python-patterns.guide/gang-of-four/composition-over-inheritance/ Problem: the subclass explosion Solution #1: The Adapter Pattern Solution #2: The Bridge Pattern Solution #3: The Decorator Pattern Solution #4: Beyond the Gang of Four patterns
- Dodge: “if” statements
- Dodge: Multiple Inheritance: https://fuhm.net/super-harmful/
- Dodge: Mixins
- Dodge: Building classes dynamically
Hawt
Architectures
- Distributed Computing Wikipedia
- Enterprise Architecture Framework Wikipedia
- Service Oriented Architecture Wikipedia
- Resource Oriented Architecture Wikipedia
- Micro Architecture Wikipedia
- Loose Coupling Wikipedia
- Multitenancy Wikipedia
Interesting https://www.enterpriseintegrationpatterns.com/patterns/messaging/toc.html https://en.wikipedia.org/wiki/Software_architecture#Architectural_styles_and_patterns https://en.wikipedia.org/wiki/List_of_software_architecture_styles_and_patterns https://en.wikipedia.org/wiki/Software_architecture https://en.wikipedia.org/wiki/Architectural_pattern
https://en.wikipedia.org/wiki/Messaging_pattern
https://en.wikipedia.org/wiki/Post/Redirect/Get https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop | Read–eval–print loop - Wikipedia -->
Catalogs
Python Design Patterns and Algorithms
Design Patterns- General
Object-Oriented Programming Languages
- Object-Oriented Programming Languages Wikipedia
- Object Oriented Programming Wikipedia
- List of Object-Oriented Programming Languages Wikipedia
- Class Based Programming Wikipedia
- Prototype Based Programming Wikipedia
Object Oriented Software Construction
Object
Constructor
Object Oriented Software Characteristics
Functional Programming
Imperative and Declarative
React?
Composition
Example of stateless protocols
State
Checklists and Cheat Sheets
Object Oriented Software Construction Principles
Software Principles (SOLID)