함수형 언어의 발전 가능성

shint의 이미지

KGC 2007 (한국게임컨퍼런스)에서 TTC(Thin Transaction Client)관련 강의를 들었던 적이 있었습니다.
해당 자료는 예전 www.gitiss.org 지금은 www.kocca.kr 에서 볼 수 있습니다.

[KGC2007] Thin Transaction Clients:빠르고 효과적인 게임의 보급
http://www.kocca.kr//knowledge/seminar/1289624_1293.html

[KGC2008] 온라인게임을 위한 병행 지향 아키텍처 & 패턴 & 언어
http://www.kocca.kr//knowledge/seminar/1289730_1293.html

이분의 말씀에 상당한 감명을 받아서 생각한것이 [ 함수 + 메모리 ]면 모든게 가능하겠구나. 였습니다.
게다가 저는 클래스를 상당히 싫어했었는데. (상속이나 헤더꼬이는것 느린빌드 등등). 그에대한 빌미를 더 가지게 되었습니다.

하지만. 막상 개발할때. 함수만으로 개발한다는건 매우 어렵다는걸 알았습니다.
호환성'이라든가 개발방식'이라든가 걸리는게 많았습니다.
링크드 리스트'를 만든다고 해도. [구조체 + 클래스 + 함수]형식으로 만드는게 더 알아보기 편하니까요.

그러던 와중에 보게된 PHP. ELang. JavaScript. ActionScript. Lua. Ruby. 등은
UI와 함수 메모리에 대한 생각을 좀 더 편하게 다가갈 수 있도록 도와주었습니다.
물론. 그러다 알게된 [ 데이터의 문서화와 UI화 ]가 제게는 매우 큰 깨달음'이었다고 생각됩니다.
일단. 주저리는 그만하고. ㅡ_ㅡ;;;;
저는 지금의 웹과 같은 형태로 본다면. 함수형 언어는 클래스를 쓰건 쓰지않건. 다양한 발전을 하리라 생각합니다.

여러분은 어떤 생각을 가지고 계신지 궁금합니다.

semmal의 이미지

object-orieted의 object와 functional의 function은 따지고 보면 크게 다르지 않습니다.

functional object가 object-oriented의 바탕이 되었다고 해도 과언은 아닙니다.

그리고, functional은 치명적인 문제점이 io입니다.

monad나 심지어 linear logic을 끌어다가 알맞게 개선하려고 하고 있지만,

그 깔끔해 보이는 functional language도 io만 들어가면 쉽게 걸래코드가 됩니다.(그렇다고 더 어렵다는 말은 아닙니다. 상대적으로 그렇다는 말이지요.)

functional에서 획기적인 발전을 이끌어내지 않는 이상, IO, 즉, GUI나 Web, front-end에서 활약하기는 현재로서는 힘들 것 같습니다.

물론 내부 로직이야 현재의 어떤 상용언어를 쓰더라도 functional만큼 깔끔하고 간결하게 나오기도 힘들게 분명하구요.

------------------------------
How many legs does a dog have?

quakee의 이미지

c에서 입출력 있었던거 같은데. 너무 어려워서 무슨말인지 모르겠다 ㅎㅎㅎ

JuEUS-U의 이미지

그래서 하스켈 쪽에선 C에서 Haskell 함수를 호출하는 방법을 애용하지 않나요?
여전히 좀 더럽지만 그래도 복잡한 input을 다루는데는 그만한게 없다고 봅니다.

semmal의 이미지

C에서 Haskell을 부르든, Haskell에서 FFI를 쓰든, 어쨌든 뭔가 어색한 건 사실이니까요.

C++보면서 짬뽕 언어라고 사람들이 뭐라고 하지만,

따지고 보면 pure하다고 자부하는 Haskell도 그 수준이 되버린 것 같으니까요.

------------------------------
How many legs does a dog have?