soma0sd

코딩 & 과학 & 교육

프로그래밍 언어 리뷰 (3): Python

2019.05.16.프로그래밍
반응형

사용해 본 언어를 중심으로 다루는 주관적인 리뷰입니다. 프로그래밍 언어는 각기 스타일과 철학이 다르기 때문에 점수를 준다거나 하기는 곤란합니다. 언어 자체에 대한 리뷰가 아니라 언어를 사용해본 경험을 리뷰한 것에 가깝습니다

파이썬(Python)

파이썬은 다양한 개발도구를 가지고 있는 언어입니다. Anaconda에서 제공하는 통합개발환경인 SpyderPyCharm의 자체 통합개발환경 등을 이용해서 프로그래밍을 할 수 있습니다. 또한, Jupyter등을 활용해서 코딩과 문서작성을 통합할 수 있고, VSCODE나 ATOM등 코드 에디터를 사용해서 프로그래밍을 할 때도 별 문제없이 사용할 수 있습니다.

큰 커뮤니티와 많은 패키지 개발/지원, 간결한 문법등을 지원하여 개발속도가 상당히 빠릅니다. 단, 버전 2.X와 버전 3.X의 차이가 커서 특정 패키지를 사용하려고 할때 3.X를 쓰지 못하는 일이 생길 수 있습니다.

C나 C++과는 다르게 컴퓨터보다는 사람과 친한 고수준 언어입니다. 좋게 보면 메모리할당과 같은 부분을 신경쓰지 않아도 알아서 해준다는 말이고, 나쁘게 보면 너무 유연하게 작동하는 바람에 오류를 직접 인지하기 전 까지는 수정이 필요한 상황이라는 것을 모르는 경우가 종종 생깁니다.

패키지 위주의 언어

쓰다보면 패키지를 얼마나 많이 알고 있느냐가 개발속도를 좌우하는 경우가 많습니다. 그렇다보니 문제해결을 위한 소스코드를 찾기 보다는 문제해결을 하는 패키지를 찾는 경우가 늘어납니다. 자신의 문제에 즉시 활용할 수 있는 패키지를 사용함으로 인해, 파이썬 자체의 빠른 개발을 고려한 문법과 거대한 패키지 유니버스는 말그대로 초고속 개발이 가능하도록 해줍니다.

그러나 패키지는 가능한 일반적인 상황을 고려하고 패키지를 제작하기 때문에 내가 필요한 특수한 경우에 비해 많은 자원을 소모하는 경우가 종종 생깁니다. 물론 오픈소스를 통해 고도의 집단지성이 만든 패키지는 보통 내가 직접 짠 기능보다 속도가 빠릅니다. 일반적인 경우와 특수한 경우의 실행속도 차이는 컴퓨터의 평균 성능이 아주 좋아져서 큰차이를 느끼지 못하는 경우가 대부분이지만 극심한 차이가 나타나는 경우가 아주 가끔 생깁니다.

시작하는 언어로는 어때?

고급언어이기에 컴퓨터 공학이나 컴퓨터 과학이 제시하는 교육용 언어 기준에 적합한지 아닌지는 논쟁의 여지가 있지만, 컴퓨터 사고력 교육에서 요구하는 내용은 간결한 문법의 힘으로 더욱 쉽게 접근할 수 있습니다. 원리보다 기능에 집중하는 면이 있어서 hello world부터는 빠르게 원하는 결과물을 생산할 수 있다는 점도 장점입니다.

최근에는 모바일까지 아우르는 멀티플랫폼 어플리케이션, 웹 서버, 게임, 과학 및 통계, 기계학습분야까지 하나의 언어로 가능하다는 점 때문에 파이썬의 확장성을 장점으로 꼽는 사람들도 많습니다.

다만 수많은 개발도구 사이에서 자신에게 맞는 것이 무엇일지 찾아내야 한다는 점과, 많이 단순해지긴 했지만 개발환경을 유지관리 하는 난이도가 비교적 높다는 것이 장벽이 될 수 있습니다.

취미로는 어때

파이썬은 강력한 확장성을 통해서 일단 뭐든 해볼 수 있게 만들어줍니다. 응용프로그램 개발부터 연구까지 소화하지 못하는 분야가 없지만, 대신 전문 개발도구/언어에 비해 퀄리티가 떨어진다는 단점이 있습니다. 뭐, 시간과 노력을 들이면 충분한 퀄리티가 나올 수 있긴 하지만 전문 개발도구/언어가 같은 퀄리티를 내기위해 들이는 노력에 비하면 차이가 있습니다.

취미로 하고자 하는 분야가 넓다면 다른언어에 비해 배워서 얻을것이 많습니다.

반응형
태그:

댓글

End of content

No more pages to load