함수형 언어의 발전 가능성
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화 ]가 제게는 매우 큰 깨달음'이었다고 생각됩니다.
일단. 주저리는 그만하고. ㅡ_ㅡ;;;;
저는 지금의 웹과 같은 형태로 본다면. 함수형 언어는 클래스를 쓰건 쓰지않건. 다양한 발전을 하리라 생각합니다.
여러분은 어떤 생각을 가지고 계신지 궁금합니다.
object-orieted의 object와
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?
io가 입력 출력인가요?
c에서 입출력 있었던거 같은데. 너무 어려워서 무슨말인지 모르겠다 ㅎㅎㅎ
그래서 하스켈 쪽에선 C에서 Haskell 함수를
그래서 하스켈 쪽에선 C에서 Haskell 함수를 호출하는 방법을 애용하지 않나요?
여전히 좀 더럽지만 그래도 복잡한 input을 다루는데는 그만한게 없다고 봅니다.
C에서 Haskell을 부르든, Haskell에서
C에서 Haskell을 부르든, Haskell에서 FFI를 쓰든, 어쨌든 뭔가 어색한 건 사실이니까요.
C++보면서 짬뽕 언어라고 사람들이 뭐라고 하지만,
따지고 보면 pure하다고 자부하는 Haskell도 그 수준이 되버린 것 같으니까요.
------------------------------
How many legs does a dog have?