프로덕션 프로그램에 LISP 언어를 사용 하시겠습니까?
전혀
어떤 종류의 프로그램과 왜?
Lisp는 범용 동적 언어입니다. 오늘날에는 Microsoft에서 게시하지 않은 다른 범용 동적 언어와 동일한 기본 어려움이 있습니다. 기본 스레드, GUI 통합, GC의 결정적인 작동 및 작은 메모리 공간.
네이티브 스레드는 LispWorks와 SBCL에 의해 달성됩니다. 아마도 다른 사람들? 나는 완전히 조사하지 않았다.
상용 제품인 LispWorks 및 Franz Common Lisp는 GUI에 통합되어 성공합니다. $$를 사지 않아도 제대로 작동하는지 모르겠습니다. 나는 그들이 잘 작동하는 것 같아요 ...
결정적 GC 작업은 (는 성공의 어떤 수준으로 자바로 이루어집니다) 할 수 있지만, 나는 기존의 리스프 시스템 (유지 것들) 그 작업을 수행하는 코드가 있다면 모른다.
내가 생각하는 작은 메모리 공간은 일부 Lisp에 의해 달성됩니다.
저의 기본 요점은 Common Lisp가 기술적으로 생산 시스템을 만들 준비가되어 있다는 것입니다. 그리고 그렇습니다 .
대부분의 개발자는 동적 언어, 매크로, 괄호, 선호하는 IDE 부족, 대학에서의 나쁜 경험, 많은 직업이 없음, 그리고 사용하지 않는 것에 놀라게됩니다.
개인적으로 팀 환경에서 Common Lisp의 본격적인 생산 시스템을 구축하는 데 뛰어 들었습니다.
편집 : 나는 다른 언어와 달리 왜 Lisp을 사용했는지 대답하지 않았습니다.
내 Lisp 경험에서-중요하지는 않지만 'hello world'보다 훨씬 더-나는 처음 "Argh new language"고통 후에 언어를 매우 유용하게 사용할 수 있음을 발견했습니다. 대부분의 언어는 다른 언어가 실제로 작동하지 않는 매우 규칙적이고 명백한 방식으로 함께 사용됩니다. 이것의 일부는 표현과 진술의 병합입니다. 이것의 일부는 핵심 목록 데이터 유형입니다. 이것의 일부는 타입 시스템입니다. 이것의 일부는 매크로 시스템입니다. 날 오해하지 마세요,하지만, 거기에 있는 고통을 가리 킵니다. 그러나 그들은 다른 언어의 어려움만큼이나 나를 쫓아 내지 않습니다.
간단한 예 중 하나는 파이썬의 길이 목록 루틴입니다. 파이썬 접근법은을 호출하는 것 len(mysequence)
입니다. 그러나 우리가 생각하면 길이는 시퀀스의 속성입니다. 따라서 mysequence.len()
더 적절한 아이디어입니다. 리스프는 본질적으로 그 구문 구분을 제거합니다. (length thing)
함수 호출 구문과 메소드 구문입니다. 물론 어떤 사람들은 그 좌절감을 느끼고 구문상의 차이를 원합니다. 오히려 규칙 성을 갖고 싶습니다.
edit2 : 데스크탑에서 실행되는 MS 논문의 일부를 Common Lisp로 변환했으며 지금까지 함께 일하게되어 기뻤습니다.