2011년 1월 6일 목요일
리스프 예찬자들은 code as data, data as code 라고 예찬을 하는데,
루비 또한 code as data, data as code 입니다.
이 말에 동의하지 않는다면,
리스프에서는 list as data, data as list 라고 해야할 것이고
루비에서는 string as data, data as string 라고 해야할 것입니다.
리스프에서 코드를 데이터로 다룰려면 (quote (a b c)) 이런 식으로 써야 됩니다.
즉, (리스트) 로 묶어서 리스트로 넘기는 것이지요.
결국 루비에서 "문자열" 로 묶어서 문자열로 넘기는 것이랑 별반 차이가 없습니다.
실제 코드를 작성해보면 "문자열"로 넘기는 것이 직관적이라서 에러 빈도가 줄어듭니다.
리스프에서 (리스트) 로 넘기는 것이 얼마나 헷갈리는지 리스프 책 한 번이라도 보면 압니다.
그리고, 리스프는 코드가 리스트 구조입니다.
하지만, 루비는 코드가 리스트 구조일 수도 있고 문법이 있는 또다른 구조일 수도 있습니다.
그런 점에서 차이가 나는 것이겠죠. 어느 것이 더 편한가에 대해서는 단연 루비가 압승입니다.
리스트 구조나 문법 구조 중에 쓰고 싶은 거 마음대로 쓰면 되니까요.
이런 점에서 루비는 리스프보다 더 유연하다고 표현력이 풍부하다고 할 수 있습니다.
저는 리스프 예찬자들이 주장하는, '생각을 코드로 표현하기 좋은 언어'가 리스프다는 말에는 절대 동의하지 않습니다. (+ 1 2) 이거보다는 (1 + 2) 가 더 직관적이죠. 조건절만 보아도 명확히 알 수 있습니다.
함수형 패러다임 1종류만 갖춘 언어는 컴퓨터가 이해하기 좋은 언어일지는 몰라도 사람이 이해하기에는 좋지 않은 언어일 수 있습니
다. 어떨 때는 함수형, 어떨 때는 자연어 형으로 코딩하는 것이 편안합니다.
자동차가 달리다가 정지하는 것을 코딩하면
* 리스프 방식
(정지한다 (달린다 자동차))
물론 인자의 순서를 의도적으로 바꾸어 줄 수는 있으나, 그렇게 하면 코드의 일관성이 떨어져 무척 헷갈리게 됩니다.
* 루비 방식
1 객체지향형: 자동차.달린다.정지한다
2 함수형: 정지한다 (달린다 자동차)
상황(생각)에 맞게 코드를 작성하기 좋은 언어는 리스프보다는 "루비"입니다.
10여 년간 한글 문제 해결도 못하고 있는데 오픈소스 이 딴거 개나 줘버리라고 하세요. 오픈소스 개발자님, 관계자님 제가 하는 일에 제발 신경 끄세요. 도움 주지 마세요. 시간 빼앗겨 방해만 됩니다.
Translate
2018년 7월 21일 토요일
피드 구독하기:
댓글 (Atom)
응용 어플 끝글자 버그 잡는 거 진짜 개쉽습니다
그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유 우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다 . 이렇게 개떡 같은 게 오픈소스입니다. 전 과거 libhwp 하냐고...
-
인터넷에서 웹 브라우저로 파일을 받으면 서버 측의 잘못된 설정으로 인하여 한글 파일 이름이 이상하게 되는 경우가 많다. cp949 코드가 utf-8 로 둔갑된 경우 사용자 컴퓨터 환경이 utf-8 환경이라면 그 파일 이름 자체가 utf-8 이기 ...
-
예전에 dasom 개발하면서 많은 글을 작성했었는데 당시 drupal 로 홈페이지를 사용했었는데 drupal 관리를 못해서 데이터를 다 날려먹었습니다. 복구가 안 되요. 그래서 그 때부터 그냥 블로거에 글쓰고 있는 겁니다. 블로거는 구글에서 관리를 하...
-
그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유 우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다 . 이렇게 개떡 같은 게 오픈소스입니다. 전 과거 libhwp 하냐고...
댓글 없음:
댓글 쓰기