왜 Lisp를 배워야합니까? [닫은]


125

저는 Lisp 를 배워야한다고 생각하며 저를 도와 줄 좋은 자료가 많이 있습니다.

복잡한 구문을 사용하지는 않지만 "전통적인 상업 프로그래밍"에서 절차 적 언어 대신 사용하는 것이 좋습니다.

Lisp로 작성된 상용 킬러 앱이 있습니까?


5
존재하지 않는 것에 의해 벗겨지기 어렵다.
Kaz

Philip Greenspun의 이력서를 읽으십시오 . 실제 Lisp 작업으로 안전합니다.
Kaz

1
또한 여기 . Greenspun은 패킷 교환 네트워크 시뮬레이션, DSP 설계, 프로세서 설계, VLSI 레이아웃, 기계 공학 자동화, 지구 이동 자동화 등을 위해 Lisp를 사용하거나 Lisp를 사용했습니다. 그는 Lisp 머신에서 개발 된 툴을 사용하여 Hewlett Packard의 PA-RISC 아키텍처를 설계하는 데 도움을주었습니다.
Kaz

다음은 Lisp에서 개발 된 일부 앱입니다.-Emacs, G2, AutoCad, Igor Engraver 및 Yahoo Store
Arulx Z

답변:


55

Lisp의 주요 용도 중 하나는 인공 지능입니다. 대학 친구 중 한 명이 대학원 AI 과정을 수강하고 주요 프로젝트에 대해 " Lights Out Lisp에서 "솔버를 작성했습니다. 그의 프로그램의 여러 버전은 약간 다른 AI 루틴을 사용했으며 40 대 정도의 컴퓨터에서 테스트를 수행하면 꽤 깔끔한 결과를 얻었습니다 (연결을 위해 온라인 어딘가에 있었으면 좋겠다고 생각하지 않습니다).

두 학기 전에 저는 Scheme (Lisp 기반 언어)을 사용하여 Abbott과 Costello의 "Who 's on First"루틴을 시뮬레이션 한 대화식 프로그램을 작성했습니다. 사용자의 입력은 꽤 복잡한 데이터 구조 (다른 언어의 맵과 유사하지만 훨씬 더 유연함)와 비교되어 적절한 응답을 선택할 수 있습니다. 또한 3x3 슬라이드 퍼즐 (큰 슬라이드 퍼즐로 쉽게 확장 할 수있는 알고리즘) 을 해결하는 루틴을 작성했습니다 .

요약하면 학습 Lisp (또는 체계)는 AI 이외의 많은 실제 응용 프로그램을 제공하지는 않지만 다른 많은 사람들이 언급했듯이 매우 귀중한 학습 경험입니다. Lisp와 같은 기능적 언어로 프로그래밍하면 재귀 적으로 생각하는 데 도움이됩니다 (다른 언어로 재귀에 문제가있는 경우 큰 도움이 될 수 있습니다).


5
Lisp가 AI에만 적합하다고 말하는 이유는 무엇입니까? 또한, 그것은 다중 패러다임 언어입니다. 기능은 몇 가지 패러다임 중 하나 일뿐입니다.
Luís Oliveira

6
인공 지능에만 사용한다고 말하지 않았으며 주요 용도 중 하나는 인공 지능이라고 말했습니다. 읽었습니까?
저스틴 베넷

32
"Common Lisp가 데이터베이스, 단위 테스트 프레임 워크, 스팸 필터, ID3 파서, 웹 프로그래밍, Shoutcast 서버, HTML 생성 인터프리터 및 HTML 생성 컴파일러에만 유용하다고 가정하지 마십시오. Practical CL "
Mikael Jansson

23
@JustinBennett 예 당신이 말했다. 여기서 요약하면 "Lisp (또는 체계)를 학습하면 AI 이외의 많은 실제 응용 프로그램을 얻을 수 없습니다." 사람들이 틀렸을 때 대면 할 때 나는 싫어.
루카 Ramishvili

127

Lisp는 크고 복잡한 런타임을 지원하는 크고 복잡한 언어입니다. 이러한 이유로 Lisp는 크고 복잡한 문제에 가장 적합합니다.

이제, 복잡한 문제는 동일하지 않습니다 복잡 하나. 복잡한 문제는 작은 세부 사항이 많은 하나이지만, 어려운 일이 아니다한다. 항공사 예약 시스템을 작성하는 것은 복잡한 사업이지만 충분한 돈과 프로그래머가있는 것은 어렵지 않습니다. 차이가 있습니까?

복잡한 문제는 복잡하고 전통적인 분할과 정복이 효과가없는 문제입니다. 로봇을 제어하거나 테이블 형식이 아닌 데이터 (예 : 언어) 또는 매우 역동적 인 상황에 대한 작업.

Lisp는 솔루션을 확장 할 수 있어야하는 문제에 매우 적합합니다. 전형적인 예는 emacs 텍스트 편집기입니다. 그것은 완전히 프로그래밍 가능하므로 프로그래밍 환경 자체입니다.

Norvig는 그의 유명한 책 PAIP 에서 Lisp가 탐색 적 프로그래밍에 이상적이라고 말합니다. 즉, 온라인 예약 시스템과 달리 완전히 이해되지 않은 문제에 대한 솔루션을 프로그래밍합니다. 다시 말해, 복잡한 문제.

또한 Lisp를 배우면 잊혀진 근본적인 무언가를 떠올리게됩니다. Von Neumann과 Turing의 차이점. 우리가 알고 있듯이 Turing의 계산 모델은 흥미로운 이론적 모델이지만 컴퓨터 설계 모델로는 쓸모가 없습니다. 반면에 Von Neumann은 컴퓨터와 계산이 어떻게 실행되는지에 대한 모델을 설계했습니다 : Von Neumann 모델. Von Neumann 모델의 핵심은 하나의 메모리 만 있고 코드와 데이터를 모두 저장한다는 것입니다. Java 프로그램 (또는 C # 또는 원하는 것)은 Turing 모델의 표현입니다. 프로그램을 구체적으로 한 번에 설정하십시오. 그런 다음 모든 데이터를 처리 할 수 ​​있기를 바랍니다.

Lisp는 Von Neuman 모델을 유지합니다. 코드와 데이터 사이에는 예리하고 미리 결정된 경계가 없습니다. Lisp에서의 프로그래밍은 Von Neumann 모델의 힘을 열어줍니다. Lisp에서 프로그래밍하면 오래된 개념을 새로운 시각으로 볼 수 있습니다.

마지막으로 대화식으로 프로그램을 개발할 때 (컴파일 및 실행이 아닌) 프로그램과 상호 작용하는 방법을 배웁니다. 또한 프로그래밍 방식과 프로그래밍 방식도 변경됩니다.

이 소개를 통해 귀하의 질문에 대한 답변을 드디어 제공 할 수 있습니다. "전통적인"언어보다 눈에 띄는 곳을 찾으십니까?

고급 프로그래머라면 고급 도구가 필요합니다. 그리고 Lisp보다 더 진보 된 도구는 없습니다. 즉, 문제가 어렵다면 대답은 '예'입니다. 그렇지 않다.


30
"하지만 충분한 돈과 프로그래머가있는 것은 어렵지 않습니다."-프로그래머가
많을수록

나는 즉시 코드를 생성하는 lisps의 능력에 대해 읽었지만 컴파일 할 수 있다는 것을 읽었습니다. 해석 및 컴파일 된 실행을 혼합 할 수있는 구현이 있습니까? 또는 자체 컴파일러가 포함되어 있습니까?
centaurian_slug

@ centaurian_slug : 그렇습니다. 그것은 힘의 일부입니다. 의도적으로 손상되지 않은 모든 버전은 런타임에 컴파일러 / 인터프리터를 사용할 수 있습니다. 예를 들어, 개발자는 웹 서버에서 특수 연결에 로그인하고 디버깅을 수행하고 클래스 및 함수 정의를 업데이트하고 필요한 경우 해당 정의에 의존하는 모든 것을 다시 컴파일 할 수 있습니다. 서버가 작동하는 동안 아마도 SOX 규정 준수에 대해 걱정하는 기업에서는 합법적이지 않을 수도 있지만, 이것이 업계에서 Java 및 C #과 같은 뇌사 언어를 사용하는 한 가지 이유
James


46

복잡한 구문 ??

lisp 구문은 매우 간단 합니다.

lisp로 작성된 킬러 앱 : emacs . Lisp를 사용하면 에디터가 할 수있는 거의 모든 것을 할 수 있도록 emacs를 자유롭게 확장 할 수 있습니다.

그러나 원하는 경우에만 lisp를 배워야 하며 직장에서 절대로 사용하지 못할 수도 있지만 여전히 굉장합니다.

또한 추가하고 싶습니다 : lisp가 의미가있는 장소를 찾더라도 java, c ++, c #, python, ruby ​​등에서 사용해야한다고 다른 사람을 설득하지 않을 것입니다.


@Justin : emacs 코어가 C로 작성되었다는 점에 주목할 가치가 있습니다. 그러나 그것은 단지 nit-picking입니다-모든 명령은 elisp로 작성됩니다.
Bernard

3
또는 오히려-일반적인 lisp의 핵심 구문은 간단합니다. defmacro를 사용하면 구문을 확장 할 수 있으며 내장 매크로 (예 : defmacro) 중 일부가 엄청나게 복잡해질 수 있습니다. 람다 목록, 중첩 된 따옴표 등
Aaron Aaron

emacs의 C 부분은 접착제 코드라고 말하는 것이 거의 공정합니다.
루카 Ramishvili

Emacs 참조 매뉴얼에 따르면, "Emacs의 대부분의 편집 명령은 Lisp로 작성되었지만 Lisp에서는 거의 예외가 작성되었지만 효율성을 위해 C를 사용했습니다." gnu.org/software/emacs/manual/html_mono/emacs.html#Intro
dpritch

25

직접적인 경험으로는 대답 할 수 없지만 Paul Graham 이 Lisp에 쓴 글 읽어야합니다 . "killer-app"부분에 대해서는 Beating the averages를 읽으십시오 .


2
+1. 이 답변은 첫 번째 웹 앱인 Yahoo Stores가 부분적으로 lisp로 작성되었음을 언급해야합니다. 인용 위키 백과 : 1998 년 Yahoo! Inc.는 Yahoo!의 455,000 주를 통해 Viaweb을 인수했습니다. 주식은 약 4,900 만 달러로 야후! 저장.
Steven Lu

17

나는 약 1 년 동안 전문적으로 Lisp에서 프로그램을했으며, 학습 할 가치가 있습니다. 가능한 모든 상용구 코드를 함수로 대체하고 그렇지 않은 경우 매크로를 사용하여 코드에서 중복성을 제거 할 수있는 최고의 기회를 갖게됩니다. 또한 코드와 데이터 간을 자유롭게 변환하여 런타임시 탁월한 유연성에 액세스 할 수 있습니다. 따라서 사용자 작업으로 복잡한 구조를 동적으로 구축해야하는 상황이 Lisp가 진정으로 빛나는 곳입니다. 인기있는 항공사 스케줄러는 Lisp로 작성되었으며 Lisp에는 많은 CAD / CAM도 있습니다.


9

프로그래밍이 마음에 드시면 순수한 즐거움을 위해 Lisp를 배워야합니다. XKCD 는 다음과 같은 지적 깨달음을 완벽하게 표현합니다. 리스프를 배우는 것은 스님에게 명상이 무엇인지 프로그래머를위한 것입니다.


9

Lisp는 작은 DSL을 만드는 데 매우 유용합니다. 직장에서 실행되는 Box에 Lisp 사본이 있으며 SQL Server 데이터베이스를 조사하고 C #에서 데이터 계층 등을 생성하기 위해 DSL을 거의 작성하지 않았습니다. 모든 보일러 플레이트 코드는 이제 lisp 매크로로 작성되어 C #으로 출력됩니다. HTML, XML 등 모든 종류의 것들을 생성합니다. 일상적인 코딩에 Lisp를 사용할 수 있기를 원하지만 Lisp는 실질적인 이점을 제공 할 수 있습니다.


나는 이것을 위해 dotlisp.sourceforge.net/dotlisp.htm 을 사용 합니다.
Mark Hurd

5

언어의 일반적인 들여 쓰기 규칙을 사용하지 않으면 모든 언어가 훨씬 더 어려워 보입니다. Lisp를 따르는 경우 구문 트리 구조를 매우 쉽게 표현하는 방법을 알 수 있습니다 (미리보기가 약간 있으므로 r이 재귀 적 quicksort 인수에서 fns와 정렬되어야 함).

(defun quicksort (lis) 
  (if (null lis) 
      nil
      (let* ((x (car lis)) 
             (r (cdr lis)) 
             (fn (lambda (a) 
                   (< a x))))
         (append (quicksort (remove-if-not fn 
                                           r)) 
                 (list x)
                 (quicksort (remove-if fn 
                                       r))))))

1
나는 당신이하는 말에 공정한 비판이 있다고 생각합니다. 나는 단지 "네가 제시 한대로 훨씬 더 어려워 보이고 여기에 제시된 것보다 훨씬 더 선명 해 보인다"고 말하는 것입니다. 들여 쓰기 규칙을 따르지 않으면 많은 언어가 더 혼란스럽게 보인다는 데 동의해야한다고 생각합니다. 또한 Java와 Lisp의 들여 쓰기를 비교하면 일반적으로 각 언어의 기본 구성에 대해 거의 동일한 수준의 지식이 있어야 올바르게 들여 쓰기 할 수 있습니다. 그러나 전적으로 주관적이지만 여전히 어려워 보이는 것은 공평합니다.
와플과 존

1
좀 더 간단하게 만들려면 표준 let을 사용 defun하고 함수 시작 부분에 a 를 사용하여 fn변경되지 않도록 정의 하십시오.
Aaron Robson

4
@FerretallicA 어떤 것이 "쉽게 사람이 읽을 수 있는지"또는 "자기 설명"인지를 어떻게 판단합니까? 영어와 비슷합니까? 중국어는 "쉽게 사람이 읽을 수 있습니까?" 수학 표기법은 어떻습니까? "쉽게 사람이 읽을 수 없습니까?" 이런 종류의 논쟁은 숨겨져있는 메시지는 다음과 같기 때문에 성가시다.

3
당신의 '반박'은 "휘깅 nge 지"처럼 들립니다. 프로그래밍 언어 스 니프 테스트를 시도하십시오. 이전에 프로그래밍하지 않은 사람을 데리고 VB 코드 페이지와 Lisp 코드 페이지를 표시하십시오. 나는 캐주얼 관찰자가 두 가지 중 어느 것이 의미있는 관찰을보다 쉽게 ​​그릴 수 있는지에 대해 내 왼쪽 너트를 행복하게 베팅 할 것입니다.
nathanchere

1
중국인, 일본인, 한국인, 수메르 인, 힌디어 또는 아랍어 이외의 비 프로그래머가 고환을 쉽게 포기하기 위해 고집을 포기하려는 욕망에 대해 어떻게 생각하는지 궁금합니다.

4

나는 새로운 언어를 배우는 것이 항상 당신이 이미 알고있는 언어의 프로그래밍 스타일에 영향을 미친다는 것을 알았습니다. 나를 위해 항상 주 언어 인 Java 인 문제를 해결하는 다른 방법으로 생각하게했습니다. 나는 일반적으로 프로그래밍 측면에서 당신의 시야를 넓 힙니다.


좋은 프로그래머이기 때문입니다. 나쁜 프로그래머는 새로운 지식에 구식 기술에 영향을주는 대신 새로운 언어로 글을 쓰면서 이미 알려진 언어로 생각합니다. 그러나 왜 lisp 후에 Java를 사용하고 있습니까? :) Java는 Lisp, imo 이후에 사용하기가 가장 어렵습니다.
루카 Ramishvili

4

리스프를 배워야하는지 스스로에게 물어봐야 할 필요는 없습니다.


8
나는 반대말을하고 싶습니다 : 당신이 비슷한 언어를 경험했기 때문에 lisp를 이미 이해하고 있다면 아마도 필요하지 않을 것입니다. lisp가 무엇을 제공해야하는지 이해하지 못하면 노출의 혜택을 누릴 수 있습니다.
Mr Fooz

@MrFooz는 lisp의 lispy 부분을 배울 필요가없는 유사한 언어가 없습니다. lisp의 주요 기능은 어떤 언어로도 찾을 수 없습니다. 대부분이 있습니다.
루카 라미 쉬 빌리

당신의 목표에 따라. 죽고 싶다면 숨을 쉴 필요가 없습니다. 그렇다고해서는 안된다는 의미는 아닙니다.
mimoralea

4

저는 80 년대에 대학에서 "작은 수업"을 들었습니다. 수업 시간에 제시된 모든 개념을 이해했지만, 나는 리스프를 훌륭하게 만드는 것에 대해 전혀 감사 하지 않았습니다 . 많은 사람들이 lisp를 또 다른 프로그래밍 언어로 생각합니다. 이것이 대학에서 그 과정이 수년 전에 저에게 해준 일입니다. 누군가 lisp 구문 (또는 그 부족)에 대해 불평하면, lisp의 위대함을 파악하지 못한 사람들 중 하나 일 가능성이 높습니다. 나는 아주 오랫동안 그 사람들 중 하나였습니다.

20 년이 지난 후, 내가 lisp에 대한 관심을 다시 불러 일으켰을 때, 어쨌든 lisp가 흥미로운 이유를 "얻기"시작했습니다. 클로저와 리스프 매크로에 의해 마음이 터지지 않고 리스프를 배울 수 있다면 요점을 놓친 것입니다.


나는 두 번째입니다. 저는 현재 학교에서 5 년 동안 Lisp로가는 두 번째 길에 있습니다. 여전히 녹색 일 때 Lisp의 한 용어는 적절한 효과가 없을 수 있습니다. 메타 프로그래밍에만 초점을 맞추었지만 메타 프로그래밍과 유연성에 대해서는 아직 감사하지 않았습니다.
Aaron

4

LISP / Scheme을 배우면 응용 프로그램 공간이 늘어날 수는 없지만 기능 프로그래밍, 규칙 및 예외에 대한 이해도를 높일 수 있습니다.

6 개의 중첩 된 순수 함수의 아름다움의 차이점과 부작용이있는 6 개의 중첩 된 함수의 악몽을 배우는 것만으로도 시간을 투자 할 가치가 있습니다.


4

에서 http://www.gigamonkeys.com/book/introduction-why-lisp.html

Lisp에 대해 가장 일반적으로 반복되는 신화 중 하나는 "죽었다"는 것입니다. Common Lisp가 Visual Basic 또는 Java만큼 널리 사용되지는 않지만 새로운 개발에 계속 사용되고 새로운 사용자를 "죽은"언어로 묘사하는 것은 이상하게 보입니다. 최근 Lisp의 성공 사례로는 Paul Graham의 Viaweb이 있으며 Yahoo는 회사를 인수했을 때 Yahoo Store가되었습니다. 온라인 티켓 판매 업체 Orbitz 및 기타 업체가 사용하는 ITA Software의 항공료 가격 책정 및 쇼핑 시스템 QPX; PlayStation 2, Jak 및 Daxter를위한 Naughty Dog의 게임은 주로 도메인 별 Lisp 방언으로 작성되었습니다. Naughty Dog는 GOAL이라고 불렀습니다. 룸바, 소프트웨어가 L로 작성된 자율 로봇 진공 청소기는 하향 호환되는 Common Lisp 하위 세트입니다. 아마도 오픈 소스 Common Lisp 프로젝트를 호스팅하는 Common-Lisp.net 웹 사이트의 성장과 지난 몇 년 동안 발생한 로컬 Lisp 사용자 그룹의 수에 대해 더 많은 정보를 얻을 수있을 것입니다.


4

"Lisp는 마침내 그것을 얻을 때 얻게 될 심오한 깨달음 경험을 배워 볼 가치가 있습니다.이 경험은 Lisp 자체를 실제로 많이 사용하지 않더라도 나머지 날 동안 더 나은 프로그래머가 될 것입니다."

--Eric S. Raymond, "해커가되는 방법"

http://www.paulgraham.com/avg.html


3

Lisp가 상업적 환경에서 절대 사용하지 않을 언어 중 하나라는 데 동의합니다. 그러나 당신이 이해하지 못하더라도 그것을 배우면 프로그래밍에 대한 이해가 전체적으로 넓어 질 것입니다. 예를 들어, 나는 대학에서 Prolog를 배웠으며 나중에 그것을 사용하지는 않았지만 많은 프로그래밍 개념에 대해 더 많이 이해하고 사용하는 언어에 대해 (때로는) 더 큰 감사를 드렸습니다.

그러나 당신이 그것을 배우려고한다면 ... 반드시 Lisp를 읽으십시오.


작은 참고 사항 : Lisp에서 Lisp에 대한 적절한 소개는 아닙니다. 먼저 다른 것을 읽으십시오. Practical Common Lisp를 권장합니다.
Luís Oliveira

3

학습 리스프는 자바 스크립트를 완전히 다른 시각으로 만들 것입니다! 리스프는 재귀와 "일등 객체로서의 기능"-패러다임을 모두 잡아야합니다. Scheme과 Javascript 에 대한 Crockfords의 훌륭한 기사를 참조하십시오 . Javascript는 아마도 오늘날 가장 중요한 언어 일 것이므로 더 잘 이해하는 것이 매우 유용합니다!


1
가장 중요한 언어? 나는 그렇지 않다고 생각합니다.
TraumaPony

7
글쎄, 그것은 웹 브라우저가있는 거의 모든 장치에서 사용할 수 있으며 (아마도 그렇지 않은 몇 가지) 최종 사용자 응용 프로그램을 실행하는 언어는 지구상에서 프로그래밍 언어의 가장 높은 침투력을 가지고 있습니다 . 분명히 중요한 것에 대해 완전히 다른 의견을 가질 수 있습니다. 암을 치료하는 데 사용됩니까? 아마 아닙니다. 그러나 좋아하든 그렇지 않든, 그것은 앞으로 몇 년 동안 (웹) 응용 프로그램 개발의 초석 중 하나가 될 것입니다.
Erlend Halvorsen

1
나는 같은 길을 갔다! Javascript의 기능 및 프로토 타입 기능을 이미 사용하고 있었지만 Lisp를 배운 후에도 Javascript는 새로운 언어였습니다.
루카 Ramishvili


3

좋아, 나는 이상 할지도 모르지만 폴 그레이엄의 에세이를 좋아하지는 않는다. Lisp는 Common Lisp에 대한 이해가 없다면 정말 거친 책입니다. 대신 Siebel의 Practical Common Lisp 로 가라고 말하고 싶습니다 . "killer-apps"에 관해서는 Common Lisp가 ITA 와 같은 틈새 상점에서 그 위치를 찾는 것처럼 보이 므로 CL과 동의어가 없지만 Rails가 Ruby에 대한 방식은 업계에서 사용하는 경우가 있습니다. 조금 파고.


2

복잡한 구문? lisp의 장점은 엄청나게 간단한 구문을 가지고 있다는 것입니다. 목록의 각 요소는 다른 목록이거나 기본 데이터 유형일 수 있습니다.

함수를 다른 데이터 유형으로 생각하고 사용하는 코딩 능력을 향상시키는 방식 때문에 학습 할 가치가 있습니다. 명령형 및 / 또는 객체 지향 언어로 코딩하는 방식을 개선하면 코드 구성 방식에 정신적으로 유연해질 수 있습니다.


2

다른 답변에 추가하려면 다음을 수행하십시오.

SICP 코스 (비디오는 여기에서 볼 수 있음 )가 훌륭 하기 때문에 Lisp 와 더 많은 것을 가르쳐줍니다 !


2

킬러 앱? Franz Inc.성공 사례 가 많지만이 목록에는 AllegroCL 사용자 만 포함됩니다. 아마도 다른 사람들도있을 것입니다. 내가 가장 좋아하는 것은 Naughty Dog에 관한 이야기입니다. 입니다. Crash Bandicoot 게임의 큰 팬 이었기 때문입니다.

Common Lisp를 배우려면 Practical Common Lisp를 권장 합니다. 적어도 내가 본 다른 책보다 쉽게 ​​만들 수있는 실습 방식이 있습니다.


2

Clojure를 사용할 수 있습니다오늘 하여 Java VM 위에 테스트 및 스크립트를 작성할 . JVM에는 다른 Lisp 언어가 구현되어 있지만 Clojure는 Java와의 통합 작업이 가장 훌륭하다고 생각합니다.

Java 자체가 Java 코드에 대한 테스트를 작성하지 못하는 경우가 있습니다 ( "전통적인 상용 프로그래밍"포함). (저는 Java의 기소로서 다른 언어들도 같은 문제를 겪고 있다는 것을 의미하지는 않지만 사실입니다. Java가 아닌 주제이므로 정교하지 않을 것입니다. 자유롭게 새로운 주제를 시작하십시오 Clojure는 이러한 많은 장애를 제거합니다.


2

Lisp는 기존 프로그래밍을 사용하는 모든 곳에서 사용할 수 있습니다. 그렇게 다르지 않고 더 강력합니다. 웹앱을 작성하십니까? Lisp에서 데스크톱 응용 프로그램을 작성할 수 있습니까? Lisp, Python 또는 다른 일반 프로그래밍에서 수행 할 수 있습니다 (한 작업에만 적합한 몇 가지 언어가 있음).

가장 큰 장애물은 아마도 상사, 동료 또는 고객을 받아들이는 것입니다. 그것은 당신이 그들과 함께 일해야 할 것입니다. JVM에서 라이브러리까지 Java 인프라의 현재 설치 기반을 활용할 수있는 Clojure 와 같은 실용적인 솔루션을 선택하면 도움이 될 수 있습니다. 또한 Java 프로그램이있는 경우 플러그인 아키텍처를 수행하고이를 위해 Clojure 플러그인을 작성하여 Clojure에서 코드의 절반을 작성하게됩니다.


1

이유는 아니지만 AutoCAD는 LISP & DCL 런타임을 지원합니다. VBA 나 C ++ 또는 .NET SDK를 사용하지 않거나 DIESEL 표현식으로 잘라 내지 않는 경우 복잡한 매크로 (ActiveX 자동화 포함)를 작성하는 편리한 방법입니다.

많은 AutoCAD 기능은 실제로 LISP 루틴입니다.


1

이것은 내가 한동안 고민했던 주제이지만 평소 시간이 주요 문제이므로 결정을 내리지 못했습니다 ...;)

그리고이 게시물 에서이 링크를 찾을 수 없으므로 대중을 위해 추가합니다.

성공 및 실패 사례 : JPL에서리스 핑

정말 인상적인 성공 사례 : Orbitz Corporation에서 Lisp 사용

Java 대신 Lisp를 사용할지 비교 및 ​​분석 : Java 대신 Lisp




0

킬러 앱? ITA Software의 비행 검색 엔진은 하나입니다.

"왜"에 관해서는 아마도 당신을 더 나은 개발자로 만들 것이며 아마도 당신을 더 나쁘게 만들지 않을 것입니다. 그러나 다른 언어에 대한 lisp 방언을 선호하게 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.