Lyn: 그렇지요. 수학이야 무한을 너무나 쉽게 논하면서 '답이 존재한다, 혹은 불가능하다' 자체만이 중요할 뿐 그 답을 구하는 방식이야 별로 중요하지 않지만.. 답을 실제로 구해야 하는 현실에서 늘 그렇게 고자세로만 살 수는 없으니.. ㅋㅋㅋ
어셈블리어에 함수형 패러다임 같은 걸 기대할 수는 없습니다.
허국현: 코딩을 할 때, 뭔가 지저분한 how를 따질 일 없이 프로그래머로서의 사고를 유연하게 단련하는 데는 함수형 패러다임이 도움이 되긴 합니다.
대신 함수형 언어로 작성된 프로그램은 보통 표현력이 더 뛰어나죠. 함수형 언어로 3~4줄 작성된 프로그램을 절차형 프로그래밍 언어의 대표격인 C언어로 고치면 10줄 이상이 나오는 경우가 허다하고요. 이는 달리 말하면 숙달된 한명의 함수형 프로그래머가 다른 프로그래머의 서너배 생산성을 낼 수 있다는 의미도 됩니다. 그리고 보통 함수형 언어는 타입 체킹이나 제약조건이 깐깐하다보니 웬만한 오류는 작성 단계에서 컴파일러에게 걸러진다는 걸 생각해 보면, 극단적으로 최적화가 필요한 분야가 아니라면야 해볼만 한 장사죠. 어쨌든 똑똑한 컴파일러만 있다면 자바보단 빠른 코드를 만들거든요.
그런데 이런 장점에도 불구하고 함수형 언어가 잘 안 팔리는 이유는... 제 생각이지만, 한명의 프로그래머가 그만두면 서너명이 그만둔 것과 같은 타격을 입기 때문(?)일지도...
저도 C-like 언어가 편한 입장이지만, 함수형 언어는 한 함수의 기능을 최소화된 함수 여러개로 쪼개서 짜맞추는 식이 되어야 하기 때문에 모듈화가 잘 되는 편입니다. 생각하는 방식 자체를 바꿔야 하지만 익숙한 사람에게는 더 생산성이 높죠. 중복되는 코드가 적어지는 건 덤이고요.
뭐 함수의 크기를 최소로 하고 중복 코드를 제거하는 건 절차형 언어에서도 적극 권장되는 프로그래밍 습관이긴 하지만요. 익숙함 문제라고 봅니다.
마치 '스미스'라는 이름이 자신이 대장장이 집안이거나 집 근처에 대장간이 있어서 붙여진 것과 비슷한 맥락이겠네요. 물론 지금은 아무 연결고리도 찾을 수 없는 엄청 먼 옛날에 그랬다는 거겠지만..
그걸 직접 찾아 볼 생각을 하셨다니.. 고맙습니다. 새해 복 많이 받으세요. ^^;;