Lisp trong thế giới thực


146

Tôi đã thử nghiệm với Lisp (thực ra là Scheme) và thấy nó là một ngôn ngữ rất hay mà tôi quan tâm để tìm hiểu thêm. Tuy nhiên, dường như Lisp không bao giờ được sử dụng trong các dự án nghiêm túc và tôi chưa thấy nó được liệt kê như một kỹ năng mong muốn trên bất kỳ bài đăng công việc nào. Tôi muốn nghe từ bất cứ ai đã sử dụng Lisp hoặc thấy nó được sử dụng trong "thế giới thực", hoặc ai biết liệu nó có được coi là một ngôn ngữ học thuật thuần túy hay không.


1
@titaniumdecoy: Sau khi khám phá Clojure và không có kinh nghiệm trước đây về ngôn ngữ kiểu Lisp, tôi đã thêm thẻ Clojure cho những người tìm kiếm diễn ngôn vào Lisp. :)
Ande Turner

1
@titaniumdecoy: Clojure là một người tố cáo Lisp chạy trên JVM và có thể sử dụng các API được viết bằng Java
Ande Turner

12
Tôi sẽ không học Lisp như một cách để cải thiện sự nghiệp của bạn, bởi vì nó sẽ không. Tìm hiểu nó để làm cho bạn một lập trình viên tốt hơn, bằng mọi cách.
skaffman

13
Trong danh sách gửi thư của Clojure, chúng tôi thường xuyên nhận được những câu chuyện thành công trong ngành từ những người sử dụng ngôn ngữ này.
Rayne

42
@skaffman: nhưng điều đó có giúp cải thiện sự nghiệp của bạn không?
Erik Forbes

Câu trả lời:


88

Franz, Inc. cung cấp một danh sách đầy đủ các câu chuyện thành công trên trang web của họ. Tuy nhiên:

Xin đừng cho rằng Lisp chỉ hữu ích cho Hoạt hình và Đồ họa, AI, Tin sinh học, B2B và Thương mại điện tử, Khai thác dữ liệu, Ứng dụng EDA / Bán dẫn, Hệ thống chuyên gia, Tài chính, Đại lý thông minh, Quản lý tri thức, CAD cơ học, Mô hình hóa và mô phỏng, Ngôn ngữ tự nhiên, tối ưu hóa, nghiên cứu, phân tích rủi ro, lập kế hoạch, viễn thông và tác giả web chỉ vì đây là những điều duy nhất họ tình cờ liệt kê. - Kent Pitman

Chúng ta có thể tìm thấy những câu chuyện thành công khác ở đây:  http://lisp-lang.org/success/

và danh sách các công ty hiện tại sử dụng Common Lisp: https://github.com/azzamsa/awclaw-lisp-compiances


41
Điều đó dường như là một câu thần chú rất rỗng đối với tôi. Chắc chắn, nó có thể ở xung quanh trong các khu vực đó, nhưng sau đó chủ yếu là mã kế thừa. Theo kinh nghiệm của tôi từ đời thực, Python kết hợp với C / C ++ đã thay thế nhiều so với Lisp là ngôn ngữ tạo mẫu nhanh chóng được lựa chọn cho các tin tặc thực dụng.
Johan Kotlinski

30
@kotlinski bằng chứng ở đâu? Khi bạn phát triển quá mức ngành công nghiệp, thì bạn đang nói về mức trung bình, không phải về những phần tốt nhất của ngành. câu chuyện thành công hầu như mọi lúc đều theo những công nghệ / ý tưởng đặc biệt và không quá trung bình.
Luka Ramishvili

Xem thêm tại đây: lisp-lang.org/success (được trình bày đẹp mắt) và tại đây: các công ty sử dụng Common LIsp .
Ehvince

54

Có phải elisp của Emacs? Đó là cách sử dụng "thế giới thực" nhất mà tôi quen thuộc (mặc dù tôi không chắc chắn rằng Emacs cũng được tính là "thế giới thực").


Không, nhưng vimcó;). Thật không may (hoặc có lẽ may mắn thay), không ai viết phần mềm nghiêm túc vimscript.
new123456

43

ITA Software sử dụng Common Lisp cho nó công cụ tìm kiếm QPX thấp giá vé mà quyền hạn các trang web như Orbitz , Kayak , và AmericanUnited Airlines trong số rất nhiều người khác. Nó cũng được sử dụng một phần cho hệ thống đặt chỗ hành khách sắp tới cho Air Canada. Paul Graham đã viết một chút về Lisp tại ITA trong quá khứ.

(Tuyên bố miễn trừ trách nhiệm: Tôi làm việc ở đó.)



25

như một khởi nghiệp nhỏ, chúng tôi đã xây dựng một cái gì đó mà một số người gọi là "máy chủ ứng dụng". nhưng trên thực tế, nó chỉ là một loạt các thư viện lisp phổ biến tích hợp cho các ứng dụng web và kết nối sql. một số chi tiết có sẵn tại trang dự án cl-dwim

bằng cách sử dụng, chúng tôi đã phát triển và vận hành một ứng dụng web cho chính quyền của bang Cameron thu thập dữ liệu từ chính quyền địa phương và tính toán phần có liên quan của ngân sách của đất nước. đây là ngân sách thứ hai chúng tôi đang lên kế hoạch

Nó có khoảng 4000 người dùng và nó chạy trên một cụm máy tính.

như "ngôn ngữ học thuật": chúng tôi đang chơi với những thứ như sự tiếp nối bền bỉ cho mô hình hóa quy trình kinh doanh. đó là một số mã lisp ngẫu nhiên với một vài nguyên hàm bổ sung liên quan đến quá trình và một vài ràng buộc. nó có thể dừng tại các điểm ngẫu nhiên trong mã và ngủ thiếp đi (được đưa vào cơ sở dữ liệu) trong khi nó chờ đợi một số sự kiện bên ngoài.

nó thực tế hay học tập? bạn quyết định... :)


Ồ Tôi hoàn toàn nghĩ rằng tất cả các phần mềm mà chính phủ sử dụng đã được viết nó cơ bản nhiều nhất là bao nhiêu phần lớn chúng hút. Đây có còn được sử dụng?
RR

5
tất nhiên là không ... chúng tôi đã bị bỏ rơi một khi dự án được thiết kế, được chứng minh là khả thi và đủ tiền / sự chú ý được phân bổ. một công ty lớn hơn được kết nối tốt đã tiếp quản và viết phiên bản riêng của mình bằng java. Một điều thú vị là họ tiếp tục chạy codebase của chúng tôi trong nhiều năm. tôi đã giúp họ có một ngày tư vấn ...
Attila Lendvai


22

Paul Graham đã sử dụng và viết về ViaWeb được viết bằng LISP

Đọc về nó ở đây - Đánh bại trung bình


4
Đó không thực sự là một ví dụ điển hình, họ đã ra khỏi doanh nghiệp nhiều năm trước
1800 THÔNG TIN

9
BTW, tôi có thể chỉ nói thêm rằng tôi nghĩ Paul đang ảo tưởng về điều này: đó không phải là LISP mang lại cho họ lợi thế, nó chỉ là thông minh và chú ý. Họ có thể đã thành công với VB nếu đó là công cụ duy nhất trong tay.
Jeff

23
Họ đã không đi ra ngoài kinh doanh, họ đã được Yahoo mua lại. Sự khác biệt lớn, ít nhất là với các nhà phát triển. :-)
Head Geek

18
@ 1800: Nó chỉ "chạy xuống đất" sau khi Yahoo sở hữu nó và đã viết lại bằng ngôn ngữ khác, vì vậy hãy ngừng việc rơm rạ.
wfarr

6
@ 1800: Quên những gì Matthias nói, tôi thực sự nghĩ nó khá buồn cười. Khẳng định của bạn rằng "không có ví dụ quan trọng nào khác về LISP đang được sử dụng trong thế giới thực" trực tiếp ngụ ý rằng bạn là người toàn diện. Bravo!
Ali


12

Một dự án nguồn mở khá gần đây vẫn đang tận hưởng hoạt động phát triển nhất quán và đáng kể là LilyPond .

Đây là một chương trình ký hiệu âm nhạc lấy tệp văn bản dễ viết làm đầu vào và chuyển đổi nó thành bản nhạc đẹp (tệp pdf). Cung cấp tất cả các cách để mân mê đầu ra nếu bạn muốn. Nó thậm chí có thể tạo ra các tập tin midi âm thanh tốt. Tôi sử dụng nó bất cứ khi nào tôi cần để tạo ra những bản nhạc hay mà các nhạc sĩ khác sẽ đọc. Tôi nghĩ nó tốt hơn Finale và nó miễn phí !

Trong danh mục thương mại, còn có Igor Engraver của Notehead . Thật không may, trang web không cho phép tôi đăng một liên kết trực tiếp đến trang nói về Lisp, vì vậy hãy tải xuống và xem phía dưới để tìm liên kết "Lisp".

Ngoài ra còn có Naughty Dog (một công ty trò chơi máy tính) sử dụng Lisp trong các trò chơi của họ. Bài viết này nói về điều đó và thậm chí hiển thị một số mã.

Và có nhiều cái khác đã được đề cập và liên kết đến, nhưng đây là những cái chính cộng hưởng với tôi (là một nhà soạn nhạc / lập trình viên / game thủ / ... loại).


1
Là một Schemer, thật thú vị và truyền cảm hứng khi đọc phần hướng dẫn sử dụng LilyPond giải thích cách Scheme trở thành một phần của LilyPond. Nó từng hoàn toàn bằng C ++, nhưng họ thấy rằng người dùng cần lập trình nhiều hơn và họ có thể giải quyết vấn đề đó bằng cách viết lại các phần của nó trong Scheme và xây dựng trình thông dịch Scheme cho phép người dùng truy cập vào LilyPond nội bộ.
Lindsey Kuper

10

Nếu bây giờ tôi bắt đầu dự án phần mềm lớn của riêng mình, tôi sẽ đưa ra quyết định ngôn ngữ của mình dựa trên các tiêu chí trên. Chắc chắn, tôi yêu Lisp, CLOS là tuyệt vời, đá phạm vi từ vựng thực sự, macro Lisp rất tuyệt (khi được sử dụng theo chỉ dẫn), và cá nhân tôi thực sự thích cú pháp Lisp. [V]] Nhưng sẽ mất rất nhiều, hoặc đòi hỏi hoàn cảnh đặc biệt, để thuyết phục tôi chọn Lisp cho một dự án phần mềm lớn, nếu tôi chịu trách nhiệm đưa ra lựa chọn. - Dan Weinreb


Phải - sau đó tận hưởng không thể thuê bất cứ ai :)
Jeff

@Jeff: "Nhưng sẽ mất rất nhiều , hoặc đòi hỏi hoàn cảnh đặc biệt , để thuyết phục tôi chọn Lisp cho một dự án phần mềm lớn". Đó là một điểm chống lại Lisp.
jfs

Trích dẫn này từ đâu? googling bởi các đoạn văn bản chỉ mang lại chính bài đăng này

Bạn nên nhấp: "lặp lại tìm kiếm với kết quả bị bỏ qua". Trích dẫn là từ: thảo luận.fogcalet.com/joelonsoftware/,
Chris Jester-Young

5
chúc mừng tôi phải nói rằng, trích dẫn này đọc mạnh hơn thì thực sự là, bên ngoài bối cảnh. weinreb hiện đang làm việc tại ITA, và viết blog về lisp trong số những thứ khác; tôi tự hỏi làm thế nào và nếu điều đó có thể đã ảnh hưởng đến ý kiến ​​của anh ấy.

10

Một số cái gần đây hơn:

Ba trong số đầu tiên được viết bằng Weblocks, khung web CL. Wigflip và Clutu sử dụng Hunchentoot nguyên chất.

Bây giờ có được mã hóa! :)


10

Kính thiên văn vũ trụ Hubble được lên lịch sử dụng các công cụ lập kế hoạch Lisp. Tàu con thoi là. Kính thiên văn Webb sẽ là. Công ty tôi viết Lisp để phân tích hàng tỷ đô la yêu cầu bảo hiểm y tế và đã tăng trưởng ~ 30% mỗi năm ngay cả khi suy thoái kinh tế. Chúng tôi đã được mua bởi một công ty lớn và một trong những lập trình viên của chúng tôi đã khớp (thực sự cải thiện) sản lượng phần mềm của (công ty lớn) để phân tích các khiếu nại của Medicare, bắt đầu từ đầu, trong một năm. Mã của công ty lớn, không phải ở Lisp, mất 6 năm và một số lập trình viên. Rắc rối, khôn ngoan về nghề nghiệp, là có quá nhiều người lắng nghe những khúc mắc về "rất nhiều dấu ngoặc ngớ ngẩn khó chịu", v.v. Hầu hết các nhà quản lý không "hiểu được" và muốn có một dự án bằng ngôn ngữ đủ quen thuộc để họ có thể quản lý vi mô. Họ nghĩ "


9

Tôi tin rằng Autocad có các tiện ích mở rộng sử dụng Lisp để mở rộng sản phẩm. Xem AutoLISP .


Chính xác. Nó cũng thực hiện ActiveX - nó khá mạnh mẽ và chính AtoDesk sử dụng nó để viết các lệnh 'nội bộ'. Về cơ bản, nó được hiểu thành ObjectARX - C ++.
CAD bloke


8

Có rất nhiều công ty, dự án và sản phẩm sử dụng Lisp trong nhiều vai trò khác nhau - tôi đã thực hiện công việc cho một vài trong số đó.

Có hai điểm liên quan:

  1. bạn có thể không bao giờ biết rằng thiết bị điện tử tiêu dùng mới nhất của bạn đã được xây dựng cùng hoặc thậm chí được lập trình trong Common Lisp hoặc một số dịch vụ bạn sử dụng được cung cấp bởi máy chủ Lisp. Sẽ không đúng khi kết luận rằng Lisp "không bao giờ được sử dụng".

  2. Mạnh mẽ và, giống như rất nhiều tên miền, những công việc đó chưa bao giờ xuất hiện trên Monster.com. Chỉ vì bạn chưa bao giờ thấy một bài đăng công việc cho nó không có nghĩa là không có cơ hội yêu cầu Lisp hoặc công cụ phù hợp cho công việc ngoài kia.


Vì vậy, nơi làm những công việc xuất hiện? Tôi đã cố gắng tự giải đố điều đó.
Charlie Hoa

2
Từ kinh nghiệm: danh sách gửi thư, thư cá nhân trực tiếp từ các công ty và nhà tuyển dụng, đề cập trực tiếp, nhóm người dùng và những thứ tương tự.
Giàu

1
cảm ơn. Có vẻ như bạn đang nói điều tương tự mà tôi đã đọc ở nơi khác ... rằng thế giới Lisp là một cộng đồng nhỏ và bạn có thể tận dụng điều đó bằng cách đóng góp và được biết đến trong cộng đồng đó, và đó có lẽ là cách tốt nhất để có được Lisp việc làm. Bạn có đồng ý không?
Charlie Hoa

5
Đúng. Hơn nữa, đó là cách tốt nhất để có được việc làm, thời gian. Thể hiện kỹ năng của bạn, làm quen với mọi người và làm cho mình được biết đến.
Giàu

8

Tôi tin rằng hệ thống trình cắm của GIMP dựa trên Lược đồ. Tôi không biết liệu đây có hoàn toàn là "thế giới thực" hay không, nhưng ít nhất nó có vẻ là một ứng dụng thực tế của Lisp.


6

Tra cứu ACL2 . Đây là một công cụ logic chính thức dựa trên cơ sở đã được sử dụng cho một số dự án "thế giới thực" như các phương thức chính thức trong bảo mật phần mềm và bằng chứng về tính chính xác cho phần cứng Dấu phẩy động.


Đây là một phần mềm tuyệt vời.
dùng37248


6

Nếu kế hoạch của tôi thành công, tất cả chúng ta sẽ sử dụng Scheme sau 5 năm nữa! ; p


Các kế hoạch của tôi có lẽ khá giống nhau: 1) Tạo một thư viện kickass trên đầu trang (bây giờ là nửa chừng). 2) Kiểm tra thư viện bằng cách viết các chương trình thú vị trong đó (1 xuống, vài lần nữa). 3) Mã nguồn mở thư viện (đã được thực hiện nhưng rất tình cờ). 4) ... 5) Lisp trở thành công cụ tự nhiên cho công việc tại nơi làm việc.
Ali

3
Tôi đang kéo cho bạn. Nhưng bạn chỉ còn 2 năm rưỡi nữa! Hy vọng bạn đang đi đúng hướng.
Charlie Hoa

10
Chào. 5 năm đã qua.
Karol S

1
Muộn còn hơn không!
Loïc Faure-Lacroix

1
@ LoïcFaure-Lacroix Vẫn đang cố gắng! : D
leppie

6

Tôi đã rất ấn tượng khi phát hiện ra rằng PRISM («Dự án Prism là một dự án dài hạn để xây dựng các công cụ phần mềm để lập kế hoạch xạ trị, bao gồm các công cụ trí tuệ nhân tạo cũng như các hệ thống mô phỏng thủ công.») Được viết bằng Common Lisp.

Trong công việc của tôi, tôi đang viết phần mềm sử dụng DICOM và tôi phải nói rằng viết triển khai DICOM tốt là một công việc khó khăn. Trong báo cáo của họ, họ mô tả cách Common Lisp cho phép họ xây dựng một triển khai DICOM tốt, tốt hơn (ít nhất là theo một số cách) so với việc thực hiện khác với nỗ lực ít hơn.


6

Lisp được sử dụng trong sáng tác nhạc thuật toán trong thế giới thực với thư viện Common Music . Ghi chú của Rick Taube từ Metalevel là một văn bản giới thiệu tuyệt vời cho chủ đề có một loạt các ví dụ trong Lisp để sáng tác. Xem thư mục ví dụ ở đây và một bản sao của văn bản ở đây .


5

Chà, nó hầu như không chính thống, nhưng tôi sử dụng lisp cho càng nhiều mã nghiên cứu của tôi càng tốt. Đó là ngôn ngữ tốt nhất mà tôi đã tìm thấy cho sự cân bằng của tính năng động và tính biểu cảm trong khi vẫn tạo ra hiệu suất tốt cho số, v.v.


5

Nhà phát minh ứng dụng Google được viết bằng Đề án


5

Bây giờ tôi mới nhận ra rằng Maxima , một chương trình dành cho đại số tượng trưng, ​​được viết bằng Common Lisp. Tôi đã sử dụng nó khá lâu và tôi nghĩ đó cũng là một ví dụ thực tế rất tốt.




3

Lisp đã cố gắng nhảy lên đèn chớp vào đầu những năm 80. Trước khi có PC, đã có những chiếc "Lisp Machines" được sản xuất thương mại, trông rất giống với các máy trạm hiện đại, nhưng không thể "đi xuống" được. Phần cứng Lisp cuối cùng đã thua Intel (cũng như mọi thứ khác). Phần mềm Lisp cuối cùng đã thua C / C ++. Có nhiều lý thuyết tại sao tất cả lại như vậy. http://www.andromeda.com/people/ddyer/lisp/


2

Ngôn ngữ lập trình lược đồ được sử dụng làm ngôn ngữ kịch bản bởi FLUENT Flow Modelling Software (tính toán động lực học chất lỏng, CFD).


2

Đối với ứng dụng AutoCAD AutoLISP / Visual LISP được sử dụng rất nhiều cho các dự án thực tế và có một cộng đồng lớn người dùng.


2

Tôi thấy một vài người đã đề cập đến nó nhưng lisp được sử dụng rộng rãi trong phát triển Autocad tùy chỉnh. Autocad bao gồm một trình thông dịch lisp tích hợp. Đó là một trong những cách đơn giản nhất để mở rộng sản phẩm và cung cấp khả năng nhanh chóng nâng cao năng suất của bạn.

Không yêu cầu biên dịch, về phía người dùng và 1 hoặc nhiều hơn, các biểu thức lisp dòng có thể được nhập vào dòng lệnh và được thực hiện ngay trên bản vẽ. Đối với các nhà thiết kế và người soạn thảo sẵn sàng thực hiện ngay cả một bước nhỏ để tìm hiểu những điều cơ bản của lisp, nó có thể mang lại lợi ích rất lớn về năng suất.

Autocad cung cấp một số cách khác để tùy chỉnh sản phẩm của họ; ObjectARX (C ++), VB, C #, v.v. Giao diện lisp cho đến nay là dễ nhất để tìm hiểu và thực hiện. Và phần lớn các môi trường dev khác sử dụng lisp trong một số thời trang.

Trình thông dịch lisp đã được cung cấp trong phiên bản Autocad rất sớm và được gọi là Biến và biểu thức. Nó khá hạn chế nhưng là một thành công với người dùng khi chức năng bổ sung nhanh chóng được thêm vào. Một IDE hình ảnh đầy đủ đã xuất hiện sau đó (trong phiên bản 2000 tôi nghĩ).

Tôi ghét phải đoán có bao nhiêu triệu (hàng tỷ?) Dòng mã lisp có sẵn cho Autocad. Một tìm kiếm google trên "autocad .lsp" trả về 2,3 triệu lượt truy cập.

Ok, đủ gõ, nó trở lại hoạt động với tôi, viết nhiều hơn cho dự án hiện tại của tôi :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.