programming-languages
- Use for applications such as image recognition and natural language processing.
- Cloud computing
- Data Manipulation
- Use for applications such as image recognition and natural language processing.
- Use for applications that place a high value on data visualization (ggplot2) and/or can take advantage of the powerful Shiny framework in combination with the RStudio Products
- Data Manipulation
- Speed
- Used for time-critical or resource-intensive applications
- Extensible
- Multiple dispatch –> all functions and operators can be extended to work with user types arbitrarily.
- Combined with dynamic typing
- Cutting edge of compiler technology
- Best libraries for differential equations, mathematical optimization, and automatic differentiation
# Concepts
# Memory Management
# Manual Memory Management
# Garbage Collection
# Concurrency
# Thread Creation
# Parallelism
- Amdahl’s Law
Your program can only benefit from parallelism to the extent that its tasks are parallelizable $$S=\frac{1}{1-p}$$ p is the fraction of the program that can be parallelized.