Introduction
Another important decision in software development is choosing the level of abstraction in your programming language. Do you want to be working near the machine or up high and away? Let’s review when it might make sense to pick one over the other.
Use Cases for Low-Level Languages
Low-level languages are ideal for:
- Embedded systems (such as microcontrollers in IoT devices)
- Operating systems and drivers
- Gaming engines requiring high performance
- Memory-critical applications
Example:
Linux kernel is in C because it provides both high level control and good abstraction.
Use Cases for High-Level Languages
High-level languages are optimal for:
- Web development
- Business software
- Machine learning and data science
- Mobile and desktop apps
Example:
Instagram has chosen python for backend services because of fast pace of development and maintainability.
Performance vs Productivity
- Low-level = Performance
- High-level = Productivity
When forcing your app to every last bit of efficiency (like me in robotics) go low. If development velocity and scale matter, go high.
Conclusion
Low-level code is useful as well high-level code. The challenge is understanding what your project is asking for and responding appropriately.
