나는 그것이 좋은지 나쁜지 말할만큼 충분한 Lisp를 모른다. Lisp를 사용한 모든 사람들이 좋아하는 것 같지만 요즘 가장 인기있는 언어는 C에서 유래 한 것입니다.
그렇다면 Lisp의 장점은 무엇이며 왜 더 많이 사용되지 않을까요? Lisp에 대해 명백한 나쁜 점이 있습니까 (끊임없는 괄호 제외)?
나는 그것이 좋은지 나쁜지 말할만큼 충분한 Lisp를 모른다. Lisp를 사용한 모든 사람들이 좋아하는 것 같지만 요즘 가장 인기있는 언어는 C에서 유래 한 것입니다.
그렇다면 Lisp의 장점은 무엇이며 왜 더 많이 사용되지 않을까요? Lisp에 대해 명백한 나쁜 점이 있습니까 (끊임없는 괄호 제외)?
답변:
Lisp는 프로그래밍 언어의 Chuck Norris입니다.
Lisp는 다른 언어를 측정하는 기준입니다.
Lisp를 아는 것은 개발자의 깨달음을 보여줍니다.
나는 3 가지 약점 (그리고 그들의 반론)에 대해 들었습니다.
동적 타이핑.
런타임에 발생하지 않도록 특정 클래스의 오류를 포착 할 수있는 충분한 정보를 컴파일러에 제공하는 것을 중심으로 정적으로 형식화 된 언어에 대한 논쟁이 있습니다. 하지만 여전히 테스트가 필요합니다.
이 기사는 더 많은 테스트와 함께 동적 타이핑을 주장합니다 : Strong Typing vs. Strong Testing .
픽업하기 어렵습니다.
실제로 여기에는 학습과 도구의 두 부분이 있습니다.
Lisp는 실제로 "얻기"위해 약간의 노력이 필요하지만 그만한 가치가 있습니다. Lisp를 배우면 다른 언어로 더 나은 프로그래머가 될 수 있기 때문입니다. 예를 들어 실제로 클로저를 "얻으면"Java의 내부 클래스를 이해할 수 있습니다. 그리고 일류 함수를 "얻으면"함수없이 언어를 사용할 때마다 우울해질 것입니다.
나는 The Little Schemer를 읽었고 Practical Common Lisp를 읽고 있는데, 둘 다 훌륭합니다.
다음은 도구입니다. 저는 Mac을 사용하고 있으므로 Aquamacs Emacs (초보자에게 Emacs를 사용 가능하게 함)와 Steel Bank Common Lisp (SBCL)에 집중했습니다.
라이브러리 부족.
아직 확실하지는 않지만 의심 스럽습니다. 웹 사이트 구축을 위해 Hunchentoot 와 Elephant 가 훌륭한 도구 세트를 제공하는 것처럼 보입니다 . 그러나 실제로 Lispers가 라이브러리 부족에 대해 불평하는 것을 보지 못합니다 (Lisp가 너무 강력해서 필요하지 않은 것일까 요?).
"Lisp는 프로그래밍 가능한 프로그래밍 언어입니다."
— John Foderaro, CACM, 1991 년 9 월
내 견해는 다음과 같습니다.
표면적으로 Lisp는 멋지고 간단한 함수형 프로그래밍 언어입니다. 구문이 거의 없으며 모든 부분이 논리적으로 서로 맞습니다.
좀 더 깊이 파고 들어 SICP를 읽고 메타 원 평가자를 작성하면 두 가지를 발견하게됩니다. 하나는 전체 인터프리터 (몇 가지 기본 요소 만 제공됨)가 코드 한 페이지에 불과하고, 두 가지는 코드와 데이터 간의 관계입니다. 우아한 프로그래밍 기술을 허용합니다.
이것을 완전히 흡수하면 다른 언어가 몇 가지만 말할 수있을 때 결정적인 것처럼 느껴집니다. 리스프 구축 할 수 있는 당신이 그것을 위해 구문과 의미를 정의 할 수 있습니다 경우 모두에서 추상화.
Lisp는 매우 간단하고 단순한 정규 구문을 가지고 있기 때문에 좋습니다.
Lisp는 매우 최소한의 단순하고 정규적인 구문을 가지고 있기 때문에 나쁩니다.
"충분히 복잡한 C 또는 Fortran 프로그램에는 임시적이고 비공식적으로 지정되고 버그가 많은 Common Lisp의 절반을 느리게 구현하는 것이 포함되어 있습니다."
다음은 몇 가지 유용한 링크입니다.
피터 세이 벨의 우수한 실용 커먼 리스프의 첫 번째 챕터는 리스프를 좋아하는 그의 이유를 설명합니다. 요점은 "프로그래밍 가능한 프로그래밍 언어"라는 문구입니다. 언어를 도메인 또는 선호하는 스타일에 맞게 사용자 정의 할 수있는 기능입니다.
Lisp 프로그램은 프로그램 작동 방식에 대한 아이디어와 실제로 작성하는 코드 사이에 훨씬 명확한 매핑을 제공하는 경향이 있습니다.
출처 : http://www.gigamonkeys.com/book/introduction-why-lisp.html