Pascal Costanza'nın Çok Dik Başlı Lisp Rehberi

0
FZ
Uzunca uğraşlardan sonra Pascal Costanza'nın dik başlı (!) Lisp kılavuzunu Bilkent Bilg. Müh. bölümü öğrencilerinden Hayrettin Gürkök'ün çevirisi ile anadilimizde yayımlama imkanına kavuştuk. AOP yani Aspect Oriented Programlama mefhumunu Common Lisp'e kazandırmış olan (ya da Debiancılar için: Debian aspectl paketleri) Costanza'nın bu yazısının Lisp heveslilerinin işine yarayacağını ümit ediyoruz.

Çevirinin özgün adresi http://ileriseviye.org/arasayfa.php?inode=costanza-lisp-guide.html'dir. Emeği geçen herkesin eline sağlık. Afiyet olsun...

Görüşler

0
yilmaz
FZ bir kerecikte olsa JAVA'nın şurası iyi diye bir yazı eklesen ne olur. :) Bu SUN ile aranda bir problem mi var? :)
0
bm
Pascal Costanza yanlis dusunuyor, yedi sene Java ile ugrasmis ama su ve bunu kacirdigi icin yanlis yola sapmis filan diye detayli bir cevap yazisi yazin, FZ basmazsa ben dovmeyi taahhut ediyorum.
0
FZ
:) FM olarak Java makalelerine en ufak bir sansürümüz yok, doğru dürüst özgün makale gelsin, sağlam çeviriler gelsin hemen basalım.

Yazıya karşı yine teknik bir cevap yazısı gelsin onu da basalım, neden kaçınalım ki bundan?

Costanza, evet, Java ile az buz uğraşmış biri değil, sıradan bir Java programcısı olmasının ötesinde bildiğim kadarı ile "Object Oriented Programming" mevzularında da doğrudan araştırmacı pozisyonunda çalışan, yeni programlama teknolojileri geliştirme çabasında olan biri:

Araştırmalarına ve yayınlarına burada erişilebilir:

http://p-cos.net/research.html

Kendisi şu anda Vrije Üniversitesi'ndeki Programlama Teknolojileri Lab.ında çalışıyor:

http://prog.vub.ac.be/
0
FZ
Vakti zamanında "yahu tamamlasana şu J2ME kullanarak cep tep. programlama makalesini de yayınlayalım!" diye az adam tokatlamadım. Asla Java ile ile ilgili sağlam bir makale geldiğinde geri çevirmedim. Bizzat C.tesi günü o sıcaklarda kalkıp Bilgi Üniversitesi'ndeki o kalabalık Java konferansına gittim, not aldım, sonra gelip gecenin bir vakti buraya konferansta son karşılaştığım Java teknolojilerini, vs. yazdım.

Benim anlamadığım, bir bilgisayarcı oturmuş Common Lisp programlamaya dair bir yazı yazmış, bir başka genç bilgisayarcı bunu Türk diline çevirmiş, ben de bunu yayımlamış ve duyurmuşum; şimdi Java nereden çıktı allah aşkına? Neden Common Lisp ile ilgili bir şeyler yazınca insanlar sürekli, aaa ama Java'ya çok laf ediyorsunuz, hem bakın asıl C öğrenmek lazım, ayrıca Python da var çok güzel deyip (yahu daha birkaç hafta önce canavar gibi bir Python videosunu Teknoloji TV'de canlı olarak yayınlayan biz değil miyiz?) duruyorlar? Bunun konumuzla ilgisi, alakası nedir? Yani Lisp kılavuzu var ortada, kılavuzda bir eksiklik, bir Türkçe hatası, bir link hatası varsa ya da ne bileyim Lisp ile ilgili bazı şeylerin anlaşılması güçse oturalım buna bir bakalım.

Tekrar ediyorum: Common Lisp'ten bahsederken Java, SUN, vs. nereden çıktı?
0
yilmaz
herhangibir art niyetim yok. denkgeliyor demekki. java karşıtı bir izlenim oluşturmuşsunuz üzerimizde.
0
innaw
FZ kesinlikle Java kar$iti degil bilakis Java'yi ve cevresindeki teknolojileri tanımak icin bir cabasi da var, ama sundance'in boyle bir izlenim verdigini ben de du$unuyorum.
0
innaw
> Tekrar ediyorum: Common Lisp'ten bahsederken Java, SUN, vs. nereden çıktı?

Makalenin hrnüz ba$indaki "Geçen sene içerisinde, Java'nın hala çok (aslında aşırı) sınırlı bir programlama dili olduğunun farkına vardım ve alternatifler aramaya başladım..." ifadesinden olsa gerek.

Diğer yandan Common Lisp+AOP gibi bir olay varken tarti$maya/yorumlara Java da dahil olabilir tabi ama daha teknik, daha gercek geribeslemeler FM camiasina daha cok yaki$acaktir diye du$unuyorum.

Bu arda Hayrettin Gürkök'e de ceviri icin cok te$ekkurler.
0
FZ
Makalede Java'ya göndermede bulunulduğu doğru ancak ana tema Java değil, Lisp; daha doğrusu Common Lisp. Costanza bazı kavramları açıklarken ve kıyaslama yaparken ilk aklına gelen diğer dil olan Java'yı kullanıyor ancak makalenin yazılmasının ya da çevrilmesinin sebebi Java'yı kötülemek değil çünkü konu Java değil, konu Common Lisp ve Common Lisp'in özellikleri, bununla ilgili önemli noktalar, kaynaklar, vs. Dilerim bu haliyle anlaşılır da Lisp'le ilgili bir çeviri makalenin altında Lisp'ten ziyade Java muhabbeti yapmak zorunda kalmayız :)

Sizin de belirttiğiniz gibi kısır tartışmalar yerine AOP yani Aspect Oriented Programming nedir ne değildir, AOP denen mefhum Lisp programlamaya ne katıyor vs. bunları tartışmak ya da açıklamak çok daha doyurucu ve keyifli bir okumaya/deneyime götürecektir bizi.
0
sundance
FZ'nin de benim de SUN ile ilgili birkaç yıllık çalışmışlığımız var, züppeliklerini çok da sevdiğimizi söyleyemeyiz iki Solaris admini olarak.

Öte yandan, şahsen Java'nın çok şişirildiğini, Java'ya yılllardır gösterilen hoşgörünün "Java bir gün çoook acaip olacak, gelecekte herşey Java olacak" şeklindeki yaklaşımın ve "Java yüzükte bile oluyor, java uçuyor kaçıyor" ifadelerinin (Sun zamanında Java için şarkı bile besteletmişti ve işin kötüsü hemen her etkinlikte bunu çalıyorlardı!!!) onda birinin Python'a gösterilse, Python'un çoktan multiplatform olarak kabul görmüş olacağını düşünüyorum.

Öte yandan bu düşünce, 20 yıl önce assembler programlayan ve 15 yıl önce C'i bırakmış, şu anda bütün işlerini bash ve Perl ile gören bir dinazorun düşünceleri, yanlı oldukları söylenebilir.

Tabi onbinlerce dolarlık bazı Java sunucu uygulamalarının, müşterinin (bir GSM operatörü) isteği üzerine UYGULAMA GELİŞTİRİCİSİNİN Türkiye'ye gelip, kendi yazdığı uygulamayı kabul edilebilir bir seviyede çalıştıramadığını da gördüm ;)
0
darkhunter
Emeği geçenlere çok teşekkürler, "Daha ileri temeller" kısmının da özellikle işime yaradığını belirtmeliyim.

Acaba CL ile ilgili, Türkçe bir kitap yazma çalışmaları var mı? Basılı medya için böyle bir çalışma yapılıyorsa yazar içinde / okur içinde tatminkar (maddi/manevi) bir faliyet olabilir diye düşünüyorum...
0
bm
Basili kitap icin erken bence. Terminoloji oturmadi henuz. Bir de basili kitap yerine, PDF yapilip sebil edilmesini tercih ederim ben. Isteyen bastirsin. (bu pdf'ten siparis uzerine kitap yapma isini de birisi yapacak herhalde Turkiye'de?) Tabi kimsa bana sormuyor, ama ben yazacak degilim, benim ogrenme surecini takip edebildiklerim henuz yazacak durumda degiller, bizim bilmedigimiz ve YZ dersi vermenin disinda ciddi CL tecrubesi olan ve yazabilen bir Turk cikarsa olur. Veya PS'in kitabi tercume edilir.

Ingilizce bilmeyen insanlardan ciddi bir ilgi cekti mi bu proje? Ilgilenenlerin hepsi Ingilizce biliyorlar gibi gozukuyor.
0
darkhunter
PDF bence de gayet uygun. Basılı derken yanlış anlattım galiba, dizgisi falan yapılmış demeye çalışıyordum. Yoksa "beleş"i bende severim. Sizin kadar konuya hakim birilerinin olduğunu sanmıyorum TC de. Bu vesileyle bir durumu aktarayım : Bir arkadaşım Türkçe konuşuyor (tek lisanı bu), kendisi programcı. İyi derece C ve JAVA bilgisi var. İngilizce bilmeden nasıl iyi derece olmuş bilmiyorum ama (galiba kaliteli türkçe yayınlar var artık) hakikaten bazı problemler için gidilebilecek tek adres olan adamlardan (en azından bizim çevremizde)... Lisp'in FrameWork'u, Macro sistematiği ve GL performansı ilgisini çekiyor okuduğu kadarıyla. Ben PCL ve PG kaynaklarıyla çalışıyorum aldığım notlar, özetler falan Türkçe kendisi bu notları fotokopiyle çoğaltıp çalışmaya çalışıyor ama bazen ben yanlış anlıyorum, bazen de o :) Anlayacağınız körler ve sağırlar birbirlerini... Ingilizce bilmeyen insanlardan ciddi bir ilgi cekti mi bu proje? Ilgilenenlerin hepsi Ingilizce biliyorlar gibi gozukuyor. Bilmem açıklayabildim mi? En azından ben bu azimli ama ingilizce bilmeyen arkadaş tarafından işkenceye marus bırakılıyorum. İsyanım biraz da buna...
0
darkhunter
Bu gidişle, benim notlarımdan abuk subuk bir pdf nette gezmeye başlarsa şaşırmayın :)
0
FZ
Wiki tabanlı bir belgeleme sistemi ile *canlı* bir kitabı Türkçe hazırlamak, bu mevzuları çok daha erişilebilir kılabilir. Bir yandan da cl-cookbook gibi [1] az laf çok kod tarzı kaynaklardaki örnekleri de kitaba eklemek insanların işini kolaylaştıracaktır.

1- http://cl-cookbook.sourceforge.net/

Internet'te gezinen bir PDF'te düzeltme yapmak imkanı (olası hata durumlarında) çok daha zor olacaktır.
0
bm
Wikilerde problem (kotu niyeti bir kenara birakalim) iyi niyetli cahillerin verdigi zarar problemi. Vikipedi'de bazen yanlis olmus diye birisinin ugrastigi seyleri sildigim oluyor anladigim konularda. Ben de wiki iyi olur diye dusunuyorum aslinda ama belki terminoloji icin kullaniriz diye. YZ dersinde yarim lisp ogrenmis insanlarin hevesle yazdiklarini silmek geri tepip sogutabilir. Aslinda teknolojiyi yaratabilecegimiz cok is var bu konuda, insallah zaman icinde duzgun bir sekilde egilmek kabil olur.

Bu arada FM'in forum kismindaki lisp bolumu insanlar soru sorsun diye var. Ingilizce bilmeyen o arkadas nicin orada sormuyor? Bizim bu cabada yer alan insanlarin cogu orayi okuyorlar. Insanlarin nerede takildiklarini bilirsek ona gore kaynak/ornek vs. yaratiriz.
0
darkhunter
Herhalde ben comp.lang.lip e niye yazmıyorsam ondandır. Dilin bir listeden yada forumdan ne derece öğrenilebileceği malum. Heleki CL gibi bir dilde sıfırdan soru sormaya başlarsanız bir yerlere, bir süre sonra mesajlarınız spam olarak algılanabilir. Belki de ne soracağını bilememiştir :) (Yani nerden başlasam babında, alınma tarık :)

Ben bu yüzden hala comp.lang.lisp i sadece okuyorum (aslında birikimim çoğu durumda buna bile yetmiyor!). Herneyse eminim o da bu mesajları okuyup bir sempatizan adayı olarak kendi düşüncelerini forum a yazar. Buralara soru sormak için en azından bazı basit şeyleri bilmek gerek kimsenin size herşeyi anlatacak kadar vakti yoktur diye düşünüyorum...
0
FZ
Herhalde ben comp.lang.lip e niye yazmıyorsam ondandır. Dilin bir listeden yada forumdan ne derece öğrenilebileceği malum.

Bu durum bizim Türk kültürüne mi özgü ben bunu henüz tam çöemedim. Genellikle geveze olduğumuzu düşünürüm ama bu tür teknik konularda sanki insanlar yazmaya çekiniyor gibi, hani sınıfta hocaya soru sormaya çekinirler filan, onun gibi mi acaba? Burada herkes hoca herkes öğrenci. Birlikte öğrenmiyor muyuz? Common Lisp'i sadece forumdan, USENET'ten okuyarak tabii ki mümkün değil, oralar sadece dil öğrenimine eşlik eden ve bazı detaylı konuların çok daha iyi anlaışlmasını sağlayan etkileşimli hazineler.

Bir de sanırım şöyle bir algılama var: "Yahu orada çok usta adamlar var, ben şimdi gidip acemi çaylak soruları sormayayım, ele güne rezil olmayayım, hem koca koca adamların işi gücü kalmadı da oturup bana vakit ayırıp cevap mı verecekler?". Gördüğüm kadarı ile işin standartlar kitabını yazmış Kent Pitman ya da popüler kitabını (Practical Common Lisp) yazmış Peter Seibel gibi adamlar, iş güç sahibi olmakla birlikte fırsat bulur bulmaz her türlü soruya çok detaylı biçimde cevap veriyorlar, bazı cevaplar epey uzun ve ders niteliğinde olabiliyor, şimdiye dek de hiçbir acemi çaylakla kötü anlamda dalga geçtiklerini hatırlamıyorum. Bilakis doğru yönlendirebilmek ve kavramları netleştirebilmek için somut örnekler üzerinden gidip ellerinden geleni yapıyorlar.

Öte yandan Türkçe yazıştığımız FM Forum Lisp programlama alanında da comp.lang.lisp'teki kadar yoğun ve kalabalık olmamakla birlikte yine hemen her türlü soruyu cevaplamaya çalışıyoruz. Hal bu iken artık etkileşime geçmemek için bir mazeret olamaz diye düşünüyorum.

FM'de son 1-2 yıl içinde 20-30 kadar Lisp programlama makalesi yayınlandı, 6-7 aydır da aktif bir Lisp programlama forumumuz mevcut, dolayısı ile adı geçen programcı Tarık arkadaşımız olsun, bu satırları takip eden başkaları olsun hem bu platforma Türkçe olarak hem de comp.lang.lisp'e İngilizce olarak bekleriz.

Lütfen soru sormaktan ve tam anlaşılmayan noktaları masaya yatırmaktan, iyice deşip kurcalamaktan çekinmeyelim, sınıftaki hoca "konu anlaşıldı mı arkadaşlar?" diye sorduğunda sus pus olan ve soru sormaya çekinen psikolojiden çıkalım, öğrenmeye yönelik aklı başında gevezeliğin kimseye zararı yok, bilakis faydası var.
0
darkhunter
Ben hala en azından okuduğum kitaplardan birini tam olarak bitirmek istiyorum (tercihen PCL) sonra elimden geleni ardıma koymam comp.lang da merak etmeyin.

Tarık arkadaşımıza da ingilizce öğretcem o da comp.lang.lisp e yazsın ... Ahh vurmasana Tarık (:_() Türkçesi YETERSE FM Forum daki Lisp başlığına da yazabilir... İMDAAATT... Adam öldürüyolar...
0
bm
Yazmak degil belki de, bilgisayara yatkin insanlarin Inglizce okuyabilir olmalari cok faydali tabii. Bunu soylemeye gerek yok belki ama bu Lisp isinde FZ ile ilk tanistigimizda insanlarin CL ogrenmekten ziyade 'bundan haberim yok idiyse baska nelerden haberim yok?' demelerini saglamak acisindan faydali oldugunu konusuyorduk. En azindan ben insanlari ille de CL programcisi yapmak pesinde degilim, ama sadece yaygin Turkce yayinlar ve Turkiye'de konusabildikleri kisilerin perspektifleriyle ufuklarinin kisitlanmakta oldugunu hissetmelerini saglamak icin bir arac diye dusunuyorum CL'i. (Bir de bana kolay tabii bu, ama bunu da yukariya baglayin. Bir Turk MLci veya Haskellci yahut neyse ses cikartmadan bunlardan haberdar olamama durumunu dusunun.)

PCL icin, windows kullananlara bir haber. Peter Seibel 'lispbox'ununun windows surumunu duyurdu:

http://www.gigamonkeys.com/lispbox/download.html
0
darkhunter
Evdeki bilgisayarımda Etch yüklü. Dolayısıyla Emacs ile ferah ferah çalışıyorum. İşteki bilgisayarda bir takım donanımsal sorunlardan dolayı sadece windows yüklü. Ben Studio ile çalışıyorum (gerçi ide yi kavrayana kadar canım çıktı, zor olduğundan değil aslında ama alışmak gerçekten tecrube istiyor). Lispbox kullanmak bana Studio da olmayan bir avantaj sağlar mı diye merak ediyorum? Bir de ben biraz zor alışıyorum, öğrenme aşamasında zar zor alıştığım bir ide yi daha iyi bir alternatif olsada değiştirmek kafamı karıştırır mı diye çekiniyorum...
0
bm
Ben bilemiyorum, cunku lispbox'la alakam yok, hic kullanmadim. Anladigim kadariyla emacs+slime+|bir CL|. PCL'i okuyanlar rahat etsin diye yapmis PS onu. Tahminimce eger duzgun calisiyorsa, linux+emacs+SLIME+sbcl ile elde ettiginizi, Windows altinda da kullanabilir hale geliyorsunuz (ama tabii M-tab filan baska turlu yapiliyor herhalde).

Bilemiyorum ne diyeyim, ama kurup calistirmayip bu adama 'calisti' veya 'su sebepten dolayi calistiramadim' derseniz faydasi olur.
0
FZ
Studio? Win için bir Lisp IDE?
0
darkhunter
Evet Sergey Pavlov'un Ufasoft'undan (bilmem tanır mısın Ufasoft'u, en azından web sitesine girersen kesin tanıdık gelir :) Hem de Acaip bir CL Interpreter + IDE kombinasyonuyla beraber. Ben IDE ye biraz zor adapte oldum ama şimdilik durumum fena değil...

Adres : http://www.ufasoft.com

Desc : Common Lisp development system. Includes command-line and IDE Lisp interpreters. Possibility of creating EXE-files :)))
0
FZ
Söz konusu kişiyi tanımıyorum ama anlattıklarınızdan anlayabildiğim kadarı ile "program kurdum, çalışmıyor, yardım edin... etsenize yaaa!"nın çok ötesinde, düzgün şekilde soru sorabileceğini tahmin ettiğim biri. :)

Dolayısı ile hem o Lisp heveslisi deneyimli programcı arkadaşı hem de bu satırları okuyan diğer FMcileri FM'deki Lisp programlama alanına bekliyoruz:

http://www.fazlamesai.org/forum/viewforum.php?f=37
Görüş belirtmek için giriş yapın...

İlgili Yazılar

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.

Lisp Çalışma Grubu Etkinliklerine Başladı

FZ

İstanbul Bilgi Üniversitesi'nden Bilgisayar Bilimleri bölümü asistanlarının inisiyatifi ile kurulan ve tüm ciddi heveslilere açık olan (İstanbul Bilgi Üniversitesi Lisp Çalışma Grubu) bundan kısa bir süre önce kuruldu ve faaliyetlerine başladı.

Diyelim Ki Elimizde Nesneye Yönelimli Bir Dil Yok - Alice Nesneler Diyarında

FZ

Elinizdeki programlama dilinde nesneye yönelimli (OO - Object Oriented) programlama imkanı olmasa idi ne yapardınız? İki seçenekten biri gelirdi aklınıza herhalde:
  1. OO desteği veren bir dil kullanmaya başlamak.
  2. Elinizdeki dile OO desteği katmak için uğraşmak.
Bu kısa yazıda Peter Norvig'in PAIP (Paradigms of Artificial Intelligence Programming Case Studies in Common Lisp) kitabının 13. bölümündeki birkaç kısa örnekten yola çıkarak "eğer Common Lisp dilinde CLOS (Common Lisp Object System) gibi bir şey olmasaydı bunu nasıl gerçekleştirebilirdik?" sorusunun cevabının ilk bölümüne göz atacağız.

GNU CLISP 2.34 sürümü çıktı

FZ

ANSI Common Lisp yüksek seviyeli, genel amaçlı bir programlama dilidir. GNU CLISP, Karlsruhe Üniversitesi'nden Bruno Haible ve Münih Üniversitesi'nden Michael Stoll'un ürünüdür. CLISP, ANSI Common Lisp standardında tanımlanmış Lisp dilinin büyük kısmını desteklemektedir. Hemen her türlü UNIX platformunda (Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Tru64, HP-UX, BeOS, NeXTstep, IRIX, AIX ve diğerleri) ve diğer sistemlerde (Windows NT/2000/XP, Windows 95/98/ME) çalışmakta ve bunun için sadece 4 MB RAM bellek yeterli olmaktadır.

Core Uygulama Sunucusu Kurulumu

anonim

Common Lisp tabanlı uygulama sunucumuzu ücretsiz olarak deneyebilirsiniz. Bunun için yapmanız gerekenlerin anlatıldığı belgeye göz atabilirsiniz.

Günümüzde üretilen yazılımların çoğu web uygulamaları şeklinde ya da web servisleri olarak hizmet vermektedir. Web uygulamaları, erişilebilir, birden fazla kişinin kullanımına elverişli ve merkezi olarak güncellenebilir servislerdir.

Gelecekte oldukça fazla web uygulaması ve web servisi yazacağımız düşünüldüğünde bu konuda bize yardımcı olacak araçlar üretmek iyi bir yatırım olacaktır. Bu nedenle yazımda sizlere Common Lisp dili ile yazılmış bir web uygulama sunucusu olan Kor Web Uygulama Sunucusu'nu tanıtacağım.