Cusp: Eclipse için Common Lisp Eklentisi

0
zekzekus
Lisp ile uğraşan ama Emacs editörüne alışamamış benim gibi kullanıcıların yardımına Eclipse IDE ortamı için hazırlanmış Cusp eklentisi yetişiyor.
Henüz 0.7.0 versiyonunda bulunan eklentinin sağladığı özelliklerin başlıcaları şunlar:

- SBCL derleyicisi eklenti ile birlikte geliyor.
- Swank kullanıyor.
- Oldukça iyi durumda kod tamamlama.
- Geliştirme ortamına entegre edilmiş REPL.
- Bütün dosyayı ya da belirli bir expression derleme.
- Tooltips ile sembol tanımı, macro-expansion vs.
- Windows, GNU/Linux ve Mac için hazırlanmış paketler.
- vb.


Özellikle günümüzde sık kullanılan geliştirme ortamlarına alışmış olan kullanıcılar için takip edilesi bir proje.

Görüşler

0
FZ
Halihazırda Eclipse gibi büyük bir IDE ortamını kurup Java, vb. diller için kullanmakta olanlar arasında Lisp'e heves edenler için anlamlı olabilir, öteki türlü sırf bu eklenti için gidip Eclipse indirip kurmak çok anlamlı görünmüyor.

Ayrıca sanki Emacs ve SLIME'a, SBCL yükleme mevzusuna biraz haksızlık yapılmış gibi. Debian ya da Gentoo gibi kaliteli GNU/Linux yazılımlarını kullanan kişiler için SBCL, SLIME, EMACS vs. kurmak misal bir apt-get komutuna bakar. Birkaç dakika sonra sistem emrinize amadedir. Yok eğer MS Windows kullanıyorsanız onun için LispBox, LispWorks, AllegroCL gibi her keseye ve zihniyete uygun anahtar teslim çözümler var.

Ekran görüntüleri, yani Eclipse seven sevebilir, belli bir IDE mantalitesi ve tutarlılık sağlıyor elbette öte yandan Lisp kodlarken bir fonksiyon ismi yazmışken onun tamamlamak ya da açıklama amaçlı karşıma kocaman sarı pop-up pencerelerin çıkması "büyük rahatlık" değil.

Bir konuda hak veriyorum, maalesef SLIME dokümantasyonu SLIME'ın güçlü ve çok kestirmeden iş güç yapmayı sağlayan özelliklerini tamamen yansıtmıyor, bundan şikayet edenler var haklı olarak. Mesela meşhur birkaç SLIME videosuna gelen "a-aa bu özellik de mi varmış, hiç bilmiyordum" tepkileri örnek gösterilebilir. Bu bakımdan rekabet iyi, belki SLIME geliştiricileri bu eklentiye bakıp eğer varsa daha güçlü yönlerinden feyz alabilirler.
0
zekzekus
""Halihazırda Eclipse gibi büyük bir IDE ortamını kurup Java, vb. diller için kullanmakta olanlar arasında Lisp'e heves edenler için anlamlı olabilir, öteki türlü sırf bu eklenti için gidip Eclipse indirip kurmak çok anlamlı görünmüyor.""
Kesinlikle katılıyorum. Eclipse'i zaten kullanlar için çok ama çok tanıdık bir ortam. Cusp sitesinde eklentinin avantajlarından biri olarak Eclipse içindeki proje yönetimi gösteriliyor. Emacs+Slime kombinasyonunda bu olanak ne kadar var bilemiyorum.
""Ayrıca sanki Emacs ve SLIME'a, SBCL yükleme mevzusuna biraz haksızlık yapılmış gibi. Debian ya da Gentoo gibi kaliteli GNU/Linux yazılımlarını kullanan kişiler için SBCL, SLIME, EMACS vs. kurmak misal bir apt-get komutuna bakar. Birkaç dakika sonra sistem emrinize amadedir. Yok eğer MS Windows kullanıyorsanız onun için LispBox, LispWorks, AllegroCL gibi her keseye ve zihniyete uygun anahtar teslim çözümler var.""
Artık windows içinde sorun değil bence. Ben win XP işletim sisteminde SBCL+Emacs+slime kurup çalışır hale getirmek Lispbox olmadanda son derece rahat yapılan bir işlem. Hatta emacs'in şaşırtıcı(benim için) modlarını da kurup genelde sorunsuz kullanmak mümkün.
Kod tamamlama ve tooltips ise neden bilmem (tembellik??) geliştirme ortamları için vazgeçilmesi güç bir özellik gibi geliyor bana.(Bu konuda emacs'de gayet başarılı gerçi.)
Sonuçta Common Lisp ile ilgilenmeye başladığımda ilk iş güzel bir ide aramıştım. Lispworks ve Allegro CL'yi inceledim ama bunların "Express" sürümler olması kimi kısıtlamalarının bulunması ayrıca büyük ihtimalle gerçekten lisanslarını hiç almayacak olmam başka çözümler aramaya itmişti. Bu ortamlardan hemen sonra Eclipse (Java ve Python için kullanıyordum zaten) için bir Lisp eklentisi aramış ama tatmin edici bir şey bulamamıştım.
Belki de tam emacs ile Lisp kodlamaya, gnus ile maillerime bakmaya, ERC ile IRC serverlarına bağlanmaya, sql-mode ile Oracle veritabanına bağlanmaya alışmışken bunu bulmak iyi olmadı ama alışkanlıklardanda kolay vazgeçilemediğini de anlamış oldum.
0
FZ
Belki de tam emacs ile Lisp kodlamaya, gnus ile maillerime bakmaya, ERC ile IRC serverlarına bağlanmaya, sql-mode ile Oracle veritabanına bağlanmaya alışmışken bunu bulmak iyi olmadı ama alışkanlıklardanda kolay vazgeçilemediğini de anlamış oldum.

Gücü hissetmeye başlamışsınız :) Peki ya hiç CEDET, SpeedBar gibi şeylere baktınız mı?

Bir de tabii o Cusp, Eclipse IDE ortamına Emacs metin işleme özelliklerini yani SLIME'dan filan bağımsız, doğal olarak s-exp tabanlı metin işleme özelliklerini de getiriyor mu bilmiyorum.
0
zekzekus
"Gücü hissetmeye başlamışsınız" :)
Evet :)
"Bir de tabii o Cusp, Eclipse IDE ortamına Emacs metin işleme özelliklerini yani SLIME'dan filan bağımsız, doğal olarak s-exp tabanlı metin işleme özelliklerini de getiriyor mu bilmiyorum."

Zannetmiyorum açıkçası biraz kurcalama fırsatım oldu kendisini ama emacs'e mi alıştım bilmeden yoksa daha proje çok mu başlarında, umduğum kadar rahat edemedim. Lisp ile ilgili bir kitapta "Lisp takıntı yapar kendinizi kaptırırsanız öyle gider" (tam olarak böyle değildi cümle) mealinde bir şeyler vardı. Sanırım böyle bir hastalık :) bulaştı banada. Bu Lisp insanı emacs'e de bulaştırıyo sanırım. İşyerimde sql*plus gerektiren işler için emacs+sql-oracle modunu açtığımda şaşıran çok oldu.;)
0
FZ
Zannetmiyorum açıkçası biraz kurcalama fırsatım oldu kendisini ama emacs'e mi alıştım bilmeden yoksa daha proje çok mu başlarında, umduğum kadar rahat edemedim. Lisp ile ilgili bir kitapta "Lisp takıntı yapar

Projenin başlarında olmaları ile ilgisi yok. Çünkü siz SLIME kullandığınızda sadece SLIME ile gelen özellikleri kullanmıyorsunuz, aynı zamanda Emacs'a içkin olan yani hiç SLIME filan olmasa dahi Emacs ile birlikte gelen ve Common Lisp, Scheme, vs. kaynak kodunu düzenlemeyi çok kıvrak hale getiren metin düzenleme özelliklerini kullanıyorsunuz. Cusp geliştiricileri bunu hedefleyeceklerse zaten bir nevi Emacs metin düzenleme işlevselliğini Eclipse IDE metin editörüne katmak gibi iddialı bir şeyi hedefliyor olacaklardır.

kendinizi kaptırırsanız öyle gider" (tam olarak böyle değildi cümle) mealinde bir şeyler vardı. Sanırım böyle bir hastalık :) bulaştı banada. Bu Lisp insanı emacs'e de bulaştırıyo sanırım. İşyerimde sql*plus gerektiren işler için emacs+sql-oracle modunu açtığımda şaşıran çok oldu.;)

Onları şaşırtmaya devam edeceğinizden şüphem yok. Bu arada bir noktaya daha dikkat çekeyim: Emacs ortamında Lisp kodlarken mesela editöre dair ya da SLIME'a dair bir değişiklik yapmak, bir özellik eklemek isterseniz yine bir tür Lisp olan Emacs Lisp ile Emacs'a müdahale edeceksiniz, dolayısı ile benzer zihniyet. Öte yandan Cusp'a katkıda bulunmak isterseniz, Eclipse'e müdahale etmek için yani sanırım Java kullanmanız gerekecek (yanılıyorsam düzeltin), bu da iki zihniyet arasında geçiş yapmak demek, bu bir dezavantaj.
0
FZ
Cusp geliştiricisi gördüğüm kadarı ile Paragent çalışanı. Böyle bir şeyle uğraştığına göre acaba çalışanı olduğu yazılım firması da bazı projeler için CL kullanıyor mudur diye düşündüm bir an. Kullanıyor olsalar da söylerler mi o da ayrı bir konu ;-)
0
tongucyumruk
Sitelerindeki ürün demosuna bakılırsa Uncommon Web kullanıyorlar.
0
FZ
Bilgi için çok teşekkürler, baktım o demoya. Güzel ve rahat kullanılan bir web uygulamasına benziyor. Common Lisp ve UCW bir kez daha birilerine rekabet avantajı sağlıyor gibi...
0
hb
Debian testing uzerinde kurulu Eclipse 3.2'de denedim. Nedense defpackage ile baslayan ifadeleri `eval` etmeye kalkinca, repl yanit vermeyi birakiyor. Cok kurcalayamadim bu yuzden.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Lisp ile TILSIMLI ve Renkli Programlama: Lisperati

FZ

Tüm zamanların en renkli Common Lisp programlama kılavuzlarından Lisperati artık anadilimizde.

Söz konusu belge İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü öğrencisi Seda Çelebican tarafından Türk diline çevrildi. Belgenin Türk kültürüne uyarlanmasında ve genel editörlük işlemlerinde İstanbul Bilgi Üniversitesi eMBA Yazılım Geliştirme ekibinden Emre Sevinç emek harcadı. Bu süreçte çok titiz eleştirileri, geri beslemeleri ile bize yardımcı olan Bilkent Bilgisayar Mühendisliği bölümü öğrencilerinden Hayrettin Gürkök'e ve Lisp konusunda yardımcı olan Bülent Murtezaoğlu'na teşekkürü bir borç biliriz. Belgedeki hatalardan çevirmen ve editör sorumludur. Orjinal belgenin yazarı Dr. Conrad Barski hiçbir maddi hatadan ötürü sorumlu tutulamaz. Belgeyle ilgili tartışma ve her türlü soru için bu haberin altına yorum yazabilir, iletişim kurabilirsiniz.

Lisperati belgesindeki kodları denemek için hiçbir şey kurmanıza gerek yok. Belgede anlatıldığı gibi uzaktaki bir telnet servisine kolayca bağlanıp kodları hemen derleyebilirsiniz ancak bu konularla daha ciddi ilgileniyor ve kendi Lisp ortamınızı kurmak istiyorsanız daha önce FM'de yayınlanan Common Lisp Geliştirme Ortamı Kurulumu kılavuzundan faydalanabilirsiniz.

Güncelleme (2/5/2005): Kılavuzu PDF olarak hazırlayıp Ayhan Barış'a çok teşekkür ederiz.

Hangi Common Lisp?

zekzekus

Daniel Weinreb, buradan erişilebilecek şekilde, Common Lisp gerçekleştirimleri (implementasyonları) ile ilgili bir inceleme yapmış. İncelemeye konu olan Common Lisp gerçekleştirimlerinin sorumluları kendi gerçekleştirimlerini anlatmışlar. "Nedir bu Lisp? Ortada bir sürü Lisp var, hangisini seçmeliyim?" diyenler için özellikle az bilinen Common Lisp gerçekleştirimlerini de içermesi açısından güzel bir kaynak.

C++ içinde Lisp kullanmak

bk

C++ kodlarken "ah şu anda filanca fikrimi Lisp ile ne kadar kolay ifade ederdim" dediğiniz oluyor mu? Bir ortamdan diğerine geçmeye, ayrı ayrı işlemler yapmaya üşenenlerden misiniz?

En az bir evet cevabı verdi iseniz InteLib tam size göre. C++ kodlarken doğrudan Lisp sözdizimine ve semantiğine çok benzer şekilde kod yazmanızı ve doğrudan derlemenizi sağlayan bir kütüphane. Şu anda aktif olarak geliştiriliyor. Ne gerek var ki böyle bir şeye diyenler FAQ belgesini okuyabilirler.

Core-Server GNU/Linux Installer

anonim

Hemen herkesin bir miktar güçlük yaşadığı Common Lisp tabanlı web sunucu kurma problemini halledeceğini umdugum yazılımı sizlerle paylaşmak isterim.

http://www.core.gen.tr/projects/core-server-installer-latest.tar.gz*

Hata bildirilerinizi evrim _at_ core.gen.tr adresine gonderebilirsiniz.

*: Gentoo, Debian ve Ubuntu GNU/Linux dağıtımları için test edildi

GNU GO, AJAX ve Common Lisp

FZ

SWGo arka planda GNU Go isimli Go moturunu kullanan, Common Lisp ile geliştirilmiş AJAX tarzı bir web arayüzü. Kaynak kodlarına buradan erişmek mümkün. Kodu geliştiren yazılımcı sadece birkaç aydır Common Lisp ve JavaScript ile uğraştığını söylüyor.