언어 별 concept, philosophy

2022. 4. 21. 10:13

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 복습?)

+ Recent posts