Gerçek dünyada Lisp


146

Lisp (aslında Scheme) ile deneyler yaptım ve daha fazlasını öğrenmek istediğim çok güzel bir dil olduğunu gördüm. Ancak Lisp'in hiçbir zaman ciddi projelerde kullanılmadığı ve herhangi bir iş ilanında istenen bir beceri olarak listelendiğini görmedim. Lisp'i kullanan veya "gerçek dünyada" kullanıldığını gören veya tamamen akademik bir dil olarak kabul edilip edilmediğini bilen herkesten haber almakla ilgileniyorum.


1
@titaniumdecoy: Clojure'u keşfettikten ve Lisp tarzı dillerde daha önce hiç deneyime sahip olmadıktan sonra, Lisp'e söylem arayanlar için Clojure etiketini ekledim. :)
Ande Turner

1
@titaniumdecoy: Clojure, JVM üzerinde çalışan ve Java ile yazılmış API'leri kullanabilen Lisp'in bir görevlisidir
Ande Turner

12
Lisp'i kariyerinizi geliştirmenin bir yolu olarak öğrenmezdim çünkü olmayacak. Elbette, sizi daha iyi bir genel programcı yapmak için öğrenin.
skaffman

13
Clojure posta listesinde, dili kullanan insanlardan sık sık sektör başarı öykülerini alıyoruz.
Rayne

42
@skaffman: ama bu kariyerinizi geliştirmenize yardımcı olmaz mı?
Erik Forbes

Yanıtlar:


88

Franz, Inc., web sitelerinde kapsamlı bir başarı öyküleri listesi sunar . Ancak:

Lütfen Lisp'in yalnızca Animasyon ve Grafikler, AI, Biyoinformatik, B2B ve E-Ticaret, Veri Madenciliği, EDA / Yarı İletken uygulamaları, Uzman Sistemler, Finans, Akıllı Aracılar, Bilgi Yönetimi, Mekanik CAD, Modelleme ve Simülasyon için yararlı olduğunu varsaymayın. Natural Language, Optimization, Research, Risk Analysis, Scheduling, Telecom ve Web Authoring sırf listeledikleri tek şey bunlar olduğu için. - Kent Pitman

Diğer başarı öykülerini burada bulabiliriz:  http://lisp-lang.org/success/

ve Common Lisp kullanan mevcut şirketlerin listesi: https://github.com/azzamsa/awesome-lisp-companies


41
Bu tanıtım yazısı bana çok boş bir mantra gibi geliyor. Elbette, bu alanlarda olabilir, ancak daha sonra çoğunlukla eski kod olarak. Gerçek hayattan edindiğim deneyime göre, Python, değiştirilmiş C / C ++ ile birleştiğinde, pragmatik bilgisayar korsanları için tercih edilen hızlı prototipleme dil (ler) i olarak Lisp'in yerini almıştır.
Johan Kotlinski

30
@kotlinski kanıt nerede? sektörü aşırı genelleştirdiğinizde, ortalamanın en iyi kısımlarından değil, ortalamadan bahsediyorsunuz. başarı öyküleri neredeyse her seferinde farklı ve pek de sıradan olmayan teknolojileri / fikirleri takip eder.
Luka Ramishvili

Daha fazlası burada: lisp-lang.org/success (güzelce sunulmuştur) ve burada: Common LIsp kullanan şirketler .
Ehvince

54

Emacs'ın elisp'i sayılır mı? Bu, aşina olduğum en "gerçek dünya" kullanımıdır (Emacs'ın da "gerçek dünya" olarak sayıldığından emin değilim).


Hayır, ama vimyapar;). Ne yazık ki (veya belki de neyse ki), kimse ciddi bir yazılım yazmadı vimscript.
new123456



25

küçük bir başlangıç ​​olarak, bazılarının "uygulama sunucusu" dediği bir şey oluşturduk. ama aslında bu, sql bağlantısı ve web uygulamaları için bir dizi entegre ortak lisp kitaplığıdır. bazı detaylar cl-dwim proje sayfasında mevcuttur

bunu kullanarak , yerel yönetimlerden veri toplayan ve ülke bütçesinin ilgili kısmını hesaplayan macar hükümeti için bir web uygulaması geliştirdik ve işlettik . bu şu anda planladığımız ikinci bütçe.

yaklaşık 4000 kullanıcısı vardır ve bir bilgisayar kümesi üzerinde çalışır.

"akademik dil" itibariyle: iş süreci modellemesi için ısrarcı devamlılıklar gibi şeylerle oynuyoruz. birkaç ekstra işlemle ilgili ilkel ve birkaç kısıtlama içeren rastgele bir lisp kodudur. koddaki rastgele noktalarda durabilir ve bazı harici olayları beklerken uykuya dalabilir (veritabanına girebilir).

pratik mi yoksa akademik mi? sen karar ver... :)


Vaov! Hükümetin kullandığı tüm yazılımların, çoğunun ne kadar emdiği göz önüne alındığında, en fazla temel olarak yazıldığını düşündüm. Bu hala kullanılıyor mu?
RR

5
elbette hayır ... proje tasarlandıktan, uygulanabilir olduğu kanıtlandıktan ve yeterli para / ilgi ayrıldıktan sonra terk edildik. iyi bağlantıları olan daha büyük bir şirket devraldı ve java'da kendi versiyonunu yazdı. İlginç bir haber, kod tabanımızı yıllarca çalıştırmaya devam etmeleridir. onlara bir günlük danışmanlık konusunda yardımcı
oldum


22

Paul Graham, LISP'de yazılan ViaWeb'i kullandı ve yazdı

Burada okuyun - Ortalamayı Geçmek


4
Bu gerçekten iyi bir örnek değil, yıllar önce
1800 BİLGİ

9
BTW, Paul'ün bu konuda hayal gördüğünü düşündüğümü ekleyebilir miyim: Onlara avantaj sağlayan LISP değildi, sadece akıllı davranmak ve dikkat etmekti. Eldeki tek araç bu olsaydı, VB ile başarılı olabilirlerdi.
Jeff

23
İşsiz kalmadılar, Yahoo tarafından satın alındı. En azından geliştiriciler için büyük fark. :-)
Head Geek

18
@ 1800: Yalnızca Yahoo'ya sahip olduktan ve başka bir dilde yeniden yazdıktan sonra "yere çakıldı", bu yüzden samanlığı durdurun.
wfarr

6
@ 1800: Matthias'ın söylediklerini unutun, aslında oldukça komik olduğunu düşünüyorum. "Gerçek dünyada kullanılan başka önemli LISP örnekleri yoktur" şeklindeki iddianız, doğrudan her şeyi bilen olduğunuzu ima ediyor. Bravo!
Ali


12

Hala tutarlı ve önemli geliştirme faaliyetlerinden zevk alan oldukça yeni bir açık kaynak projesi LilyPond'dur .

Yazması kolay bir metin dosyasını girdi olarak alan ve onu güzel notalara (pdf dosyaları) dönüştüren bir müzik notasyon programıdır. İsterseniz çıktıyla oynamanın her türlü yolunu sunar. Hatta düzgün ses veren midi dosyaları da üretebilir. Diğer müzisyenlerin okuyacağı güzel notalar yapmam gerektiğinde kullanıyorum. Finale'den daha iyi ve bedava olduğunu düşünüyorum !

Ticari kategoride, Notehead'in Igor Engraver'ı da var . Ne yazık ki, site Lisp'ten bahseden sayfaya doğrudan bir bağlantı göndermeme izin vermiyor, bu yüzden indirmelere gidin ve bir "Lisp" bağlantısı için altta bakın.

Lisp'i oyunlarında kullanan Naughty Dog (bir bilgisayar oyunu şirketi) de var. Bu makale bundan bahsediyor ve hatta bazı kodlar gösteriyor.

Bahsedilen ve bağlantılı olan daha pek çok kişi var, ama bunlar benimle rezonansa giren başlıca şeyler (besteci / programcı / oyuncu / ... tipi olmak).


1
Bir Schemer olarak, LilyPond kılavuzunun Scheme'nin LilyPond'un bir parçası olduğunu açıklayan bölümünü okumak ilginç ve ilham vericidir . Eskiden tamamen C ++ içindeydi, ancak kullanıcı tarafından daha programlanabilir olması gerektiğini buldular ve bu sorunu, parçalarını Scheme'de yeniden yazarak ve kullanıcıya LilyPond'a erişim sağlayan bir Scheme yorumlayıcısı oluşturarak çözebildiler. dahili.
Lindsey Kuper

11

Hubble Uzay Teleskobu, Lisp planlama araçları kullanılarak planlanmıştır. Uzay Mekiği öyleydi. Webb teleskopu olacak. Lisp için yazdığım şirket milyarlarca dolarlık sağlık sigortası taleplerini analiz ediyor ve durgunlukta bile yılda ~% 30 büyüyor. Büyük bir şirket tarafından satın alındık ve programcılarımızdan biri (büyük şirketin) Medicare taleplerini analiz etmek için yazılımını bir yıl içinde sıfırdan başlayarak eşleştirdi (aslında geliştirdi). (büyük şirket) 'in kodu, Lisp'de değil, 6 yıl ve birkaç programcı aldı. Kariyer açısından sorun şu ki, çok fazla kişi "sinir bozucu bir sürü aptal parantez" vb. Çoğu yönetici "anlamıyor" ve mikro yönetebilecekleri kadar tanıdık bir dilde bir proje olmasını tercih ediyor. Onlar düşünür "


10

Şimdi kendi büyük yazılım projemi başlatırsam, dil kararımı yukarıdaki kriterlere göre verirdim. Elbette, Lisp'i seviyorum, CLOS harika, gerçek sözcük kapsam kayaları, Lisp makroları çok havalı (yönetildiği gibi kullanıldığında) ve kişisel olarak Lisp sözdizimini gerçekten seviyorum. […] Ama seçim yapmakla ben sorumlu olsaydım, beni büyük bir yazılım projesi için Lisp'i seçmeye ikna etmek çok zaman alır veya özel koşullar gerektirirdi. - Dan Weinreb


Doğru - o zaman kimseyi işe alamamanın tadını çıkarın :)
Jeff

@Jeff: "Ama beni büyük bir yazılım projesi için Lisp'i seçmeye ikna etmek çok zaman alır veya özel koşullar gerektirir ". Lisp'e karşı bir noktadır.
jfs

bu alıntı nereden geliyor? metin parçalarıyla googling yapmak yalnızca bu

Şunu tıklamalısınız: "Aramayı atlanan sonuçlarla tekrarlayın". Alıntı şundan
Chris Jester-Young

5
şerefe. Söylemeliyim ki, bu alıntı bağlamın dışında olduğundan daha güçlü okuyor. weinreb şu anda ITA'da çalışıyor ve diğer şeylerin yanı sıra lisp hakkında blog yazıyor; Bunun onun fikrini nasıl ve etkilemiş olabileceğini merak ediyorum.

10

Daha yeni olanlar:

Bunlardan ilk üçü, bir CL web çerçevesi olan Weblocks kullanılarak yazılmıştır. Wigflip ve Clutu saf Hunchentoot kullanıyor.

Şimdi kodlamaya başlayın! :)


9

Autocad'in ürünü genişletmek için Lisp kullanan uzantıları olduğuna inanıyorum. AutoLISP'e bakın .


Doğru. Aynı zamanda ActiveX'i de uygular - oldukça güçlüdür ve AtoDesk bunu 'dahili' komutlar yazmak için kullanır. Temel olarak ObjectARX - C ++ olarak yorumlanır.
CAD bloke


8

Lisp'i çeşitli rollerde kullanan pek çok şirket, proje ve ürün var - birkaçı için çalıştım.

İki önemli nokta var:

  1. En son tüketici elektroniği parçanızın Common Lisp ile oluşturulduğunu veya programlandığını ya da kullandığınız bazı hizmetlerin bir Lisp sunucusu tarafından desteklendiğini asla bilemezsiniz. Lisp'in "asla kullanılmadığı" sonucuna varmak yanlış olur.

  2. … Ve pek çok alan adı gibi, bu işler de Monster.com'da hiç görünmedi. Sırf hiç iş ilanı görmemiş olmanız, Lisp gerektiren veya iş için doğru araç fırsatlarının olmadığı anlamına gelmez.


Peki yok bu işlerin görünmesinin? Bunu kendim çözmeye çalışıyorum.
Charlie Flowers

2
Deneyimlerden: posta listeleri, şirketlerden ve işe alım uzmanlarından doğrudan kişisel postalar, yüz yüze sözler, kullanıcı grupları ve benzerleri.
Zengin

1
Teşekkürler. Sanki başka bir yerde okuduğum şeyin aynısını söylüyorsunuz ... Lisp dünyası küçük bir topluluktur ve bu topluluk içinde katkıda bulunarak ve bilinerek bundan yararlanabilirsiniz ve muhtemelen Lisp'i edinmenin en iyi yolu budur. Meslekler. Katılıyor musun?
Charlie Flowers

5
Evet. Dahası, iş bulmanın en iyi yolu bu, nokta. Becerilerinizi gösterin, insanları tanıyın ve kendinizi tanıtın.
Zengin

8

GIMP'nin eklenti sisteminin Scheme'ye dayandığına inanıyorum. Bunun tamamen "gerçek dünya" olup olmadığını bilmiyorum ama en azından Lisp'in pratik bir uygulaması gibi görünüyor.


7

Yukarı bak ACL2 . Yazılım güvenliğindeki biçimsel yöntemler ve Kayan nokta donanımı için doğruluk kanıtları gibi bir dizi "gerçek dünya" projesi için kullanılan lisp tabanlı biçimsel bir mantık motorudur.


Bu harika bir yazılım parçasıdır.
user37248


6

Planlarım işe yararsa, bundan 5 yıl sonra hepimiz Scheme'yi kullanacağız! ; p


Planlarım muhtemelen oldukça benzer: 1) Planın üstüne bir kickass kitaplığı yapın (şimdi yarı yolda). 2) İçine harika programlar yazarak kitaplığı test edin (1 aşağı, birkaç tane kaldı). 3) Açık kaynak kitaplığı (zaten yapıldı ama çok gelişigüzel) 4) ... 5) Lisp, iş yerindeki bir iş için doğal bir araç haline gelir.
Ali

3
Senin için çekiyorum Ama sadece 2 buçuk yılın kaldı! Umarım yoldasındır.
Charlie Flowers

10
Selam. 5 yıl geçti.
Karol S

1
Geç, hiç olmamasından iyidir!
Loïc Faure-Lacroix

1
@ LoïcFaure-Lacroix Hala çalışıyor! : D
leppie

6

PRISM'in ("Prism projesi, yapay zeka araçları ve manuel simülasyon sistemleri de dahil olmak üzere radyasyon tedavisi planlaması için yazılım araçları oluşturmak için uzun vadeli bir projedir.") Common Lisp'te yazıldığını öğrendiğimde oldukça etkilendim .

İşimde DICOM kullanan bir yazılım yazıyorum ve iyi DICOM uygulaması yazmanın zor bir iş olduğunu söylemeliyim. Onların içinde raporunda onlar Common Lisp onları daha az çabayla diğer uygulamaya göre (bazı açılardan en azından) daha iyi bir DICOM uygulama yapalım nasıl tarif.


6

Sadece şimdi fark Maxima , sembolik cebir getirmeyi amaçlayan bir program Common Lisp yazılır. Bunu uzun süredir kullanıyorum ve bence bu aynı zamanda çok iyi bir gerçek hayat örneği.


6

Lisp, Common Music kütüphanesi ile gerçek dünyadaki algoritmik müzik kompozisyonunda kullanılır . Rick Taube's Notes from the Metalevel , Lisp'te beste yapmak için bir dizi örnek içeren konuya harika bir giriş metnidir. Örnekler dizinine buradan ve metnin bir kopyasına buradan bakın .


5

Pek yaygın değil, ancak araştırma kodumun çoğu yönetilebilir olduğu kadar lisp kullanıyorum. Dinamizm ve ifade gücü dengesi için bulduğum açık ara en iyi dil, ancak sayısal bilgiler vb. İçin hala iyi performans üretiyor.





3

Lisp, 80'lerin başında ışık hızına atlamayı denedi. PC'lerden önce, yüzeysel olarak modern iş istasyonlarına çok benzeyen, ancak "tamamen aşağıya inen" ticari olarak üretilmiş "Lisp Makineleri" vardı. Lisp donanımı sonunda Intel'e kapandı (her şey olduğu gibi). Lisp yazılımı sonunda C / C ++ 'ya kapandı. Bunun neden böyle olduğuna dair çeşitli teoriler var. http://www.andromeda.com/people/ddyer/lisp/


2

Şema programlama dili, FLUENT Flow Modeling Software (hesaplamalı akışkanlar dinamiği, CFD) tarafından bir betik dili olarak kullanılır.



2

Birkaç kişinin bundan daha önce bahsettiğini görüyorum, ancak lisp özel Autocad geliştirmede yaygın olarak kullanılıyor. Autocad, yerleşik bir lisp yorumlayıcısı içerir. Ürünü genişletmenin en basit yollarından biridir ve üretkenliğinizi hızla artırma yeteneği sağlar.

Kullanıcı tarafında derlemeye gerek yoktur ve komut satırına 1 veya daha fazla satır lisp ifadesi girilebilir ve çizim üzerinde hemen çalıştırılabilir. Peltek konuşmanın temellerini öğrenmek için küçük bir adım bile atmaya istekli tasarımcılar ve teknik ressamlar için büyük bir üretkenlik nimeti sağlayabilir.

Autocad, ürünlerini özelleştirmek için bir dizi başka yol sunar; ObjectARX (C ++), VB, C #, vb. Lisp arayüzü öğrenmesi ve uygulaması açık arayla en kolay olanıdır. Ve diğer geliştirici ortamlarının çoğu bir şekilde lisp kullanır.

Lisp tercümanı, Autocad'in çok eski bir sürümünde kullanıma sunuldu ve Değişkenler ve ifadeler olarak adlandırıldı. Oldukça sınırlıydı ancak kullanıcılar için o kadar başarılıydı ki, ek işlevler hızla eklendi. Tam gelişmiş bir görsel IDE daha sonra yapıldı (sanırım sürüm 2000'de).

Autocad için kaç milyon (milyarlarca?) Lisp kodu satırı olduğunu tahmin etmekten nefret ederim. "Autocad .lsp" üzerinde yapılan bir google araması, 2,3 milyon isabet döndürür.

Tamam, bu kadar yazmak yeter, benim için işe geri döndü, mevcut projem için daha fazla lisp yazıyorum :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.