05/29 제33회 빅데이터 분석전문가 오픈세미나 발표자료
제목 : "Programming Language의 변화를 통해 바라본 Python의 미래"
발표요약
- 언어의 변천사를 통해 바라본 Python의 가능성을 살펴보고, 이를 통해 현 시점에 우리가 가져야 할 언어를 바라보는 관점에 대해 논해보고자 한다.
- 그리고 기존 Control Flow에 적합한 절차적 언어 대신 현재 Data Flow개념의 언어가 출현하게 된 배경에 대해 설명하고 이에 Python이 각광받게 된 시대적 흐름에 대해 발표해 보고자 한다.
- 프로그래밍 언어의 변천사를 통해 언어가 각광받게 된 시대적 배경과 왜 그 언어를 사용하게 되었는지에 대한 개발자 및 사용자 관점에 대해 살펴보고, 앞으로 시대에서 우리는 프로그래밍 랭귀지에 대해 어떻게 접근해야 할까에 대해 구체적으로 발표하고자 한다.
6. 개발자 개발연도 소속 기타
파이썬 Guido van Rossum 1989년 CWI(네덜란드)
자바 James Gosling 1990년 Sun Microsystems 오픈소스
C++ Bjarne Strousup 1983년 AT&T Bell Labs
루비 Yukihiro Matsumoto 1995년 오픈소스
자바스크립트 Brendan Eich 1995년
Netscape Communic
ations Corporation.
C# Anders Hejlsberg 2000년 마이크로소프트
PHP Rasmus Lerdorf 1996년 오픈소스
펄 Larry Wall 1987년 UNISYS
스칼라 Martin Odersky 2003년 EPFL(스위스) ERC 지원금
오브젝티브 C Tom Love, Brad Cox 1983년 Stepstone(이후 애플)
▲ 가장 많이 쓰이는 프로그래밍 언어의 등장 시기와 개발자 소속(위키피디아 참조)
23. # -*- coding: utf-8 -*-
import requests as rs
import bs4
import time
def getTopRank():
naver_url = 'http://www.naver.com'
response = rs.get(naver_url)
html_content = response.text.encode(response.encoding);
navigator = bs4.BeautifulSoup(html_content)
realRankTag = navigator.find_all(id='realrank')
resultList = realRankTag[0].find_all('a')
keywords = [item['title'] for item in resultList]
print '============='
print time.ctime()
for index, keyword in enumerate(keywords):
resultText = '[%d위] %s'%(index,keyword.encode('utf-8'))
print resultText.decode('utf-8').encode('utf-8')
print ''
daemon_flag = True;
def Daemon():
while (daemon_flag):
getTopRank();
time.sleep(5)
if __name__ == '__main__':
Daemon()
참고 URL : https://github.com/qwefgh90/Web_Crawler
Notes de l'éditeur
*Fortran : 포트란은 IBM에서 최초로 만든 고급언어(High-level language;사람이 이해할 수 있는)이다. 세계 최초의 프로그래밍 언어는 아니고 IBM이라는 회사가 만든 언어중 첫번째 인 것이다.
이것은 초기 컴퓨터의 수요가 있었던 우주항공 분야를 위해 만들어진 언어이며 일반인들이 이해하기 어렵다는 단점도 있었다.
현재 기상관측, 탐사, 우주항공, 양자, 천문학, 동역학등의 분야에서 쓰이는 언어이다. 현재 최신버전은 Fortran 2008이다.
*Cobol : 코볼은 미국 국방부로 납품되는 프로그램들의 언어가 제각각이어서 이에 대한 문제를 해결하고자 만든 언어이다.
Cobol 이 개발되고 미국 행정부에 납품되는 언어는 모두 Cobol로 통일되었다. 사무 행정처리용 언어이다. 현재 최신버전은 Cobol 2002이다.
*Algol 60 : 미국 Fortran에 대항하기위해 유럽에서 만든 언어이다. Precise syntax(올바른 문법이란 무엇인가에 대해 정확하게 정의)를 구현한 최초언어. Algol계열 언어는 현재는 사용되지 않는다.
*PL/I : 프로그래밍 랭귀지 1 이라고 읽는다. Fortran과 Cobol과 Algol을 통합해서 만든 언어이다. 모든 분야에서 어우러져 사용할 수 있는 범용언어를 만든것이다.
하지만 금방 망해버렸다. 아무래도 특정 분야에서 그 분야에 적합한 언어를 사용하는 것이 좋았고 사람들은 이미 각자의 고급화된 언어에 익숙해져 있었다.
*Simula : 객체지향 개념을 최초로 적용한 언어이다.
*Smalltalk : 객체지향 개념을 최초로 완벽구현한 언어이다.
*HCPL : 유닉스 시스템을 관리할 용도로 개발된 언어이다. 이후 C 언어 디자인에 영향을 끼쳤다.
*C++ : C 언어에 객체지향 개념을 더한 언어이다.
*awk : C 언어를 스크립트 방식으로 변경한 언어이다. 스크립트 방식으로 개발하면 유닉스를 더 간편하게 관리할 수 있을 것 같아서 개발된 언어이다.
Perl, PHP, Python 언어 디자인에 영향을 끼쳤다.
*Lisp : 인공지능 분야에서 사용하기 위해 개발된 함수형 언어이다. 최초로 이 언어를 사용해서 만들고자한 것은 자동번역기였다.
*SEQUEL : Structured English QUEry Language 라는 뜻의 약어이며 구조화된 영어 쿼리 언어라고 해석할 수 있다. IBM에서 자신들이 운영하는 관계형 데이터베이스를 다루기위해서 만든 언어이다. Sequel이라는 단어가 영국 항공사와 이름이 겹쳐서 나중에 SQL로 명칭이 변경되었다.
요즘 흔히 쓰이는 MYSQL을 라엘이는 “마이 에스 큐 엘” 이라고 부르지만 일부사람들은 이 SEQUEL의 단어를 사용해서 “마이 시퀄”이라고 읽기도 하더라.
엑셀은 대표적인 Reactive Programming
순서대로 실행될 명령들이 아닌, 데이터가 흐르는 방법을 나타내는 것
독립적인 여러 개의 작업 단위 + 데이터의 흐름
R의 문법과 통계처리 부분은 AT&T 벨 연구소가 개발했던 S를 참고했고, 데이터 처리부분은 스킴에 영향을 받았다.
R은 다양한 통계 기법과 수치 해석 기법을 지원한다. R은 사용자가 제작한 패키지를 추가하여 기능을 확장할 수 있다. 핵심적인 패키지는 R과 함께 설치되며, CRAN(the Comprehensive R Archive Network)을 통해 2006년 현재 700개 이상의 패키지를 내려 받을 수 있다.
R의 또다른 강점은 그래픽 기능으로 수학 기호를 포함할 수 있는 출판물 수준의 그래프를 제공한다.
R은 통계 계산과 소프트웨어 개발을 위한 환경이 필요한 통계학자와 연구자들 뿐만 아니라,
행렬 계산을 위한 도구로서도 사용될 수 있으며 이 부분에서 GNU Octave나 MATLAB에 견줄 만한 결과를 보여준다.