순수객체지향프로그래밍 언어의 대명사
1989년 네덜란드 개발자 귀도 반 로섬 에 의해 개발되어 1991년도 발표.
크리스마스 주에 할게 없어서 심심해서 만들었다고 전해진다.
최근에 만들어진 언어라고 생각하는분들이 많은데 개발된지 30년이 넘어감 인기가 올라간게 최근, 인프리터 방식으로 구동된다.
함수지향형 명령지향형 객체지향형 기반의 멀티 프로그래밍언어
넷스케이프 사에서 개발한 언어로 1995년 자사의 넷스케이프 2.0B3 버전에서부터 시작해서 발전되어왔다.
최초에는 Java랑 구문이 비슷하여 혼란이있었으나 전혀 관계없다. 다만 두 언어 다 C언어의 구문에 영향을 받았기때문에 초기에는 비슷한점이 있었다.
코드들을 컴파일해서 실행파일로 만들어서 사용하지 않고 인터프리터가 차례로 읽어내려가며 실행시키는 언어
python : 파이썬 인터프리터
javascipt : 웹브라우저 엔진
동적타입언어: 런타임 시작시에 변수타입을 결정하는 언어
(대표적인 언어 : Python, JavaScript, Ruby, Objective-C, PHP 등)
- 장점 : 런타임전까지 변수타입에 대한 결정을 하지 않아 유연성이 높고 변수타입일일이 명시해주지 않기때문에 빠르게 작성가능.
- 단점 : 런타임하기전에는 변수타입에 대한 오류를 발견할 수 없다.
정적타입언어 : 컴파일 하기전에 변수타입을 미리 결정하는 언어
(대표적인 언어 : Java, C, C++, C#, Scala 등)
- 장점 : 변수타입에 대한 오류를 미리 발견할 수 있고, 컴파일전에 미리 변수타입을 결정하기때문에 속도가 빠르다.
- 단점 : 코드작성시 일일이 변수타입을 결정해야 함으로 번거로움이 있다.
- Python : 공백에 민감하다.
- Js : 공백이 아무상관없다. 다만 ;(세미클콜)으로 구문을 구분한다.
- Python: 백엔드 분야에서 다양한 라이브러리(djano,flask 등)를 이용해 많이쓰이지만 프론트엔드에서는 잘 사용되지않는다.
- JS: 웹/모바일 개발에 있어서 프론트엔트(react) 백엔드(Node.js) 가리지않고 모두다 사용한다.
- Python: 비동기프로그래밍을 지원하지 않아 코드의 순서대로만 실행가능하다
- JS : WEP API엔진으로 인해 비동기 프로그래밍을 지원한다. 비동기 프로그래밍의 지원여부에 따라 속도차이가 있다.
- Python: 일반인에게 배포하기 어렵다.
(파이썬이 설치되어있는곳에서 실행가능)- JS: 일반인에게 배포하기 쉽다.
(브라우저만 있으면 실행가능)
- Python:파이썬 자체에 모듈들을 활용해 디버깅이 매우 우수하다.
(상세한 오류내용과 위치를 표시해준다)- JS: 각 브라우져의 개발자도구의 도움을 받아야한다.