파이썬, 그렇게 좋은가요?

samsee의 이미지

안녕하세요. q&a 말고는 처음으로 글 올리네요;
최근 고서인 '조엘의 소프트웨어 블로그 20선'인가를 보고 있습니다. 누구의 글이었는지, 파이썬에 대해서 찬양하는 글이 있더라고요. 이래저래 블로그 돌아다니고 하다 보면 파이썬에 대해서 좋게 쓴 글이 많이 있습니다. 나쁘게 쓴 글은 아직 거의 못 본 것 같네요.

저는 보통 자바를 사용하고, 펄도 하고, php도 좋아하고 막 그렇습니다. COBOL도 일 때문에 종종 사용하지만 싫어하고요. 다언어주의를 추종하고 있지요 :) 파이썬도 잠깐 공부해 봤는데 딱히 장점과 생산성을 깨닫지는 못했습니다. 그래서 배움을 잠시 접어두고 있지요.

그래서, 파이썬을 사용하시는 분들께 여쭤보고 싶습니다. 그렇게, 좋은가요? 어떤 점이 좋은가요? 그리고 어떤거 하시는데 주로 사용하시는지요?

kasworld의 이미지

제목만 보고 "네!" 라고 쓰고 보니
이미 펄 , php 를 하시는 분이시군요 ^^

그러시면 별 감흥이 없으실꺼 같습니다.

p 삼형제 ( perl , php, python)의 감동은 C/C++ 만 아시는 분들이 가장 강하게 느끼시는 거거든요.
쓰신 정도로 스크립트 언어를 사용하신 경험이 있으시면
이후는 그저 취향에 따라 (스크립트)언어를 쓰시면 되지 않을까요?

snowall의 이미지

개인적인 이유이긴 하지만...
저는 파이썬을 들여쓰기를 강제한다는 이유로 좋아하지 않습니다. (그게 장점이긴 합니다만 --;;)

--------------------------
snowall의 블로그입니다.
http://snowall.tistory.com

피할 수 있을때 즐겨라! http://melotopia.net/b

hongminhee의 이미지

저도 그것만 빼고 Python을 좋아합니다.

silasoni의 이미지

저도 페쎤(?) 공부중~

snowall님 티스토리 왜 방문안되죠?
예전에 자주 들가봤었는데~

snowall의 이미지

언제 그랬었죠? -_-;;;

--------------------------
snowall의 블로그입니다.
http://snowall.tistory.com

피할 수 있을때 즐겨라! http://melotopia.net/b

송효진의 이미지

php 는 웹 전용 스크립트죠. 안되는게 많습니다.
근데 python 은 안되는게 없습니다. 다 되죠.-_-;
php 가 워낙 웹에 특화되어서 php 를 주로 쓰는데,
필요에 의해 잠깐 python 써본 바로는 정말 안되는건 아무것도 없겠다는 느낌이었습니다.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

klyx의 이미지

php는 웹'전용'이 아닙니다. 로컬에서 php만 설치해서 일반 스크립트와 동일하게 php code.php와 같은 방식으로 얼마든지 실행할수 있습니다.
php는 안되는게 많고 python은 안되는게 없다기 보다는, 그 언어로 '이미 구현된 것'이 적고 많음의 차이일 듯합니다.
구현자체에 난이도차는 있을수 있어도, 언어자체의 한계때문에 다 안되고 다 되고 할만큼의 큰 차이는 없습니다.

bushi의 이미지

그렇죠.
bash 스크립트로 '웹서버'를 만든 것도 봤는데요. (소켓 쪽은 tcpwrapper 에 의존)

그렇다해도 php 보다는 perl/python 이 본질적으로 좀 더 많은 설비를 갖추고 있는 것은 맞는 것 같습니다.
허 참, 스크립트에서 쓰레딩이 가능한...

OTL

송효진의 이미지

그렇듯이 '할 수 있는' 것과 '특화된' 것은 다른거죠.
php 는 웹에 '특화' 되었고,
python 은 '무엇이든 간단하게' (하지만 전용보다는 조금 불편) 라고 생각됩니다.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

송효진의 이미지

쉘에서 이용 가능하고 충분히 활용하고 있습니다.
제 주 언어가 php 입니다.
그러나 아무리 좋게 봐 줘도 웹'전용' 입니다.
apache 와 연동해서 쓰기에 전용이라기 보다는,
file, socket 등등 웹에 관련있는것을 너무도 수월하게 할 수 있어서 전용이라 생각됩니다.
웹에 관련된 이상 코드가 가장 깔끔하게 나올 수 있는게 php 라고 생각합니다.
php 도 extension 을 작성해 넣기 좋긴 하지만, 거기까지 가면 언어적 특성을 벗어난 논외사항이라고 생각됩니다.
python 은 extension 을 작성하는 것이 아닌 python 코드만으로 so 를 불러와서 이용할 수 있는것으로 보았습니다.(잘못안건 아니겠죠?;;;)
php 는 thread-safe 하게 동작할 수는 있지만 정작 자체 multi-thread 프로그래밍은 안되기도 하고...
웹에 특화된 아주 좋은 언어임은 분명하지만,
python 만큼의 유연함은 없어보입니다.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

cleol의 이미지

>> python 은 extension 을 작성하는 것이 아닌 python 코드만으로 so 를 불러와서 이용할 수 있는것으로 보았습니다.

so 라면 공유라이브러리를 말씀하시는 거지요? 만약에 그렇다면 불가능합니다.
c/c++ 로 작성된 라이브러리를 사용하려면 wrapper 가 있어야합니다.

파이썬 초기에는 c 와 아주 쉽게 연동되는 glue language 라는 선전도 있었습니다만,
정말 말도 안되는 선전이었다고 생각합니다.
다른 사람들도 그리 생각했는지 지금은 그런 선전을 안하더군요.

송효진의 이미지

제가 그 초기 선전에 낚였나보군요-_-;
그렇다면 제 입장에서는 php 가 더욱더 쓸만해지는군요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

suapapa의 이미지

잘들 붙여 쓰고 있지 않으신가요?

cleol의 이미지

뭐, 잘들 붙여쓰고 있기는 하지만, 파이썬 FFI 가 다른 언어들의 FFI 에 비해
편리하지는 않았습니다. 그냥 그런 수준이었지요. 그런 선전은 분명히 과장이었습니다.

그런데 아래 서지원님의 답글을 보니, 지금은 또 사정이 달라진 것 같군요.
지금은 그런 종류의 기술이 일반화되서 다른 언어들에서도 쓰이는지는
잘 모르겠지만, 일단 분명히 편리해보이기는 하는군요.

서지원의 이미지

cleol의 이미지

호오... 되는군요.

ctypes is an advanced ffi (Foreign Function Interface) package for Python 2.3 and higher. In Python 2.5 it is already included.

라고 되어있는 것을 봐서는 파이썬 2.3 을 전후해서 만들어진 것 같군요.

참... 오래된 지식으로 말을 함부로하면 안되겠습니다.

samsee의 이미지

원래는 파이썬 이었던가요?

youlsa의 이미지

쓰면 쓸수록 사람 게을러지게 만드는 언어입니다. ^^ 파이썬에 재미들리면 C/C++는 물론 자바도 노가다로 보이죠.

요즘엔 python으로 작성된 웹 프레임워크인 django로 이것 저것 개발해보고 있는데요, Ruby On Rails나 Struts와 비슷한 도구이긴 하지만 역시나 python류에만 있는 뭔가(!)를 담고 있습니다. 정확히 표현하긴 힘들지만 진정한 도구 정신이랄지...

예로 적당할지 모르겠는데요... 도구라는게 도구함에 깔끔하게 계층을 맞춰 잘 정리되어 있는 것도 좋기는 하지만, 실제 serious하게 일하는 사람들은 많이 쓰는 도구들을 손 가까운데 두게 되는데요, python쪽의 솔루션이나 프레임웍들을 보면 그런 실용적인 면이 강한 것 같습니다. django도 그런 면이 강하네요. 구색을 맞추기 보다는 필요 없는건 빼고 필요한 것들만 강력하게 잘 꾸려놓은 것 같습니다.

제가 python이 강력하다고 느끼는 부분은 COM을 자유롭게 쓸수 있다는 점이나 크로울러나 서버 작성이 매우 쉽고 서버를 윈도우 서비스로 만들어 올리기 쉬운 점 등등입니다. 더 많은데 막상 쓰려니 잘...

=-=-=-=-=-=-=-=-=
http://youlsa.com

=-=-=-=-=-=-=-=-=
http://youlsa.com

kmryu의 이미지

회사사람이 c로 코딩한 업무로직이 있는데 이 코드에의해 raw data가 만들어지면 보기편하게 차트로 볼수있는 인터페이스를 만들어야 했습니다.
저는 그 c코드를 dll화 시켜서 껍데기는 python과 matplotlib를 썼습니다. 그 전에 고민을 많이 했었죠. 막상 만들려니 도구가 마땅치 않아서..
제가 그렇다고 python을 많이 알아서 선택한 건 아닙니다. 예전에 공부를 좀 하긴했지만 현재는 책을 안보면 깜깜합니다. --;

그리고 제 업무중에 하나가 xml 데이터를 html 문서로 변환하는 코드작성을 자주하는데 이때 디버깅용으로 쓰는게 python 스크립트입니다.
xml파서도 COM으로 작성된건데 이놈만으로 테스트가 통과되는게 아니라서 다양한 방법으로 xml을 변환시키고 테스트하는게 주 용도죠.
이건 제가 작성한건 아니고요. 어디서 주워와서 대충 고쳐 쓰고 있습니다. 몇줄 되지도 않아서 고쳐쓸수 있는거지요.

물론 다른 언어와 환경에서도 충분히 가능한 것들이겠지만 python이 좀 더 보기편하고 쓰기편하고 자료도 많아서 괜찮은 선택이 아닌가 싶습니다.

hongminhee의 이미지

이에 관해서 이미 좋은 글타래가 이미 있습니다: Python을 배워야 하는 이유

d3m3vilurr의 이미지

파이썬, 그렇게 좋습니다:)
단지 아쉬운 점은 객체 메서드에 self 써줘야 한다는거죠.
이게 사실 가끔 귀찮습니다.

전 오히려 강제되는 들여쓰기가 맘에 드는데, 아니신 분들이 좀 되네요.