누가 이공계에 특화된 프로그래밍 언어 하나 만들어 줬음 좋겠어요.
예전에도 비슷한 글들을 올린 적이 있는데요,
예 : http://kldp.org/node/111241 (C/C++은 함수 호출 시 call by reference로 할 수 없었을 까요 ?)
http://kldp.org/node/129972 (C++에서 const keyword가 너무 남용된다고 생각지 않으세요 ?)
C++은 어느 정도 잘 쓰기 위해선 너무 많이 배워야 하는 것 같아요.
프로그래밍 자체를 전문으로 하시는 분들께는 문제가 안되겠지만
어떤 주어진 문제를 풀기 위해 잠깐 배워 사용하기에는 배우기 너무 어렵죠.
그렇다고 지난 수십년간 이공계의 대표적 언어였던 포트란은 좀 너무 낡았구요.
자바는 제가 배워 본 적이 없지만 막연히 (위의 맥락에서) 기대를 좀 하고 있었는데
복소수가 기본으로 지원되지 않는다는 걸 알고는 맘 접었습니다.
물론 매트랩도 있고, 파이썬도 있고 뭐 많이 있겠지만,
수치 계산에 특화된, 포트란을 대체할 수 있는,
그리고 처음 배우는 데 드는 진입 장벽이 낮은
그런 언어가 하나쯤 있었으면 해요.
저는 뭐 그래도 포트란/C/C++/매쓰매티카 등등 조금 아는 컴터 언어들이 몇개 있어서
큰 문제는 없지만 (그렇다고 제가 잘한단 말은 아닙니다)
프로그래밍 경험 하나 없는 저희 랩 신참들에게 수치해석 좀 시키려고 하면
일단 프로그래밍 언어 교육부터 시켜야 하는데
어떤 언어를 추천해야 할지 난감하더라고요.
이게 사실 이 글을 올리는 가장 큰 이유이고요.
현재는 조금 프로그래밍 센스가 있어 보이는 친구들에겐 C++/자바를,
그렇지 않은 친구들에겐 포트란을 권하고 있긴 한데
그러다 보니 한 랩 안에서 여러 컴터 언어가 혼재하게 되어 불편한 점도 많이 생기고요.
그나마 Mathematica, Maple,
그나마 Mathematica, Maple, Matlab같은 것들이 쓸만하지 않나요?
수치해석이라면 어차피 뭘 하더라도 기존에 만든 소스를 봐야 할 거고, 그럼 결국 C/C++과 Fortran을 배울수밖에 없을 거예요.
랩 신입이라고 하더라도 그들이 어차피 본격적으로 연구를 하려면 업계에서 많이 쓰는걸 쓰게 되겠죠.
아니면 요즘 각광받는 파이썬을 시켜보세요.
피할 수 있을때 즐겨라! http://melotopia.net/b
사실 제 주력 언어가 매쓰매카이긴 해요. 근데 이것도
사실 제 주력 언어가 매쓰매카이긴 해요.
근데 이것도 문제가 많은게,
간단한 문제들을 한두줄의 명령어로 처리하는데는 정말 탁월하지만
컨트롤 문법들이 난해하고 정착되지 못해서
조금 큰 문제 풀려면 엄청 어려워 져요.
한 버젼에서 잘 돌아가던게 그 다음 버젼에선 안되고,
또 그다음 버젼에선 또 돌아가는 등의 문제도 많구요.
OOP가 전혀 없다는 것도 문제고요.
나머지 말씀들은 동의합니다.
단지 포트란이나 C++이 보다 나은 수치해석용 언어로 점차 대체되어야 하긴 할텐데
그게 언제냐가 문제겠죠.
저희 분야에서는 ROOT라고 C++라이브러리를 쓰고
저희 분야에서는 ROOT라고 C++라이브러리를 쓰고 있는데 어떨까요?
http://root.cern.ch/drupal/
일단 C++가 바탕이고 설정에따라서는 python으로도 프로그래밍 가능합니다.
저희 랩에서도 최근 들어서서 root 많이
저희 랩에서도 최근 들어서서 root 많이 써요.
마침 root에서 돌아가는 어떤 데이타 베이스 만드는 일을 저희 랩 신참에게 시켜야 하는데
이 친구가 root도 모르고 C 등 프로그래밍 언어도 전혀 모르는 상태인지라,
일단 파이썬 배워서 파이썬 코드를 먼저 짠 후 나중에 root에 집어 넣도록 시킬 건지
아님 이 참에 C++도 배우고 root도 배워 통상의 root 라이브러리 만드라고 할 건지
고민 고민 하다
결국 후자를 선택했는데
과연 일이 어떻게 진행될지 기대 반 걱정 반입니다...
음...
요즘 시간날때마다 haskell 을 공부해보는데요.. 계산로직을 정말 쉽게 표현할 수 있네요. 거기다가 속도도 빠릅니다. 아직, 그렇게 잘 쓰는 편은 아니라서 적극적으로 추천드릴수는 없지만, 꼭 한번검토해 보시기 바랍니다.
지금 Haskell 홈피 가서 슬쩍 훑어 봤는데 좀
지금 Haskell 홈피 가서 슬쩍 훑어 봤는데 좀 파격적인(?) 언어인듯 싶군요.
시간 날 때 한번 자세히 읽어봐야 겠습니다.
코멘트 감사합니다.
수치해석에선... 프로토타이핑으로는
수치해석에선... 프로토타이핑으로는 matlab/python+numpy, 최대 최적화가 필요할땐 c++/fortran이 많이 쓰이는 정석 조합 같습니다. 다른언어들은 기능/성능을 떠나서 추천할 수가 없습니다. 코드가 남들이 짠거 읽거나 같다쓰고, 아니면 배포 해야 될 일이 빈번해서 가능한 많이 쓰는걸로 하는게 무난한 듯 하네요.
예, 지금 현재는 말씀하신 대로지요. (그래서 저도
예, 지금 현재는 말씀하신 대로지요.
(그래서 저도 별 수 없이 랜 신입들에게 포트란/C++을 권하고 있구요.)
만약 누군가 맘에 드는 수치해석에 강한 언어 하나 만들고
사람들이 그 언어를 지금의 포트란이나 C++처럼 많이 쓰게 된다면 좋을텐데
하는 정도의 막연한 생각을 적어 봤습니다.
헉 오타입니다. 랜 신입 -> 랩 신입.
헉 오타입니다. 랜 신입 -> 랩 신입.
동감이요~~
저도 이공계 쪽이고 순혈의 컴공, 소프트웨어쪽은 아닙니다.
워낙 MATLAB이나 Mathematica 같은 상용 프로그램이 무겁기도 하고 워낙 비싸서,
개인적으로나마 Python + NumPy, SciPy + Matplotlib 조합으로 대체하려고 했는데
꽤 만족스럽습니다.
다만, SIMULINK나 랩뷰와 같은 전문적인 시뮬레이션은 Python 조합으로 어렵네요.
- 어제보다 나은 오늘, 오늘보다 나은 내일.
학생이시라면 매스매티카 1년 라이선스를 $69.95에
학생이시라면 매스매티카 1년 라이선스를 $69.95에 구매할 수 있습니다. 그렇게 비싸지 않죠? ^^
기호 계산이 아니라면 굳이 매스매티카를 쓸 이유가 없긴 합니다.
파이썬 추천합니다.
파이썬 추천합니다.
Python + numpy + matplotlib이면 충분하실듯 ^^
많은 분들이 파이썬을 추천하시는 군요, 파이썬은 아주
많은 분들이 파이썬을 추천하시는 군요,
파이썬은 아주 오래 전 한 이삼일 배워보다 그만 두었는데
언제 기회되면 다시한번 배워봐야 겠네요.
원래 글타래 취지(?)하고는 좀 멀어지는 감이 있지만, 이왕이면,
파이썬 완전 초보가 한 며칠 배워서 쓰기에 좋은
간략한(!!) 입문서나 웹 사이트 같은 걸 소개해 주시면 감사하겠습니다.
아, 뭐 다른 어플쪽으론 (현재로선) 거의 관심없고요, 수치계산쪽 측면에서요.
matplotlib는 필요할때마다 여기
matplotlib는 필요할때마다 여기 example중에 찾아서 소스코드 보면 될거같구요. http://matplotlib.sourceforge.net/gallery.html
numpy는 공식 튜토리얼로 이런게 있네요. http://www.scipy.org/Tentative_NumPy_Tutorial
감사합니다... ^^
감사합니다... ^^
http://www.r-bloggers.com/jul
http://www.r-bloggers.com/julia-i-love-you/
http://julialang.org/
설명을 보아하니 이공계에 특화된 언어가 맞는 것 같습니다.
--
마잇
역시 세상은 넓고 언어는 많군요...
역시 세상은 넓고 언어는 많군요... ^^
http://julialang.org/manual/
요기에 있는 내용 잠깐 훑어보니 Julia라는게 매트랩에 가까운 언어인듯 싶습니다.
댓글 감사드립니다.