프로그래밍에는 많은 언어들이 만들어지고 사용되고있다.
언어들은 각각 용도에 특성화되어있다
C언어
벨연구소에 서일하던 데니스 리치가 유닉스 체제에서 사용하기위해 개발하였다.
원래 데니스 리치랑 같이 일하던 켄 톰슨 이라는 사람이 자기이름을 딴 B언어을 만들었는 이것을 개선하여 C언어로 리치가 만들었다고한다.
유닉스 시스템의 바탕은 C로 작성되어있고 , 대부분 운영체제의 커널도 C언어로 만들어졌다.
C++은 C언어에서 객체 지향형으로 만들어졌다.
이떄문에 오늘날에 널리쓰이는 운영체제 커널이 C로 만들어지게되었다
C는 시스템 개발에 적합하지만 , 응용프로그램에도 사용이 됩니다
C++
1980년대에 규모가 큰프로그램의 복잡성 관리를 위해 만들어진언어
벨연구소에서 일하던 비야네 스트롭스트롭 이 개발했다
C언어를 기반으로 만들어졌기 때문에 대부분의 C는 C++ 에서 컴파일 되지만 반대로는 그렇지 않다
객체지향 프로그래밍을 지원하지만, 대부분 객체지향언어는 많은 부분을 런타임에 처리하며 메모리를 처리하지만
C++은 많은 것을 컴파일 타임에 처리하는것을 지향한다.
오늘날 컴퓨터에서 사용되는 프로그램 대부분은 C나 C++로 작성되었다
자바
1990년 썬마이크로시스템즈에서 일하던 제임스 고슬링이 만들었다
원래는 유연성이 필요한 가전제품과 전자기기를 위한 임베디드 시스템이었지만,
이후 웹페이지로 쓰려다가 망하고, 웹서버에 많이 쓰이는중이다.
자바는 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여, 운영체제와는 독립적으로 동작할 수 있다.
자바의 특징
자바 언어가 가지는 장점
1. 자바는 운영체제와는 독립적으로 실행
2. 자바는 불필요한 기능을 과감히 제거하여 다른 언어에 비해 배우기가 쉽다.????
3. 자바는 자동 메모리 관리 등을 지원하여 다른 언어에 비해 안정성이 높다. 그래서 많이 쓰이는것 같다
4. 자바는 연산자 오버로딩을 금지하고 제네릭을 도입함으로써 코드의 가독성을 높임.
5. 자바에 관한 수많은 참고 자료를 찾을 수 있다.
자바 언어가 가지는 단점
1. 자바는 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느림.
2. 자바는 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함.
3. 자바는 다른 언어에 비해 작성해야 하는 코드의 길이가 김.
현재의 자바 상황
Java Runtime Environment 기반의 프로젝트에서는 하나의 언어만을 고집하지 않는다. 함수형 언어가 유리(최근 유행하는 빅데이터 등)한 부분은 Scala로 작업하며, 견고한 인터페이스와 대규모 통합이 필요한 곳은 Java로 작업한 뒤 이들을 서로 합쳐서 운영하는 게 가능하다. (Java에서 만든 객체를 Scala에서 그대로 사용할 수 있다.) 안드로이드 쪽에서는 크리티컬하지 않은 부분부터 Kotlin으로 코드를 교체하는 경우도 많아지고 있다.
안드로이드에서도 쓰이고, c보다 안전하다.
자바스크립트
1995년 넷스케이프에서 일하던 브랜던 아이크가 만듬
자바랑은 관련이 전혀없음.
웹페이지의 동적 효과를위해 브라우저 내부에서 사용하기위해 설계함
자바스크립트의 장점
- 언어가 단순함
- 컴파일러가 언어에 내장
- 계산결과를 바로 볼수있음
자바스크립트가 대박난 이유
Microsoft에서 1999년에 본래 아웃룩에서 쓰였던 IXMLHTTPRequest라는 이름으로 XMLHTTP wrapper로서 xml request 기능을 제공하기시작하였다 . 넷스케이프의 후예를 자처하는 모질라 재단에서도 이것을 2002년에 구현시켰다. 이후 주목 받지 못하고 있다가 구글에 의해 String 기반의 Data 전송 방식을 AJAX라는 이름으로 조합해 선보이면서 AJAX 인터넷 신세계가 열리고 말 그대로 대박이 났다.
파이썬
1991 년 암스트레담 CWI에 근무하던 귀도 반 로섬이 만듬
- 중괄호를 안쓰고 들여쓰기를 함 - 줄맞추기
- 가독성에 초점을 맞춘 설계
- 배우기가 쉬움
- 라이브러리를 풍부하게 제공함
- 결과작이 드롭박스, 구글앱, 유튜브 ,넷플릭스.
글쓴이는 배우거나 가르칠 언어하나를 고르라면 파이썬을 고른다고함.. 역시 북미사람
파이썬의 근황
엑셀자동화 , 파일처리자동화 , 웹 크롤링 자동화, 3D모델링 자동화 이외에 대부분 자동화가능 실사용률과 생산성도 높으면서 배우기도쉬움 이글을 읽으니 파이썬을 제대로 배워보고싶음...
마치며
- 모든언어는 모든 작업에 있어서 똑같이 효율적이지않다.
- 프로그래머 들처럼 언어도 각각의 전문성이있다.
- 1000개가 넘는언어가 만들어졌지만 효율성 표현력 안전성을 고려하여 만들어졌다
'TechKnowledge > CS관련지식' 카테고리의 다른 글
IT 지식 독서요약 47,51 자바스크립트와 파이썬은 어떻게 작동할까? (0) | 2022.06.13 |
---|---|
Web Server와 WAS의 차이 (0) | 2022.06.04 |
It 지식 독서 요약 14-프로세서는 무조건 빠른게 좋을까? (0) | 2022.05.24 |
IT 지식 독서 요약3 (0) | 2022.05.19 |
IT 지식 독서 요약 1부 (0) | 2022.05.17 |