상황에 따라 사용하기 좋은 프로그래밍 언어도 있을까?
상황에 따라 사용하는 자료구조가 달라지듯이, 사용하는 언어 자체가 달라지는 경우 역시 있다.
플랫폼 제약에 따른 언어 선택:
- iOS -> Swift
- Android -> Kotlin, C#
- iOS & Android -> React Native, Electron, Flutter
도메인(분야)에 따른 언어 선택:
- Web -> JavaScript, Rails (Ruby), DJango (Python)
- Game -> C++, C#
문제 해결에 필요한 기능이 내장되어 있는가에 따라 언어의 선택이 바뀔 수도 있다. 예를 들어 Big integer가 필요한 경우, C/C++에는 해당 기능이 없어서 직접 구현해야 한다. 하지만 Ruby, Python, JavaScript, 등등의 언어에서는 이미 해당 기능이 구현되어 있어 바로 사용이 가능하다.
자료구조 역시 비슷한 경우인데, C의 경우는 웬만한 자료구조는 전부 직접 구현해야 한다. 하지만 C++에는 vector
, map
, set
, priority_queue
, 등의 자료구조가 STL로 제공이 되고 있고, JavaScript, Java, Ruby, Python, 등의 고수준 언어에도 대부분의 자료구조가 내장되어 있다.
그 외에도 하드웨어나 커널 관련이라면 C언어, 메모리 관리를 직접 해야 한다면 C/C++, 통계 관련으로 많이 사용한다면 Python, R, Jupyter Notebook, 등 수많은 이유가 있을 수 있다.
확장 🌱
- 프로그래밍 언어가 아닌, 사람의 언어의 경우는 어떨까?
- C언어는 왜 자료구조를 제공하지 않을까?
- STL이 제공하는 자료구조들은 최적화 되어 있을까?
- 내장되어 있는 기능을 잘 쓰면 되지 굳이 자료구조의 내부 동작 원리를 알아야 할까?
관련 노트 📘
- 240610164501 - 모든 상황에 완벽한 성능을 보장하는 자료구조는 없다