On May 13 06:43, Bulent Murtezaoglu wrote:
> >>>>> "VY" == Volkan YAZICI <[EMAIL PROTECTED]> writes:
> [...]
>     VY> Açıkcası ben sonraki katagoriye giriyorum. Kendi ev
>     VY> bilgisayarımda Scheme ile ufak tefek yatay atış hareketlerinde
>     VY> bulunuyor olsam da, birine karşı sorumlu olduğum işlerde
>     VY> Scheme'den yana tercihte bulunamıyorum. Bunun nedeni de
>     VY> kullanmaya değer mi sorusundan çok, ekibin içinde tek Scheme
>     VY> taraftarı ben olmamdan kaynaklanıyor.
> 
> Bunda bir fenalik yok, dogru hareket o herhalde.  Scheme bilmenin diger
> islerinize bir faydasi oluyor mu?  'Ufuk acma' filan diye bahsedilen sey
> soz konusu oldu mu?
> 
> Dr/MzScheme gurubunun bir takim kutuphane islerini hallettigini tahmin 
> ediyorum, ama haberim yok.  Hangi scheme'i tercih ediyorsunuz?

Scheme tercihim öyle her iki dilden anladığım daha sonra Scheme'de karar
kıldığımdan falan değil. İlk başlarda Scheme ile başlamıştım, işimi
gördüğü için de başka bir alternatif arayışı içinde olmadım. (Scheme48
kullanıyorum interpreter olarak.) Hızı benim için çok önemli değil - en
azından şu an.

Ne yaptığıma örnek vermem gerekirse, geçen bir projenin (PostgreSQL
intarray contrib modülü) algoritmalarında minor optimizasyonlarda
bulundum. Fakat bunları test etmek için örnek veri uzayı oluşturmam
gerekti. Bunun için elemanları belirli bir dizinin tüm kombinasyonlarını
oluşturup içinden rastgele dizi alımında bulunacaktım. Ama konu uzadıkça
uzadı. İlkokul permutasyon alma yöntemleri ile geliştirdiğim
algoritmalar, 8 elemanlı diziye gelindiğinde dakikalar alıyordu.
Velhasıl kelam Einstein indisi denen hede hödö bir yöntem ile
permutasyonu hızlıca almayı başardım Scheme ile. Ama şunu da söyleyeyim
ki, Scheme'den önce Bash ve Python ile de cebelleştim. Onlarda ya
istediğimi yapamadım ya da hem kod yazımı, hem de execution çok uzun
sürdü. (İnanır mısınız, sırf bu test işi, yazdığım yamadan daha çok
zamanımı aldı. Bir ara acaba yamayı göndermesem mi bile dedim.)

> Bu arada comp.lang.lisp okudugunuza gore, scheme/CL arasinda biraz,
> taraftarlari/kullanicilari arasinda ise cok fark oldugunu
> farketmissinizdir. CL tarafina da bakarsaniz, izlenimlerinizi okuruz
> burada artik herhalde.

Ben öyle çok profesyonel olarak takip etmekten çok, "Zamanı gelince bu
olaya çok ciddi bir giriş yapacağım; en azından dağarcığımız oluşsun."
zihniyeti ile mesajları okuyordum. Ama dün yaşadığım çok enteresan bir
olayı da anlatmak isterim: irc.freenode.net'teki #scheme kanalında bir
soru sordum, pek bir cevap gelmedi. Ee ben de hali ile neyse sonra
bakarım deyip, kanaldan çıktım. 30 saniye sonra özelden bir mesaj: 
"Sen bir soru sormuşsun, yeni okudum. Olayı şöyle, şöyle çözebilirsin."
Ben de çok sevindim, çok teşekkür ederim falan dedim. Adamın son mesajı
şu oldu: "Bak #scheme kanalında soru sormaktan çekinme. Gel yine
istediğin zaman istediğin soruyu sor..." Biliyorum çok uç bir örnek
oldu, ama olay çok hoşuma gitti size de aktarmak istedim. Ben herkesten
böyle sevecen bir tavır beklemiyorum fakat Lisp e-posta listelerinin ve
kanallarının da yeni başlayanlara karşı biraz sert davrandığı aşikar.
Yani her iki ortamı şöyle kabaca değerlendirecek olursam, Scheme
tarafındakileri insan kendine daha yakın buluyor, ama Lisp tarafında
olay bu kadar pembe değil.

>     VY>  - PostgreSQL için adam akıllı bir API'nin olmaması.
> 
> Bunun olmasi lazim.

PostgreSQL için Scheme/Lisp API'si var. Ama ben özellikle _adam_akıllı_
kısmının altını çizmek istiyorum. Şöyle ufak bir ironi ile olaya açıklık
kazandırayım: PostgreSQL'in API protokolü, MySQL'e oranla çok çok çok
daha karmaşık ve işlevsel. (Asenkron işlem kabiliyetinden tutun da
Cursor ve Prepared Statement'lar hakkında ayrıntılı bilgi alma, binary
veri iletimi ve daha bir sürü şeye kadar.) Ama sağlanan API'lere
bakıyorum, MySQL'inki PostgreSQL'inkinden daha fazla özellik sunuyor.

>     VY> Bunlar şu an bir çırpıda aklıma gelen fikirler. Aslında
>     VY> dışarıdan bakıldığında bunların çoğu çok kısa zaman
>     VY> zarflarında aşılabilir problemler. Fakat çoğu programcı sırf
>     VY> bunların varlığını bile aşılmaz birer engel olarak görüyor. 
> 
> Cok dogru.  Cunku 'ben bunu Lisple yapacagim' noktasidan degil, 'bu is 
> icin zaten az bildigim ve bariz kutuphane eksigi olan bir dile bulasmali 
> miyim?' noktasindan bakiyorlar. Sonra comp.lang.lisp'e geliyorlar, biz
> de 'bu sordugun problem degil' deyip yolluyoruz.

comp.lang.lisp'tekilere genel beşeriyet olarak sık sık kızarız fakat,
adamlar da bazen epey haklı. Gerçi bunun örneklerini her listede görmek
mümkün.

>     VY> ... En basitinden, yukarıdaki adresi ben ilk defa sizden
>     VY> duyuyorum. Böyle bir arşivin konu ile ilgilenenler için bu
>     VY> şekilde keşfedilmesi biraz enteresan değil mi?
> 
> Dogru.  O arsivi 90larin basinda Lisp/Yapay Zeka ile ilgilenmis insanlar 
> hatirlarlar ancak.  Bir de oradaki cok seyin lisansi tam belli 
> degildir yanlis hatirlamiyorsam.

Bence doğru katagorize edilip merkezi bir yerde toplanmış bir Lisp
portalı "Yeme de yanında yat!" kıvamında olurdu.

>     VY> Hayır, beni burada yanlış anladınız. Asıl vurgulamak istediğim
>     VY> nokta, bu kadar ayrıntılı bir bilginin internet bağlantısı
>     VY> dahi gerektirmeden bu kadar çabuk bir sürede
>     VY> ulaşılabilmesiydi.
> 
> Hmm.  Ayni seyden bahsetmiyoruz herhalde.  Hyperspec dil speci, ona
> zaten slime icinden ulasabiliyoruz nete luzum yok.  FFI ile baglanan
> kutuphanelerde zaten lispci de man sayfalarini kullaniyor.  Hersey
> emacsin icinden geliyor boylece zaten.  Belki eksik olan eger FFI ile
> baglanan sey biraz lisplestiyse (mesela enumlar keyword olduysa) onu
> net gorememek. Bunu tam anlayalim, eksikse eksik ama eksik degilse en
> azindan bir daha film filan yapacak olan insan birsey sorunca 'bak
> sunu da goster' deriz. Biraz daha acabilir misiniz?

Kendi fikrimi desteklemem gerekirse, hemen şu şekilde cevap verirdim:
«Popüler dillerin kütüphane dökümantasyonu artık bir çok BSD ve Linux
dağıtımı ile öntanımlı olarak gelirken, Lisp için ya hede hödö adresine
gidip bir döküman indirmeniz gerekiyor ya da evvelden emacs ve lisp
tecrübeniz olup olayı emacs'in içine entegre etmeniz gerekiyor. Yani ne
dökümantasyon herkesin aklına ilk gelebilecek bir sitede saklanıyor, ne
de işletim sistemi ile tek bir paket altında çok kolay ulaşılabilecek
şekilde geliyor.»

Elbette biliyorum, isteyen istediği bilgiye çok kolay ulaşabilir. Bu
yüzden değil mi ki hepimiz(?) burada Lisp kullanabiliyoruz. Zaten sorun
burada, biz şu an Lisp kullanmayanlara da ulaşmak istiyoruz! (İstiyor
muyuz?) Şöyle her seferinde düşündüğümde, hep dökümanların çok farklı
yerlere dağılıp birbirinden habersiz bir şekilde yer alması hep en
büyük sorun olarak karşıma çıkıyor. Bilmem artık bunu CL Wiki'sinde mi
hallederiz, yoksa başka bir yerde mi?

> Bir yandan
> 'yahu soketleri nasil yapariz bu lispte' denirken diger taraftan Common
> Lisp ile yazilmis web server vardi 1994'te

Aynı şeyler C için bile geçerli. İnsanoğlu '94'ten bugüne yerinde
sayıyor desenize. :D

> http://www.cl-http.org:8001/

[Bu arada ben hemen bunu bookmark'lar içindeki todo klasörüne ekleyeyim.]

>     VY> Peki Bülent Hocam, sizin bir Lisp kütüphanesine ihtiyacınız
>     VY> olduğunda (biliyorum bunu muhtemelen kendiniz yazarsınız, ama
>     VY> hani olur ya...) ilk olarak baktığınız adresler neresi? 
> 
> Yok yazmam!  Ben normalde devamli program yazan birisi degilim, bazen
> programci haline geliyorum belki bir iki seneligine.  Onun icin boyle
> ihtiyaclarim olmuyor devamli.  Son iki sene icinde iki uc tane
> kutuphane lazim oldu, opengl icin olani zaten Lispworks'le geliyordu
> ama onu yaratmak da zor degil, basit bir matrix kutuphanesi lazimdi
> onu ben yazdim (bir iki fonksyon!), http client lazimdi onu Portable
> Allegroserve'den kaptim kalanini hatirlamiyorum.  Ha bir de bazen
> muhatabimin bazi seyleri cok sIkIlmadan anlamasi icin GUIli muili
> seyler yapiyorum, onlar icin de CAPI kullaniyorum.  Ama diyelim ki
> filanca is icin birsey lazim oldu, iki google yaparim sonra memnun
> kalmazsam comp.lang.lisp'e yazarim, o da olmazsa ve FFI filan
> calismiyorsa (ve eger ticari bir isse) Rus bulurum ona yazdiririm diye
> dusunuyorum.  Arada sirada boyle gayet iyi ve ucuz calisan Ruslar
> duyuyorum lispcilerden.  
> 
>     VY> Ya da
>     VY> benzer şekilde bir kütüphane fonksiyonunun dökümantasyonuna
>     VY> ihtiyaç duyduğunuzda, ilk nerelere göz atıyorsunuz?
> 
> Eger FFI ise, man page veya artik ne dokumantasyon varsa (Opengl icin 
> kitaplara baktigim da oluyordu), degilse zaten bir manualla geliyordur 
> texinfo filan gibi, o da kolay.

Çoğu kişiye çok saçma gelebilir ama, ben yukarıdaki paragrafta geçen
aslında hiçbir şey anlatmıyora benzeyip de çok fazla bilgi veren
açıklamaları çok seviyorum. Nasrettin Hoca'nın dediği gibi, bana eşekten
düşen biri lazım! (Hani diyorum listemizin bir F.A.Q. sayfası olsa,
oraya bu mesajı da iliştirsek... Bi' Biskrem versem?)


Ayrıntılı cevabınız için çok teşekkür ederim.
İyi çalışmalar.

_______________________________________________
cs-lisp mailing list
cs-lisp@cs.bilgi.edu.tr
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp

Cevap