언어 별 concept, philosophy
TBA
When learning a new language, it is important to keep in mind why you are trying to learn that language and the advantages that language has over others.
The study would become much more efficient if we focus on the unique characteristic/advantage that language has. And it's also important to know the downside of the language, what it can do and what it can't.
C/C++
- Give users freedom to handle the memory - 동적 할당 자유로움
- C++ is a superset of C
Java
- Universal; Runs everywhere, on JVM, regardless of the host machine
- Built as Object Oriented in the first place
- Abstracted memory allocation (no dynamic allocation like C/C++) + Garbage collection
Python
- Dynamic typing
- Flexible grammar (ex. string multiplication, list concat with +, flexible casting btw data types) - low learning barrier for the beginners to learn how to write down their thoughts into the code
- Wide variety in data science/ML frameworks/library (❗ 차이 공부)
JS
- Script that runs on the web
- Dynamic typing, and seems as flexible as Python (❗ maybe not)
- Specialized in web server & client dev
+ nowadays supporting desktop/app dev too? (Electron, React Native)
TS
- Enforcing static typing on JS - preventing errors when working with large web project
Rust
- C/C++ successor?
- Ownership
Go
- Multi-processing?
Ruby
- Server framework - Ruby on Rails
Scheme, OCaml
- functional programming (higher order functions, first-class functions, lazy eval... ❗PL 복습?)
'<기타 공부> > [기타 프로그래밍 및 범용 CS]' 카테고리의 다른 글
[Linux] user관리 (0) | 2022.04.22 |
---|---|
[Linux] shell script #!/bin/sh - Bash shell vs dash (0) | 2022.04.22 |
(언어별) Immutability 정리 (0) | 2022.01.29 |
(언어별) Pass-by-value, Pass-by-reference 정리 (0) | 2022.01.26 |
[Linux] Git Bash에 man 추가 - bashrc, bash_profile 개념 (0) | 2022.01.13 |