Perl을 배워야 하는 이유

pung96의 이미지

Python을 배워야 하는 이유를 보고 왜 perl을 배워야 할까 고민을 해봤습니다.
Perl의 언어의 독특한 장점이라거나 장래에 대해서 심각하게 얘기하지는 못하겠지만
그러니까 왜 펄을 배워야 하는지는 어려운 문제지만 펄을 배워서 좋은 이유는 쉽게 설명할 수 있습니다.

아는 만큼 쓰면 그이상의 기능을 하니까

입니다.

특히 저를 포함한 많은 분들이 awk와 sed등을 대체하려고 perl을 배우셨을 거라고 생각합니다.
저는 제 연구분야 특성상 다량의 반복적인 리스트들을 관리해야 하는데 awk와 sed를 쓰는데 한계를 느껴서 perl을 시작하였고 지금은 대부분의 작업에 perl을 이용하고 있습니다.
최근에야 펄을 이용한 이런 저런 일에 관심을 가지고 공부하고 있지만 지금도 제 펄 사용의 60%는 커맨드라인에서의 사용이고 30%는 100줄 내외의 간단한 스크립트들입니다.

필 받은 김에 누구나 간단히 커맨드라인에서 바로 사용할수 있는 Perl 레시피를 모으고자 KLDPWiki:PerlCommandLineCookBook 을 만들었습니다.
생각날때마다 하나씩 추가해갈 생각입니다. 관심있는 분들의 성원 바라겠습니다.^^

gamdora의 이미지

음······.

한 줄에 모든 걸 끝내긴 힘든데,

그냥 “짧은 스크립트”정도는 안 되려나요? ^_^;;

aero의 이미지

더 많은 분들이 Perl을 널리 이해하고 사용하게 되는 계기가 되었으면 하네요.

Perl으로 대동단결! :)

gamdora의 이미지

그런데 위키 문서가 없는 듯 해요.

연결 주소도 이상한 듯 하고······. -_-;;

gamdora의 이미지

pung96의 이미지

수정했습니다. 감사^^

hokim의 이미지

HEP(High Energy Physics)에 입문하는 사람들에게
어떤 script 언어를 배우면 좋을지에 대해 질문이 들어오면
perl보다는 python이나 ruby를 배우기를 추천해주고 있습니다.
그이유는 DAQ에서 Data Analysis까지 현재 가장 많이 사용되고 있는
ROOT(root.cern.ch)가 공식적으로 python이나 ruby를 지원하지만
perl은 그렇지 못하기 때문입니다.
물론 많은 언어를 습득하는 것이 나쁠것은 없지만, 연구를 위해 컴퓨터언어를 배워하는
초심자들에게는 그것이 스트레스가 되는 것 같더군요.
저도 처음 대학원에 들어와서 좀 힘들어햇던 것이 포트란과 C++을 혼용해서 사용했던 때인지라
무엇을 핵심언어로 배워야 할지 고민했던 적이 있습니다.
컴퓨터언어를 배우는 것도 그 분야와 그 시대가 사용하는 주류가 무엇인가에 따라 많은 영향을
받는 것 같습니다. 그렇지만 한 언어에 대해 어느정도의 공력이 쌓이면 다른 언어에 관심을
두는 것은 적극 권장할만 하다고 생각합니다.

pung96의 이미지

HEP에 관련된 분의 수를 생각하면 꽤 민감한 얘기도 큰 플레임이 되긴 힘들것 같습니다.^^

저도 연구분야가 HEP쪽입니다(정확히는 Heavy Ion Physics 입니다.).
특히 파이썬의 중요성은 저도 인정합니다. 저도 최근에 파이썬을 공부하고있으니까요.
하지만 제 경우 새로 시작하는 후배들에게 Python을 이용한 연구분석 특히 root이용을 크게 권하지 않습니다.

대부분의 연구소의 소프트웨어 프레임웍이 기본적을 C++로 짜여져 있는데다가 (물론 root도 그렇지요) 제시각에 Pyroot가 그리 안정화 되어있는것 같지 않습니다. 그래서 Python을 이용해서 Analysis를 하는게 오히려 또다른 "삽질"이 된다고 생각하고 있습니다.

현재 HEP Analysis를 위한 가장 효율적인 도구는 C++인 것 같습니다.

최근 LHC의 Alice Software를 보면 (얼핏 봤습니다만) JAVA를 이용하고 있고 예정에 RHIC의 PHENIX software를 분석했을때 상당부분 PYTHON을 사용하고 있는 것을 본적이 있었습니다. 저도 JAVA를 이용한 분석에 꽤 관심을 가지고 있기 때문에 이러한 분위기를 환영하고 있습니다.

하지만 아직은 역시 C++과 포트란을 아는게 더 중요하겠죠^^.

제가 주로 PERL을 권하는 이유는 HEP분야에서는 많은 이벤트와 파일들을 관리햐야 하고 많은 파일을 양산하는 여러개의 스텝으로 이루어 있기 때문에 많은 파일과 긴 리스트를 관리하는 일이 Analysis 코드를 작성하는 것과 함께 중요한 일입니다. 이경우는 역시 Perl 만한 장사가 없겠지요. 제 후배가 Python 매니아라서 Python을 이용해서 이러한 코드들을 작성하고는 하는데 역시 코드는 이해하기 쉽더군요.
제가 이번에 이 위키페이지를 만든 것도 perl이 python보다 배우기 어렵다고는 하지만 간단한 일을 할 수 있는 간단한 코드 템플릿 들이 있다면 빠른 속도로 실무에 적용 할수 있지 않을까 해서 입니다.
예를 들어 100K개의 서로다른 파일 리스트가 2개가 있고 그 파일리스트에서 런 정보를 추출하여 어떤 파일들을 다시 생산하여야 하는지를 확인하고자 할때 wiki 에도 있지만 펄은 30초에서 수분내에 한줄짜리 코드를 만들어서 일을 해낼 수 있습니다. 다른 언어는 이정도의 생산성을 내기가 쉽지 않지요.

Python 자꾸 중요해지는데.. 별로 재미가 없어서 문제입니다.(이것이야 말로 제대로 플레임이죠^^)

추가: 실은 처음 온 후배들은 grep, awk와 sed를 먼저 가르치고 있습니다. 첨부터 perl을 권해주면 아예 감을 못잡더라구요^^

pung96의 이미지

또다른 추가입니다만.. 저는 root에서 python을 사용하는것 보다 cint에서 STL을 자유롭게 사용할 수 있기를 고대하고 있습니다. 물론 cint의 현 개발 상황이 아름답지는 않습니다만.

warpdory의 이미지

surface physics 지요. 세부전공은 electron emission ...

core (포트란) + I/O (C / C++) + front end(Java) 으로 구성된 툴을 많이 사용했었습니다.

후배들은 ... 패키지로 된 시뮬레이션 프로그램을 사용하더군요 T.T

---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.
http://akpil.egloos.com


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

pung96의 이미지

예전에는 물리학자들이 프로그램 까지 개발해야했었지만 요즘은 왠만한 HEP그룹에서는 전문 개발자나 개발자로 전향한 물리학자들에 의해서 메인 프로그램이 만들어지고 어떻게 하면 물리학자들이 쉽고 효율적으로 프로그램을 사용할 수 있냐를 중요시 여기는 것 같더군요.

저 역시 물리학자가 프로그래밍에 대해서 조금 알고 잘 사용할 수 있는 추세가 올바른 방향이라고 생각합니다.
물론 아직은 그런 후배가 늘어날 수록 고생하는 사람은 따로 있습니다만^^

aero의 이미지

특정 도메인영역마다 주도하는 사람들이 선호하는 언어가 있고 우세적으로 쓰이는 언어가 있기마련이죠
찾아보니 ROOT에 Perl을 바인딩하려는 사람들의 노력이 있기는 하군요.
http://root.cern.ch/phpBB2/viewtopic.php?p=7899
http://sarkar.home.cern.ch/sarkar/PerlRoot/
https://www.desy.de/~salvaire/root_wrapper.html

realcns의 이미지

perl, python, ruby에 관심이 생겼습니다. 사실 펄은 좀 예전부터?..

병특생활을 하면서 리눅스 서버들을 많이 다뤄보는 기회가 생겼습니다.
주로 많은 파일 리스트를 관리하거나 시스템관리시에도 AWK와 SED그리고 grep 과 egrep을 사용해서 모든 작업들을 진행하는데요.
지금 하는 업무량이라던가 필요기술 부분이 아직 제 선에서 해결할 수 있는부분이어서 그런지 크게 불편함은 없습니다만..

펄은 예전부터 왠지 동경의 대상이라고 해야 하나? 나중에 뭘 하더라도 꼭 배워둬야지 라는 생각을 항상 해두고 있었던 주 관심사의 언어였습니다. 그런데 펄 6에 관련된 이런 저런 이야기가(안좋은) 나오고 제가 펄에 대한 정보를 습득하는데(배우는데) 어려움에 있어서 아무래도 좀 힘들더라구요.

입문시에 언어에 좀더 접근하기 쉬운 가이드라인 같은게 있었으면 좋겠습니다.
최근엔 펄메니아 라는 좋은 곳을 알아서 열심히 들락날락 하고 있습니다.

펄때문에 고생을 하고 있는 와중에.. 펄은 넘 어려우니 다른걸 찾아볼까? 라는 생각이 들어서..
python과 ruby라는것에 대해 찾아보기 시작했습니다.

뭐 자세한건 몰라도, 두개의 언어는 입문시에 참조할만한 레퍼런스 북이라던가 그런것들이 있더라구요.
그리고 사용자층도 어느정도 있는 편이고, 그들 스스로 내세우는 부분중에 접근성에 용의하다(ex.초보가 배우기에 쉽다)라는 부분에 끌려서, 그쪽도 같이 볼까 합니다.

플레임성 글이 될듯 하지만..
(지금도 많은 좋은 글을 통해 배우고 있습니다.)
많은 perl,python,ruby개발자들께서 게시판에 perl VS python VS ruby "choice 배틀"을 해주셨으면 좋겠습니다.
(덜컥 부탁만 해드려서 죄송합니다. 검색을 해봤는데, 다들 각자언어에 대한 개별적인 글만 있을 뿐 통합적으로 적혀 있는 글은 없더라구요.^^;)

막연하게 비방을 하는것 보다는 어느정도 주장을 뒷받침 할수 있는 증거와 함께 한다면.. 저같이 모르는 사람이라도.. 이언어는 어떤 장점이 있고 어떤 단점이 있구나라는것을 개발자들의 눈을 빌려서 볼수 있고, 자신에게 필요한 언어가 무엇인지 정하는데 큰 도움이 될 것 같습니다.

배워야 하는 이유보다는 듣고 싶은 내용만 올려놓은것 같아 심히 죄송스럽습니다.(넘 철면피같네요.ㅠ.ㅠ )
감사합니다.

모든 OS를 사용해보자~!!
-휴학생-

모든 OS를 사용해보자~!!
-놀고먹는백수가 되고 싶은 사람-

pung96의 이미지

비방까지는... -_-'''

어떤 코드를 만드냐에 따라서 각언어들의 장점이 있다보니 쉬 주제를 잡아서 비교해보는 것이 쉽지는 않을 것 같습니다.
저는 엄두가 안나고 누가 선창하시면 복창할 생각은 있습니다.

커맨드라인에선 단연코 펄이 최고 아닌가 생각합니다.. 핫핫핫. -_-''' 뭐 그렇다는 얘깁니다.

추가: 펄을 배우고 싶으시다면 가장 쉽고 얇은 "펄 제대로 배우기"(원제가 "Learning perl"인가요?) 한글판을 "빌려" 드릴 용의가 있습니다. 300페이지도 안됐던것 같습니다. 단 아쉽게도 OO에 대한 얘기는 없습니다. 전에 어느분이 추천해 주셨던 http://www.perl.org/books/beginning-perl/ 도 얇으면도서 재미있고 쉽게 잘 써놨더군요. 한채터씩 출력해서 시간날때마다 꺼내보는 재미가 쏠쏠합니다. 이것도 추천합니다.
참고로 신촌입니다.

pung96의 이미지

생각나는 대로 전에 쓰던 코드들을 몇개 적어보았습니다.
항상 같은 머신에서 작업하는것이 아니다보니 어디다가 쭉 적어놓지 않고 그때그때 만들어쓰는 편이라
앞으로 살면서(?) 코드를 만들때마다 그때그때 하나씩 추가하도록 하겠습니다.

워낙 꽁수로 만든 것들이라 더 쉽고 짧은 방법이 있을 것이라고 생각합니다.
관심있는 분들의 검증과 더 좋은 방법을 기대해 보겠습니다.

ysy05의 이미지


펄을 배우기 시작한지 얼마 안된 초보인데. inline command 가 이렇게 활용될수 있는 줄 몰랐습니다.
지금까지 간단한 것도 실행파일을 만들어 썼는데...
Wiki 에서 좋은 팁 많이 배워 갑니다.