현실 세계의 리스프


146

나는 Lisp (실제로 Scheme)를 실험했으며 더 배우기에 관심이있는 매우 아름다운 언어라는 것을 알았습니다. 그러나 Lisp는 심각한 프로젝트에서 결코 사용되지 않은 것으로 보이며, 채용 공고에서 원하는 기술로 나열되지 않았습니다. 저는 Lisp를 사용했거나 "실제 세계"에서 사용 된 것을 보거나 그것이 순수한 학문적 언어로 간주되는지 아는 사람의 의견에 관심이 있습니다.


1
@titaniumdecoy : Clojure를 발견하고 Lisp 스타일 언어에 대한 이전 경험이 없으면 Lisp에 담론을 검색하는 사람들을 위해 Clojure 태그를 추가했습니다. :)
Ande Turner

1
@titaniumdecoy : Clojure의는 JVM에서 실행되는 자바로 작성된 API를 활용 할 수있는 리스프의 decendant입니다
ANDE 터너

12
나는 당신의 경력을 향상시키는 방법으로 Lisp를 배우지 않을 것입니다. 더 나은 일반 프로그래머가되도록 배우십시오.
skaffman

13
Clojure 메일 링리스트에서 언어를 사용하는 사람들로부터 업계 성공 사례를 자주받습니다.
Rayne

42
@ skaffman : 그러나 그것은 당신의 경력을 향상시키는 데 도움이되지 않습니까?
Erik Forbes

답변:


88

Franz, Inc.는 웹 사이트 에 전체 성공 사례 목록을 제공합니다 . 하나:

Lisp가 애니메이션 및 그래픽, AI, 생물 정보학, B2B 및 전자 상거래, 데이터 마이닝, EDA / 반도체 애플리케이션, 전문가 시스템, 재무, 지능형 에이전트, 지식 관리, 기계 CAD, 모델링 및 시뮬레이션에만 유용하다고 가정하지 마십시오. 자연어, 최적화, 리서치, 리스크 분석, 스케줄링, 텔레콤 및 웹 저작은 이들이 목록에있는 유일한 일이기 때문입니다. — 켄트 피트 만

우리는 다른 성공 사례를 찾을 수 있습니다 :  http://lisp-lang.org/success/

Common Lisp를 사용하는 현재 회사 목록 : https://github.com/azzamsa/awesome-lisp-companies


41
저 블 러브는 나에게 매우 빈약 한 만트라처럼 보인다. 물론, 이러한 영역에있을 수 있지만 대부분 레거시 코드로 사용됩니다. 실생활에서 경험 한 바에 따르면, Python은 Swigged C / C ++와 결합하여 실용적 해커에게 가장 빠른 프로토 타이핑 언어로 Lisp를 대체했습니다.
Johan Kotlinski

30
@kotlinski 증거는 어디에 있습니까? 업계를 과도하게 일반화 할 때 업계 최고의 부분이 아니라 평균에 대해 이야기하는 것입니다. 성공 스토리는 독특하고 평범하지 않은 기술 / 아이디어를 따라 거의 항상 있습니다.
루카 Ramishvili

자세한 내용은 여기 : lisp-lang.org/success (아름답게 표시됨 ) 및 여기 : Common LIsp를 사용하는 회사 .
Ehvince

54

Emacs의 생략은 계산됩니까? 그것은 내가 알고있는 가장 "실제"사용입니다 (Emacs가 "실제"라고도 확신하지는 않습니다).


아니요, 그러나 vim;) 않습니다. 불행히도 (아마도), 아무도 심각한 소프트웨어를 작성하지 않았습니다 vimscript.
새로운 123456



25

소규모 스타트 업으로서 일부 사람들은 "애플리케이션 서버"라고하는 것을 구축했습니다. 그러나 실제로는 SQL 연결 및 웹 응용 프로그램을위한 통합 된 공통 리스프 라이브러리입니다. 일부 세부 사항은 cl-dwim 프로젝트 페이지 합니다

우리는 헝가리 정부를위한 웹 애플리케이션을 개발하고 운영했습니다. 지방 정부로부터 데이터를 수집하고 국가 예산의 관련 부분을 계산하는 를 . 이것이 우리가 지금 계획하고있는 두 번째 예산입니다.

약 4000 명의 사용자가 있으며 컴퓨터 클러스터에서 실행됩니다.

"학문적 언어"기준 : 비즈니스 프로세스 모델링을위한 지속적인 연속성과 같은 작업을하고 있습니다. 몇 가지 추가 프로세스 관련 프리미티브와 몇 가지 제약 조건이있는 임의의 lisp 코드입니다. 코드에서 임의의 지점에서 멈추고 외부 이벤트를 기다리는 동안 잠들 수 있습니다 (데이터베이스로 커밋 됨).

실용적이거나 학업 적인가? 당신은 결정합니다 ... :)


와! 정부가 사용하는 모든 소프트웨어는 소프트웨어의 대부분이 얼마나 많은지를 감안할 때 기본적으로 작성되었다고 생각했습니다. 여전히 사용 중입니까?
RR

5
당연히 ... 프로젝트가 설계되고 실행 가능하며 충분한 돈 /주의가 할당되면 우리는 버려졌습니다. 잘 연결된 큰 회사가 인수하여 Java로 자체 버전을 작성했습니다. 흥미로운 하나의 장점은 그들이 몇 년 동안 코드베이스를 계속 운영한다는 것입니다. 나는 그들에게 컨설팅의 하루를 도와주었습니다 ...
Attila Lendvai


22

Paul Graham은 LISP로 작성된 ViaWeb에 대해 사용하고 작성했습니다.

여기 에 대해 알아 보십시오-평균을 이길


4
그것은 실제로 좋은 예는 아닙니다. 그들은 몇 년 전에 사업에서 나갔습니다
1800 정보

9
BTW, 나는 폴이 이것에 대해 망상이라고 생각한다고 덧붙일 수 있습니까? LISP가 그들에게 우위를 주었던 것은 아니고, 똑똑하고주의를 기울이는 것이 었습니다. VB가 성공한 유일한 도구라면 성공했을 것입니다.
Jeff

23
그들은 사업을 중단하지 않았고 야후에 의해 매입되었습니다. 적어도 개발자에게는 큰 차이가 있습니다. :-)
Geek

18
@ 1800 : Yahoo가 소유하고 다른 언어로 다시 작성한 후에는 "땅에 닿았습니다".
wfarr

6
@ 1800 : Matthias가 말한 것을 잊어 버려요. 실제로 재미 있다고 생각합니다. "실제 세계에서 사용되는 LISP의 다른 중요한 예는 없었습니다"라는 귀하의 주장은 귀하가 전지전능하다는 것을 직접적으로 암시합니다. 브라보!
Ali


12

여전히 일관되고 상당한 개발 활동을 즐기는 상당히 최근의 오픈 소스 프로젝트는 LilyPond 입니다.

쓰기 쉬운 텍스트 파일을 입력으로 받아 아름다운 악보 (pdf 파일)로 변환하는 음악 표기법 프로그램입니다. 원하는 경우 출력을 조정하는 모든 방법을 제공합니다. 괜찮은 소리의 미디 파일을 생성 할 수도 있습니다. 다른 음악가들이 읽을 수있는 멋진 악보를 만들어야 할 때마다 사용합니다. 나는 그것이 피날레보다 낫고 무료 라고 생각합니다 !

상업 카테고리에는 Notehead의 Igor Engraver도 있습니다. 불행히도이 사이트에서는 Lisp에 관한 페이지로 직접 연결되는 링크를 게시 할 수 없으므로 다운로드 페이지에서 "Lisp"링크를 찾으십시오.

게임에 Lisp를 사용하는 Naughty Dog (컴퓨터 게임 회사)도 있습니다. 이 기사는 그것에 대해 이야기하고 심지어 코드를 보여줍니다.

그리고 언급되고 연결된 많은 것들이 있지만, 이것들은 나와 함께 공감하는 주된 것들입니다 (작곡가 / 프로그래머 / 게이머 / ... 유형).


1
Schemer 는 Scheme이 LilyPond의 일부가 된 방법을 설명하는 LilyPond 매뉴얼의 일부 를 읽는 것이 흥미롭고 고무적 입니다. 이전에는 C ++로 작성되었지만 사용자가 프로그래밍 할 수 있어야한다는 것을 알았으며 Scheme에서 일부를 다시 작성하고 LilyPond에 액세스 할 수있는 Scheme 인터프리터를 작성하여 문제를 해결할 수있었습니다. 내부.
Lindsey Kuper

10

지금 저만의 주요 소프트웨어 프로젝트를 시작했다면 위의 기준에 따라 언어 결정을 내릴 것입니다. 물론, 나는 Lisp를 좋아하고, CLOS는 굉장한 어휘 범위 지정 바위이며 Lisp 매크로는 멋지다 (지시 된대로 사용되는 경우). 개인적으로 나는 Lisp 구문을 정말로 좋아합니다. […] 그러나 내가 선택을 담당하는 주요 소프트웨어 프로젝트에 대해 Lisp를 선택하도록 설득하려면 많은 시간이 걸리거나 특별한 상황이 필요할 것입니다. - 댄 Weinreb


맞아요-그러면 누구도 고용 할 수없는 것을 즐기십시오 :)
Jeff

@Jeff : "하지만 주요 소프트웨어 프로젝트에서 Lisp를 선택하도록 설득 하려면 많은 시간이 걸리 거나 특별한 상황이 필요합니다 ." Lisp에 대한 요점입니다.
jfs

이 인용문은 어디에서 왔습니까? 텍스트 덩어리로 인터넷 검색을하면이 게시물 만 얻을 수 있습니다

"결과를 생략하고 검색을 반복하십시오"를 클릭해야합니다. 다음에서 인용합니다 : 토론 .fogcreek.com
Chris Jester-Young

5
건배. 나는이 인용문이 문맥 밖에서 더 강하게 읽힌다는 것을 말해야합니다. weinreb는 현재 ITA에서 일하고 있으며 다른 것들 중에서 lisp에 대해 블로그하고 있습니다. 그것이 그의 의견에 어떻게 영향을 미쳤는지 궁금합니다.

10

더 최근의 것들 :

이들 중 처음 세 개는 CL 웹 프레임 워크 인 Weblocks를 사용하여 작성되었습니다. Wigflip과 Clutu는 순수한 Hunchentoot를 사용합니다.

이제 코딩하십시오! :)


10

허블 우주 망원경은 Lisp 계획 도구를 사용하여 예약됩니다. 우주 왕복선이었다. 웹 망원경이 될 것입니다. 내가 수십억 달러의 건강 보험 청구를 분석하기 위해 Lisp를 작성하는 회사는 경기 침체를 통해서도 매년 ~ 30 % 씩 성장하고 있습니다. 우리는 거대한 회사에 의해 매입되었으며, 프로그래머 중 한 명이 1 년 만에 처음부터 메디 케어 클레임을 분석하기위한 (거대한 회사) 소프트웨어의 출력과 일치했습니다 (실제로 향상되었습니다). Lisp가 아닌 (거대한 회사)의 코드는 6 년이 걸리고 여러 프로그래머가 소요되었습니다. 경력 측면에서 문제는 너무 많은 사람들이 "많은 자극적 인 바보 괄호"등에 대한 트위들을 듣는다는 것입니다. 대부분의 관리자는 "이를 얻지"않고 소량 관리 할 수있는 언어로 프로젝트를 진행합니다. 그들은 생각한다 "


9

Autocad에는 Lisp를 사용하여 제품을 확장하는 확장 기능이 있다고 생각합니다. AutoLISP를 참조하십시오 .


옳은. 또한 ActiveX를 구현합니다. 그것은 매우 강력하며 AtoDesk는 자체적으로 '내부'명령을 작성하는 데 사용합니다. 기본적으로 ObjectARX-C ++로 해석됩니다.
CAD bloke


8

다양한 역할에서 Lisp를 사용하는 회사, 프로젝트 및 제품이 많이 있습니다. 저는 여러 회사에서 작업을 수행했습니다.

두 가지 관련 사항이 있습니다.

  1. 귀하는 최신 가전 제품이 Common Lisp를 사용하여 구축 또는 프로그래밍되었거나 사용중인 일부 서비스가 Lisp 서버에 의해 구동된다는 것을 절대 알 수 없습니다. Lisp가 "사용되지 않는다"는 결론은 잘못입니다.

  2. … 그리고 많은 도메인과 마찬가지로 이러한 작업은 Monster.com에 나타나지 않았습니다. 채용 공고를 본 적이 없다고해서 Lisp가 필요로하거나 구직 할 수있는 기회가 없다는 의미는 아닙니다.


그렇다면 그 직업 어디에 있습니까? 나는 그것을 스스로 해결하려고 노력했다.
Charlie Flowers

2
경험 : 메일 링리스트, 회사 및 채용 담당자로부터의 직접 개인 메일, 직접 언급, 사용자 그룹 등.
Rich

1
감사. 다른 곳에서 읽은 것과 똑같은 말을하는 것처럼 들립니다. Lisp 세계는 소규모 커뮤니티이며, 해당 커뮤니티 내에서 기여하고 알리면이를 활용할 수 있습니다. 아마도 Lisp를 얻는 가장 좋은 방법 일 것입니다 직업. 동의하십니까?
Charlie Flowers

5
예. 또한, 그것은 직업, 기간을 얻는 가장 좋은 방법입니다. 실력을 발휘하고 사람들을 알게되고 자신을 알리십시오.
Rich

8

김프의 플러그인 시스템은 Scheme을 기반으로합니다. 이것이 완전히 "실제"인지는 모르겠지만 최소한 Lisp를 실제로 적용한 것 같습니다.


6

ACL2를 찾으십시오 . 소프트웨어 보안의 공식적인 방법 및 부동 소수점 하드웨어의 정확성 증명과 같은 수많은 "실제"프로젝트에 사용 된 lisp 기반의 공식 논리 엔진입니다.


이것은 놀라운 소프트웨어입니다.
user37248


6

저의 계획이 효과가 있다면 지금부터 5 년 안에 체계를 사용할 것입니다! ;피


내 계획은 아마 비슷할 것입니다 : 1) 계획 위에 킥 라이브러리를 만드십시오 (지금 반쯤). 2) 멋진 프로그램을 작성하여 라이브러리를 테스트하십시오 (1 다운, 몇 가지 더). 3) 오픈 소스 라이브러리 (이미 완료되었지만 매우 부담없이). 4) ... 5) Lisp는 직장에서 일하기위한 자연스러운 도구가됩니다.
Ali

3
나는 당신을 위해 당기고 있습니다. 그러나 당신은 단지 2 년 반 남았습니다! 당신이 궤도에 있기를 바랍니다.
Charlie Flowers

10
안녕하세요. 5 년이 지났습니다.
Karol S

1
늦어도 안 하는것 보단 낫다!
Loïc Faure-Lacroix

1
@ LoïcFaure-Lacroix 아직도 시도 중! : D
leppie

6

PRISM («Prism 프로젝트는 인공 지능 도구와 수동 시뮬레이션 시스템을 포함한 방사선 치료 계획을위한 소프트웨어 도구를 구축하기위한 장기 프로젝트입니다.»)이 Common Lisp로 작성 되었다는 것을 알게되었을 때 매우 감동 했습니다.

저는 직장에서 DICOM 을 사용하는 소프트웨어를 작성 하고 있으며 훌륭한 DICOM 구현을 작성하는 것은 어려운 일이라고 말해야합니다. 그들의 보고서 에는 Common Lisp가 어떻게 다른 구현보다 적은 노력으로 더 나은 (적어도 어떤 방식으로) 우수한 DICOM 구현을 구축하게했는지 설명합니다.


6

Lisp는 Common Music 라이브러리 와 함께 실제 알고리즘 음악 작곡에 사용 됩니다. 메타 레벨 의 릭 타우 브 ( Rick Taube)의 노트는 작문을위한 Lisp에 많은 예제를 가지고있는 주제에 대한 훌륭한 소개 텍스트입니다. 여기에 예제 디렉토리 와 여기 에 텍스트 사본이 있습니다 .


5

글쎄, 그것은 거의 주류가 아니지만 관리 가능한 한 많은 연구 코드에 lisp를 사용합니다. 역동 성과 표현력의 균형을 위해 내가 찾은 최고의 언어이며 여전히 숫자 등을위한 적절한 성능을 생성합니다.



5

방금 상징적 대수 프로그램 인 Maxima 가 Common Lisp로 작성 되었다는 것을 알았습니다 . 나는 꽤 오랫동안 그것을 사용해 왔으며 그것이 또한 아주 좋은 실제 사례라고 생각합니다.




3

리스프는 80 년대 초반에 광속으로 점프를 시도했습니다. PC가 있기 전에, 상업적으로 생산 된 "Lisp Machines"가 있었는데, 이는 슈퍼 피 카일리가 현대식 워크 스테이션과 매우 비슷해 보이지만 "완벽하게"찢어졌습니다. Lisp 하드웨어는 결국 다른 모든 작업과 마찬가지로 Intel에 손실되었습니다. Lisp 소프트웨어는 결국 C / C ++를 잃었습니다. 이것이 전부인 이유는 여러 가지 이론이 있습니다. http://www.andromeda.com/people/ddyer/lisp/


2

Scheme 프로그래밍 언어는 FLUENT Flow Modeling Software (CFD)에서 스크립팅 언어로 사용됩니다.



2

몇 사람이 이미 언급했지만 lisp는 사용자 지정 Autocad 개발에 널리 사용됩니다. Autocad에는 빌트인 리스프 통역사가 포함되어 있습니다. 제품을 확장하는 가장 간단한 방법 중 하나이며 생산성을 빠르게 향상시킬 수 있습니다.

사용자 측에서는 컴파일이 필요하지 않으며 명령 행에 1 개 이상의 라인 리스프 표현식을 입력하여 도면에서 즉시 실행할 수 있습니다. 리스프의 기초를 배우기 위해 약간의 단계를 기꺼이하고자하는 디자이너와 드래프트 맨에게는 엄청난 생산성을 제공 할 수 있습니다.

Autocad는 제품을 사용자 정의하는 여러 가지 다른 방법을 제공합니다. ObjectARX (C ++), VB, C # 등. lisp 인터페이스는 배우고 구현하기가 가장 쉽습니다. 그리고 다른 개발 환경의 대부분은 어떤 방식으로 lisp를 사용합니다.

lisp 인터프리터는 Autocad의 초기 버전에서 사용 가능했으며 변수 및 표현식이라고했습니다. 상당히 제한적이지만 추가 기능이 신속하게 추가 된 사용자에게는 성공했습니다. 완전한 비주얼 IDE가 나중에 나왔습니다 (2000 년판).

AutoCAD에 사용할 수있는 수십억 줄의 lisp 코드를 추측하는 것이 싫습니다. "autocad .lsp"에서 Google을 검색하면 230 만 개의 조회수가 반환됩니다.

좋아, 타이핑이 충분하면 다시 돌아와 현재 프로젝트에 대한 더 많은 정보를 작성합니다. :)

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