프로그래밍 언어 개발에 관심 있는 사람들의 모임입니다.
|
2008-08-14 00:18:47
|
오늘 귀가해서 씻다가 엉뚱한 생각이 떠올랐습니다. 모티브는 MacRuby에서 얻었는데, Io나 Lua 같은, 비교적 수정하기 수월한 언어를 도메인에 맞게 사용하는 것이 과연 도움이 될까 하는 생각이 들었습니다. (그러니까, 그렇게 해보면 재밌겠는데… 도움은 될까?) 구체적으로는, ORM 같은 복잡한 프레임워크를 사용하는 대신, 언어에서 PostgreSQL 쿼리 문법을 사용할 수 있고, ORDBMS의 각종 오브젝트들의 식별자와 언어 내의 식별자를 일치시켜서 사용해보면 어떨까 하는 생각입니다. 유사 코드를 쓰자면 아래처럼 될 것 같은데; (.NET의 LINQ나 Oralce Pro*C와 비슷하네요.)
문법을 좀 더 편하게 만들면
또, 해당 언어에서 정의한 함수를 stored procedure 호출하듯 사용할 수도 있고요. 언어와 DBMS를 긴밀하게 통합할 경우 여러가지 할 수 있는 것들이 많을 것 같습니다. 하지만 과연 이렇게 언어를 확장해서 쓰는 것이 좋은 접근일까요? 대부분의 경우 좋지 않겠지만, 몇 가지 조건을 둡니다.
덧. 약간 진지하게(?) 올리는 고민 상담;입니다. 홍민희 님이 2008-08-14 14:42:09에 고쳤습니다. |
트랙백 주소: http://langdev.net/post/trackback/140
아, LangDev 분들은 대부분 아실테지만, 위 의사 코드는 Lua를 확장했다고 가정한 것들입니다.
텍스트큐브는 배포용 프로그램이라 이런 생각을 할 수 없다는 게 아쉽군요 orz
시간으로 보다 효용성으로 보나 언어를 고치는 것보다 DSEL을 만들어 쓰는 것이 더 좋지 않을까요?
코드에 직접 쿼리를 쓰는건 굉장히 매력적이지만 역시 DSEL로 만드는게 더 나을 것 같네요.
DSEL로 힘든 부분이 있습니다. stored procedure를 공유한다거나 하는 아이디어들이요.
Ambition 참고해봐요 http://ambition.rubyforge.org/
좋은 자료 감사합니다. 재미있네요.