어떻게 언어를 선택하세요?

짧은인생,긴공부의 이미지

방금전에 보니까, 명예의 전당에
"C++는 C의 확장??" 이란 글이 올라와 있더군요.
그런데, 그 글을 다시보다가 예전의 생각이 다시 떠 올랐는데,

많은 답변자들이 프로젝트에 맞는 언어를 선택하는 것이 최선이라고 했는데,
실제 언어의 선택은 어떻게 이루어지는지?

제 경험상 언어의 선택은 여러 언어중에서 선택이 아니라,
그 언어밖에 쓸 수 없는 상황이 되더라구요.

어떻게 언어를 선택하십니까?

hiseob의 이미지

아무리 개발자가 위대:wink: 하다고 해도 모든 언어들을 알수는 없지 않겠습니까?

그 개발자가 가장 손에 익은것, 그것이 좋은것이겠죠.

물론 phpbb 같은 기능을 가진 프로그램을 만든다고할때,

C 로 만드는것보단 php 로 만드는게 더 효율적일수도 있고... 하니까요.

그런 측면에선 언어를 잘 선택 해야 겠지만,

보통 개발자는 거의 한 분야만 하지 않겠습니까.

3D 게임 엔진을 짠다고 할때 A 와 B 언어가 있는데,

나는 A 에 훨씬 많이 익숙한고 B는 그럭저럭 할줄 아는데,

B 가 3D 게임 엔진에는 더 적합하더라...

해서 B 를 당장 공부해서 프로그램을 짤수는 없죠.

Bini의 이미지

짧은인생,긴공부 wrote:
방금전에 보니까, 명예의 전당에
많은 답변자들이 프로젝트에 맞는 언어를 선택하는 것이 최선이라고 했는데,
실제 언어의 선택은 어떻게 이루어지는지?

제 경험상 언어의 선택은 여러 언어중에서 선택이 아니라,
그 언어밖에 쓸 수 없는 상황이 되더라구요.

어떻게 언어를 선택하십니까?

맞읍니다. 프로젝트에 맞다고 Ada, Haskell, Sml같은 언어를 사용하는 사람은
없을것 같은데...^^;
혼자서 재미삼아 한다면 모를까 위에서 원하지 않으니 회사에서 쫓겨날겁니다.....
요즘은 유지보수비용도 엄청난데..... 수십만, 수백만라인의 Ada나 Sml코드를 누가 유지보수합니까? 또 혼자서만 보람차게 짤수 있는 문제도 아니고.....
결국 프로젝트에 맞는 언어를 선택한다는 폭은 제한되어 있다고 봐야 되겠죠.

LispM의 이미지

Bini wrote:

...
혼자서 재미삼아 한다면 모를까 위에서 원하지 않으니 회사에서 쫓겨날겁니다.....
요즘은 유지보수비용도 엄청난데..... 수십만, 수백만라인의 Ada나 Sml코드를 누가 유지보수합니까? 또 혼자서만 보람차게 짤수 있는 문제도 아니고.....
결국 프로젝트에 맞는 언어를 선택한다는 폭은 제한되어 있다고 봐야 되겠죠.

꼭 그렇지만은 않습니다.

대단히 잘하는 프로그래머가 특정 프로그래밍 언어로 개발한 것은 단지 그 언어를 아는 아무 프로그래머가 유지보수 할 수 있다는 생각은 잘못입니다. 프로그램 라인 수에 상관없이, 원래 코드의 수준에 맞는 정도의 개발자가 유지보수한다면 비용은 원래 개발자 이상으로 들어갈 수 없는 것입니다. 물론, 처음 코드가 엉망이어서 더 나은 개발자를 투입한다면 비용은 더 들겠죠.

문제는 회사에서 개발자를 어떻게 생각하느냐에 달려있습니다. 만일 회사가 개발자를 언제든 대치할 수 있는 부품쯤으로 생각한다면 가장 쉽게 싸게 개발자를 대치할 수 있는 프로그래밍 언어 - C, Java, C++ 등 - 을 선호할 것입니다. 회사가 개발자를 귀하게 여긴다면 그렇지 않을 것입니다.

개발자가 자신이 선호하는 프로그래밍 언어를 바꾸데는 여러 이유가 있겠지만, 특히 스스로 성장하면서 보다 더 나은 프로그래밍 언어로 바꾸는 경향이 있다고 가정하면, (제대로 된 회사에서는) 그 선택을 충분히 고려해 주어야 합니다. 물론 현실은 그렇지 호락호락하지 않겠지만, 개발자는 회사를 설득해야 한다고 봅니다.

저 자신도 그런 세태에 불만을 느끼고 제가 이상적이라고 생각하는 회사를 시작했으며, 지금의 생각을 밀고 나갈 작정입니다. 잘하는 짓인지는 두고 봐야 겠지만 말입니다.

개인적으로는 Common Lisp을 선호하며, (장난감 문제가 아닌) 왠만큼 어려운 일이라면 다른 어떤 프로그래밍 언어를 사용하는 개발자보다 훨씬 나은 프로그램을 만들 수 있다고 감히 자신합니다.

http://lisp.or.kr http://lisp.kldp.org - 한국 리습 사용자 모임

익명 사용자의 이미지

LISP 라는 언어를 잘 몰라서 그런데요

혹시 GUI 작업도 LISP로 가능한가요?

요즘 마소에 LISP 관련 글 올리시는 그분 아닌감요!!! :)

Bini의 이미지

LispM wrote:

꼭 그렇지만은 않습니다.

대단히 잘하는 프로그래머가 특정 프로그래밍 언어로 개발한 것은 단지 그 언어를 아는 아무 프로그래머가 유지보수 할 수 있다는 생각은 잘못입니다. 프로그램 라인 수에 상관없이, 원래 코드의 수준에 맞는 정도의 개발자가 유지보수한다면 비용은 원래 개발자 이상으로 들어갈 수 없는 것입니다. 물론, 처음 코드가 엉망이어서 더 나은 개발자를 투입한다면 비용은 더 들겠죠.

문제는 회사에서 개발자를 어떻게 생각하느냐에 달려있습니다. 만일 회사가 개발자를 언제든 대치할 수 있는 부품쯤으로 생각한다면 가장 쉽게 싸게 개발자를 대치할 수 있는 프로그래밍 언어 - C, Java, C++ 등 - 을 선호할 것입니다. 회사가 개발자를 귀하게 여긴다면 그렇지 않을 것입니다.

개발자가 자신이 선호하는 프로그래밍 언어를 바꾸데는 여러 이유가 있겠지만, 특히 스스로 성장하면서 보다 더 나은 프로그래밍 언어로 바꾸는 경향이 있다고 가정하면, (제대로 된 회사에서는) 그 선택을 충분히 고려해 주어야 합니다. 물론 현실은 그렇지 호락호락하지 않겠지만, 개발자는 회사를 설득해야 한다고 봅니다.

저 자신도 그런 세태에 불만을 느끼고 제가 이상적이라고 생각하는 회사를 시작했으며, 지금의 생각을 밀고 나갈 작정입니다. 잘하는 짓인지는 두고 봐야 겠지만 말입니다.

개인적으로는 Common Lisp을 선호하며, (장난감 문제가 아닌) 왠만큼 어려운 일이라면 다른 어떤 프로그래밍 언어를 사용하는 개발자보다 훨씬 나은 프로그램을 만들 수 있다고 감히 자신합니다.

현실에서 자기가 하고 싶다고 할수있는 문제가 아니라고 생각합니다.
자신의 보스와 동료들을 설득하는 문제도 만만찮고...
개발자를 다시 교육시키고 하는 등의 비용을 감내하고서라도 꼭 이러한 언어를
선택해야하는가 라면 저는 상당히 회의적이라고 생각합니다.
혼자서 할수 있는 작은프로젝트라면 모를까.....

개인적으로 Ada를 좋아하지만, 우리나라에서 사용하는 사람들은 거의 없는것
같더군요.
사람들의 어떤언어에 대한편견은 참 무섭다고 생각합니다.
특히 구루라는 사람들의 한마디에 좌지우지되는 언어에 대한편견은.....

k2hyun의 이미지

프로젝트에서 언어를 선택할 수 있을 만한 위치라면,
그 위에 있는 보스는 그 프로젝트에 어떤 언어를 쓰는지는 신경 안쓸겁니다.
그들이 신경쓰는건 "얼마짜리고 몇 M/M 이면 되겠느냐" 정도겠죠.

다들 동감하듯이 언어는 도구입니다.
개발자로써 레벨업이 되면서 해야 할 일이 관리만이 아니라고 말할 수 있는 부분이 이런 부분이죠.
"어떤 종류의 프로젝트에 어떤 언어나 기술을 사용하는 것이 효율적이다." 라는 것을 판단하고 결정해서 동료들을 설득할 수 있는 노하우나 정보의 습득도 역시 개발자가 오래 살아남기 위한 것중에 하나라고 생각합니다.

결론적으로,
자신이 php에 강하다고 해서 jsp로 해야할 프로젝트를 php로 끌고가는 것은 무모함, 무능력함입니다.
프로젝트의 성격에 맞는, 효율적인 언어를 선택하면 되는거라 생각합니다.

더 이상 없다.

익명 사용자의 이미지

Bini wrote:

현실에서 자기가 하고 싶다고 할수있는 문제가 아니라고 생각합니다.
자신의 보스와 동료들을 설득하는 문제도 만만찮고...
개발자를 다시 교육시키고 하는 등의 비용을 감내하고서라도 꼭 이러한 언어를
선택해야하는가 라면 저는 상당히 회의적이라고 생각합니다.
혼자서 할수 있는 작은프로젝트라면 모를까.....

개인적으로 Ada를 좋아하지만, 우리나라에서 사용하는 사람들은 거의 없는것
같더군요.
사람들의 어떤언어에 대한편견은 참 무섭다고 생각합니다.
특히 구루라는 사람들의 한마디에 좌지우지되는 언어에 대한편견은.....

맞습니다. 현실이라는 벽은 항상 존재합니다. 하지만 언젠가 그 벽을 깨지 않고서는 더이상 발전할 수 없는 때가 올것입니다. 마찬가지로 다른 사람을 설득해보고 안되면 포기해도 늦지않습니다.

실력있는 개발자라면, 프로그래밍 언어를 배우는 시간과 비용 역시 그리 크게 들지 않고 배울테니, 말씀하신 비용은 결국 모든 초보자들에 대한 교육에만 참일 것입니다.

Ada를 사용해서 얻는 잇점이 있고, 주변 사람들을 설득하는데 필요한 노력이 있을 텐데, 잇점이 노력보다 적다면 당연히 노력을 들이지 말아야 겠죠. 판단은 스스로 해야 할 것입니다.

주위를 살펴보세요. 오늘날 살아남은 유용한 소프트웨어들은 대부분 한번 이상 현실이라는 장벽을 뛰어넘은 것들 뿐입니다. (변변찮은 마이크로소프트사의 제품들까지도!)

익명 사용자의 이미지

Anonymous wrote:
LISP 라는 언어를 잘 몰라서 그런데요

혹시 GUI 작업도 LISP로 가능한가요?

요즘 마소에 LISP 관련 글 올리시는 그분 아닌감요!!! :)

상업용 Common Lisp의 경우 GUI 가능합니다. 오픈소스인 경우 로레벨 X, Motif 등을 CL에서 이용할 수 있으며, 경우에 따라 FFI(Foreign Function Interface)를 이용해서 다른 언어로 작성된 라이브러리를 불러쓸 수도 있습니다.

맞는 것 같습니다. :)

익명 사용자의 이미지

Quote:

상업용 Common Lisp의 경우 GUI 가능합니다. 오픈소스인 경우 로레벨 X, Motif 등을 CL에서 이용할 수 있으며, 경우에 따라 FFI(Foreign Function Interface)를 이용해서 다른 언어로 작성된 라이브러리를 불러쓸 수도 있습니다.

맞는 것 같습니다.



오. 유명한 분께서 또 kldp에 계신줄 몰랐군요. han.comp.lang.lisp에서 군계일학으로 군림하시던 때부터 좋은 포스팅들 감사하게 읽고 있습니다. lisp.or.kr 도 자주 방문한답니다. 새로 하시는 회사도 흥미있게 지켜보고 있습니다. :-)