현재 주로 쓰고 있는 언어는 파이썬(간단한 스크립트부터 웹 개발까지 다양)과 D(static한 것이 필요하거나 큰 프로젝트일 경우)입니다. 두 언어 모두 수천줄 이상의 프로젝트를 몇 개 짜 봤습니다.
C와 C++는 회사 일부터 시작해서 게임이나 자체 템플릿 라이브러리(이것도 만들다 말다 만들다 말다... 해서) 같은 것들을 만들어 봤네요. 이런 저런 용도로 많이 쓰고 개발도 많이 해 봤는데 그다지 편하다는 느낌은 못 받았습니다. 제가 D에 끌린 것도 비슷한 이유 같고요. C#은 문법만 대강 알고, Objective-C는 레퍼런스 봐야 다룰 수 있습니다;
루비는 필요하면 대강 다룰 수 있고, 언어 개발에서 이리 저리 참고했습니다만 자유롭게 갖고 놀 수준은 아닙니다. PHP는 웹 개발에 중점적으로 쓰고 그 이상으로는 절대 쓰지 않습니다. 자바스크립트는 필요할 때마다 잘 쓰고 있지만 별도의 라이브러리를 잘 안 갖다 쓰는 경향이 있습니다. (prototype을 요구하는 라이브러리 때문에 갖다 쓴 적은 있습니다.)
자바는 심각하게 안 해 봐서 Swing이나 JSP 정도 쓸 수 있는 만큼만 하고, 그 이전에는 비주얼 베이직(.NET 말고)을 RAD 용도로 사용했습니다. 델파이도 먼 옛날에 배웠는데 요즘은 안 써서 다 잊어 버렸습니다. 루아는 스크립팅 용도로 C++에 붙여서 좀 써 봤고 내용은 모두 알고 있습니다.
다른 패러다임을 가진 언어로 넘어 가면 스펙트럼이 좀 좁습니다. OCaml은 콘솔 프로그램이라면 어느 정도 만들 수 있지만 딱 그 정도까지고, 하스켈은 배우다가 모나드의 불편함에 좌절한 상태입니다. 프롤로그는 대강 써 본 적은 있지만 심각하게 써 보진 못 했네요. SQL은 필요할 때 쓸 수는 있고 데이터베이스 설계도 대강 대충 합니다만 결정적으로 SQL을 쓸 일이 많지 않습니다. O<-<
난해한 프로그래밍 언어로 넘어 가면 최소한 20개 정도의 언어는 다뤄 봤고 그 중 몇 개는 직접 인터프리터를 짜 봤습니다. 물론 그 중에서 가장 많이 써 본 것은 Befunge 류입니다만 그것도 몇 년 된 일이네요. 아, 아시는 분은 아시지만 저는 버섯이라는 난해한 프로그래밍 언어를 만들고 아희의 개발에 참여한 바 있습니다. 흑역사인듯...
이 밖에 배웠다 까먹었거나 정확히 스펙만 알고 있는 언어로는 FORTRAN 77이나 Boo나 Groovy나 리스프 방언(특히 Scheme)이나 Io나 뭐 그런 것들이 있습니다만 이건 접한 언어로 치기는 좀 그렇네요.
Scheme, CommonLISP, Squeak(Smalltalk), Haskell, Ocaml, Erlang, Lua, Tcl(-_-;;; 은근 재밌답니다;;;), Dylan, Groovy, Boo, Scala, D도 좀 개인적으로 했었;;;
음;;; 어쩐지 적어놓고 보니까 편력기네요;;; 엄청 찝쩍거렸던듯;;;
다시 갖고 놀라면 펄이랑 Factor정도일거 같고.
뭘 할때 임팩트가 컸냐고 여쭤보시면
C : GW-BASIC하다가 넘어와서 직교적으로 그렇게 강력한 많은일들(포인터연산, 함수포인터)을 할수있다는게 좋았던거 같아요.
Ruby : 객체지향은 클래스가 꼭 있어야 하고 그렇게만 생각하다가(리습이나 CLOS같은것도 모르고 그럴때) 믹스인이나 당시에는 강력했던(지금도 그렇지만) RTTI(이렇게 표현할게요;;; 당시 C++에서 넘어왔던 상태였으니까;;;)가 감동적이었던거 같아요. 그리고 지금도 block이나 그런 부분은 참 멋진거 같아요.
CommonLISP : 우왕... 없는건 뭐얌? 바인딩이나 스코프 같은 부분은 대부분의 언어들이 그 부분집합만을 수용하는데 반해서 위키피디아의 해당 페이지를 보는듯한 느낌으로 전부 수용하는점이라든지 뭐 그런;;; 프로그래밍언어에 관심이 많았던 저로서는 나름 그런것들의 집대성으로 느껴졌었던...
Ocaml : Haskell 이전에 공부했어서 타입시스템이 충격이었던거 같아염.
Factor : 어떤 언어를 공부하고 사용하다보면 어느 순간엔가 언어에 따라서 재사용의 단위나(자바라면 클래스/인스턴스정도겠고, C라면 함수나 구조체 정도겠죠...) 결합의 가능성에 따라서 granularity의 편차도 있겠지만 적정한 응집의 단위나 그런게 어느정도 결정이 나버리는것 같은데요.(루비를 사용하면 어느 순간 do...end 블럭이 참 많다는 생각이 들기도 하고 뭐 그런) 계속해서 블럭들을 쌓아올리는게 가능하다는 생각이 들었던거 같아요.
OCaml : 강력한 패턴 매칭을 사용한 컴파일러를 만들어볼려고 배우고 있는 중인데, IO및 String관련 사용법이 익숙치가 않아서 버벅대고 있는 언어네요…
Erlang : 분산처리시스템에도 관심이 많은지라 현재 분산처리를 이용한 프로젝트와 VM의 ByteCode를 Machine Code로 바꾸는 프로젝트를 진행중입니다. (예전부터 구상하던 건데 MS Research의 Singularity에서 구현해놓은 bartok인가 정확한 이름은 기억안나는데 여기에 필을 받아서) 현재 Scala와 함께 가장 Feel(?)이 꽂혀있는 언어입니다.
COBOL, Fortran : 정보처리기능사2급자격증땜시…(Fortran은 다시 해보고 싶은 언어이긴 합니다만…)
GW-BASIC : 이 언어와 함께 초등학교4학년부터 6학년까지를 보냈다는 … 쿨럭…
Scheme(& LISP) : 개인적으로 SICP책을 통해서 접했던 언어인데, 단순하면서도 복잡하고, 그러면서 그 표현능력에 감탄을 금치못하고 있는 언어입니다. 대신 알면 알수로 심오한 듯해서 아직도 헤메고 있는 중이긴 하지만요… 언젠간 이 언어로 프로젝트를 진행해 보고 싶다는…
PHP, JavaScript : Web Programming… Python : 그냥 다를 줄 아는 정도?? Web Crawler를 만들려고 배우고 있는 중입니다.
C++: Java보다 1년 늦게 시작했긴 하지만 초등학교 입학과 함께 다루기 시작한 언어이고 고향같이 느껴집니다. 포인터 이해하는 데는 시간이 거의 안 걸렸는데 상속과 동적 바인딩(virtual 키워드) 개념을 이해하는 데 1년 조금 넘게 걸린 것 같습니다. 아무래도 개체지향과 안 친한가 봐요.
Java: JavaScript와 함께 2001년에 시작했지만 C/C++로 갈아탄 뒤 별 신경 안 쓰다가 2005년 대전과학고에서 청강했던 KAIST CS101 AP 때 Java를 사용했던 관계로(http://kldp.org/node/59296) 다시 조금 쓰고 있습니다. KSASF 2008 정보과학 주제탐구에서도 가위바위보 AI 작성용으로 Java+TextPad를 주더군요. (Eclipse를 보통 선호하는데 말이죠. 무거워서 그런가...)
x86-16/32/64 Assembly: int를 제외한 모든 built-in class를 제외한 Java만큼은 편합니다.
Lua/Squirrel: 빠르게 프로그램을 짤 필요가 있으면 사용합니다.
JavaScript: Lua/Squirrel 인터프리터가 없을 때 Lua/Squirrel과 같은 용도로 사용합니다. 사실은 제가 Lua/Squirrel보다 JavaScript를 7년 더 오래 사용한 관계로 JavaScript를 사용해 대부분의 스크립팅 작업을 처리하는 편입니다.
Python/Ruby: 아주 대충 아는 수준입니다.
GW-BASIC: 초등학교 3학년 때 MS-DOS 6.2 한글판, 한글윈도우 3.1과 함께 사용했었습니다. 그냥 고대자료 수집적 괴취미였는데 그 때 Turbo C 1.5와 Turbo Pascal 4.5를 썼던 것으로 기억합니다.
PHP4/5: 초등학교 2학년 또는 3학년 때 처음 접한 것 같습니다. 영진출판사에서 나온 "PHP4 30일 완성"이라는 책으로 시작했습니다. 최근에 마지막으로 만진 건 http://cppig1995.n-pure.net/tszx/cd.php 때문이고(PHP 5 + GD), 게시판이나 그런 건 코딩 안 해봤습니다. 그래서 물론 대충밖에 못합니다.
일단 바로 생각나는 것만 적었습니다.
위에서 웹 페이지 수집기라는 것은 주로 제가 필요해서 특정 사이트를 긁는 것들을 말합니다. 예를 들면 디시인사이드 모 갤러리용 RSS를 만든다던가, 웹툰들을 모아서 본다던가 하는…;
맨 마지막 두 항목에 위치한 언어들로 뭔가 재밌는 것들을 많이 해보고 싶군요.
현재 주로 쓰고 있는 언어는 파이썬(간단한 스크립트부터 웹 개발까지 다양)과 D(static한 것이 필요하거나 큰 프로젝트일 경우)입니다. 두 언어 모두 수천줄 이상의 프로젝트를 몇 개 짜 봤습니다.
C와 C++는 회사 일부터 시작해서 게임이나 자체 템플릿 라이브러리(이것도 만들다 말다 만들다 말다... 해서) 같은 것들을 만들어 봤네요. 이런 저런 용도로 많이 쓰고 개발도 많이 해 봤는데 그다지 편하다는 느낌은 못 받았습니다. 제가 D에 끌린 것도 비슷한 이유 같고요. C#은 문법만 대강 알고, Objective-C는 레퍼런스 봐야 다룰 수 있습니다;
루비는 필요하면 대강 다룰 수 있고, 언어 개발에서 이리 저리 참고했습니다만 자유롭게 갖고 놀 수준은 아닙니다. PHP는 웹 개발에 중점적으로 쓰고 그 이상으로는 절대 쓰지 않습니다. 자바스크립트는 필요할 때마다 잘 쓰고 있지만 별도의 라이브러리를 잘 안 갖다 쓰는 경향이 있습니다. (prototype을 요구하는 라이브러리 때문에 갖다 쓴 적은 있습니다.)
자바는 심각하게 안 해 봐서 Swing이나 JSP 정도 쓸 수 있는 만큼만 하고, 그 이전에는 비주얼 베이직(.NET 말고)을 RAD 용도로 사용했습니다. 델파이도 먼 옛날에 배웠는데 요즘은 안 써서 다 잊어 버렸습니다. 루아는 스크립팅 용도로 C++에 붙여서 좀 써 봤고 내용은 모두 알고 있습니다.
다른 패러다임을 가진 언어로 넘어 가면 스펙트럼이 좀 좁습니다. OCaml은 콘솔 프로그램이라면 어느 정도 만들 수 있지만 딱 그 정도까지고, 하스켈은 배우다가 모나드의 불편함에 좌절한 상태입니다. 프롤로그는 대강 써 본 적은 있지만 심각하게 써 보진 못 했네요. SQL은 필요할 때 쓸 수는 있고 데이터베이스 설계도 대강 대충 합니다만 결정적으로 SQL을 쓸 일이 많지 않습니다. O<-<
난해한 프로그래밍 언어로 넘어 가면 최소한 20개 정도의 언어는 다뤄 봤고 그 중 몇 개는 직접 인터프리터를 짜 봤습니다. 물론 그 중에서 가장 많이 써 본 것은 Befunge 류입니다만 그것도 몇 년 된 일이네요. 아, 아시는 분은 아시지만 저는 버섯이라는 난해한 프로그래밍 언어를 만들고 아희의 개발에 참여한 바 있습니다. 흑역사인듯...
이 밖에 배웠다 까먹었거나 정확히 스펙만 알고 있는 언어로는 FORTRAN 77이나 Boo나 Groovy나 리스프 방언(특히 Scheme)이나 Io나 뭐 그런 것들이 있습니다만 이건 접한 언어로 치기는 좀 그렇네요.
저는 C/C++/Java/Haskell 말고는 다 장난감이었네요.
Perl/Python/Ruby는 웹게임만들려고 뒤적거렸고,
Scheme/Lisp은 언어만들려고 뒤적거렸고,
Prolog/Lambda-Prolog는 논문쓰려고 뒤적거렸고,
PHP/Javascript는 게시판 만들려고 뒤적거렸고,
Pascal, Fortran, Smalltalk, Objective-C, Lua, Erlang, Clean은 겨우겨우 책이나 튜토리얼 따라해본 정도?
살펴보니 뭐하나 제대로 한 게 없군요.
Java : 웹 개발. (SpringFramework,일할때)
Ruby : RubyOnRails (간단한 웹 애플만들면서 놀때,자유롭게 다루거나 라이브러리를 a만들어 본적은 없음)
Python : 비동기 IO 가지고 논적이 있음. 데코레이터 나올때부터 공부를 안했음.
PHP : 웹 개발 (일할때,100% PHP 4!!;;)
Scala : 공부중. (아직도 뭐가 몬지 모르겠ㅇㅁ. @_@)
erlang : 쉘에서 컴파일 된다는 이유로 공부 할려고 함 (하나도 모르겠다는. @_@)
Basic , Fortran : 중학교때 학원에서. --; (전혀 기억 안남)
C,어셈블러 : 대학때 마이크로프로세서 과목때 잠깐.;
JavaScript : prototype-based, 역시 일할때.
Objective-c : Hello Mac 정도 예저 타이핑.
Lisp : elisp (예전 emacs사용할때 잠깐 책보고 쳐봄.=_=)
smalltalk : squeck by example 읽다가 지쳐 포기함. -_-
적다가 보니 제대로 할수 있는게 없군요. 대개 하나는 무지 잘하고 나머지는 여러개 아는 좋은데. 뭐 하나 잘하는 거 없고. 많이 알지도 못하궁. T_T
음;;; 이것저것 손덴건 많네요;;; 그냥 요즘엔 개인적으로는 펄에, 회사일은 자바랑 액션스크립트(플렉스), 글고 파이썬에 정착해서 지내는듯... (회사일도 펄로 스크립팅해서 지탄;;;)
Scheme, CommonLISP, Squeak(Smalltalk), Haskell, Ocaml, Erlang, Lua, Tcl(-_-;;; 은근 재밌답니다;;;), Dylan, Groovy, Boo, Scala, D도 좀 개인적으로 했었;;;
음;;; 어쩐지 적어놓고 보니까 편력기네요;;; 엄청 찝쩍거렸던듯;;;
다시 갖고 놀라면 펄이랑 Factor정도일거 같고.
뭘 할때 임팩트가 컸냐고 여쭤보시면
음... 편력기 맞네;;;
C : 현재 업이 임베디드 단말에서의 개발이라 가장 많이 사용하고 있는 언어이죠… 또한 수치해석쪽 일도 이 언어를 가지고하고 있습니다.
C++ : 예전에 암호학쪽의 코딩을 이쪽으로 하고 있지만, 개인적으로 OOP개념이랑 저랑 안맞는 듯 해서 실력은 단순히 다룰줄 안다 정도 인 듯 하네요 ㅋ
ASM : 임베디드 단말이 업이고 디버깅할려면 어셈을 알아야 해서… 그리고 컴파일러에 관심이 많아서 이쪽은 왠만큼은 자신있다고 생각은 ‘했습니다만’… 다른분들이 Assembly코드만 놓고 생각지도 못한 최적화를 할때 보면… 좌절을 금치 못합니다.ㅠ.ㅠ
C#, Java : 이건 단순히 다루어본 정도…(Java로는 개임을 만들려고 배웠다는 ㄷㄷ)
Scala : 꽤 재미있는 언어라는 생각이 드는 언어라서 배우고 있는 중입니다.
OCaml : 강력한 패턴 매칭을 사용한 컴파일러를 만들어볼려고 배우고 있는 중인데, IO및 String관련 사용법이 익숙치가 않아서 버벅대고 있는 언어네요…
Erlang : 분산처리시스템에도 관심이 많은지라 현재 분산처리를 이용한 프로젝트와 VM의 ByteCode를 Machine Code로 바꾸는 프로젝트를 진행중입니다. (예전부터 구상하던 건데 MS Research의 Singularity에서 구현해놓은 bartok인가 정확한 이름은 기억안나는데 여기에 필을 받아서) 현재 Scala와 함께 가장 Feel(?)이 꽂혀있는 언어입니다.
COBOL, Fortran : 정보처리기능사2급자격증땜시…(Fortran은 다시 해보고 싶은 언어이긴 합니다만…)
GW-BASIC : 이 언어와 함께 초등학교4학년부터 6학년까지를 보냈다는 … 쿨럭…
Scheme(& LISP) : 개인적으로 SICP책을 통해서 접했던 언어인데, 단순하면서도 복잡하고, 그러면서 그 표현능력에 감탄을 금치못하고 있는 언어입니다. 대신 알면 알수로 심오한 듯해서 아직도 헤메고 있는 중이긴 하지만요… 언젠간 이 언어로 프로젝트를 진행해 보고 싶다는…
PHP, JavaScript : Web Programming… Python : 그냥 다를 줄 아는 정도?? Web Crawler를 만들려고 배우고 있는 중입니다.
정도네요 ㄷㄷ
C++: Java보다 1년 늦게 시작했긴 하지만 초등학교 입학과 함께 다루기 시작한 언어이고 고향같이 느껴집니다. 포인터 이해하는 데는 시간이 거의 안 걸렸는데 상속과 동적 바인딩(virtual 키워드) 개념을 이해하는 데 1년 조금 넘게 걸린 것 같습니다. 아무래도 개체지향과 안 친한가 봐요.
Java: JavaScript와 함께 2001년에 시작했지만 C/C++로 갈아탄 뒤 별 신경 안 쓰다가 2005년 대전과학고에서 청강했던 KAIST CS101 AP 때 Java를 사용했던 관계로(http://kldp.org/node/59296) 다시 조금 쓰고 있습니다. KSASF 2008 정보과학 주제탐구에서도 가위바위보 AI 작성용으로 Java+TextPad를 주더군요. (Eclipse를 보통 선호하는데 말이죠. 무거워서 그런가...)
x86-16/32/64 Assembly: int를 제외한 모든 built-in class를 제외한 Java만큼은 편합니다.
Lua/Squirrel: 빠르게 프로그램을 짤 필요가 있으면 사용합니다.
JavaScript: Lua/Squirrel 인터프리터가 없을 때 Lua/Squirrel과 같은 용도로 사용합니다. 사실은 제가 Lua/Squirrel보다 JavaScript를 7년 더 오래 사용한 관계로 JavaScript를 사용해 대부분의 스크립팅 작업을 처리하는 편입니다.
Python/Ruby: 아주 대충 아는 수준입니다.
GW-BASIC: 초등학교 3학년 때 MS-DOS 6.2 한글판, 한글윈도우 3.1과 함께 사용했었습니다. 그냥 고대자료 수집적 괴취미였는데 그 때 Turbo C 1.5와 Turbo Pascal 4.5를 썼던 것으로 기억합니다.
PHP4/5: 초등학교 2학년 또는 3학년 때 처음 접한 것 같습니다. 영진출판사에서 나온 "PHP4 30일 완성"이라는 책으로 시작했습니다. 최근에 마지막으로 만진 건 http://cppig1995.n-pure.net/tszx/cd.php 때문이고(PHP 5 + GD), 게시판이나 그런 건 코딩 안 해봤습니다. 그래서 물론 대충밖에 못합니다.